- 26 May, 2017 18 commits
-
-
Daniel Stone authored
Though most swapchain operations used a queue, they were racy in that the object was created with the queue only set later, meaning that its event could potentially be dispatched from the default queue in between these two steps. Use proxy wrappers to avoid this race, also assigning wl_buffers created for the swapchain to the event queue. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 5034c615) [Emil Velikov: wsi_wl_swapchain is missing surface_version, move image_count] Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Conflicts: src/vulkan/wsi/wsi_common_wayland.c Squahed with: vulkan/wsi/wayland: Fix proxy wrappers for swapchain recreation Before the swapchain event queue is destroyed, all proxy objects that reference it must be dropped. Otherwise we risk a use-after-free if a frame callback event or buffer release events are received afterwards. This happens when an application destroys and recreates a swapchain in FIFO mode between two frames without using the VkSwapchainCreateInfoKHR::oldSwapchain mechanism to keep the old swapchain until after the next redraw. Fixes: 5034c615 ("vulkan/wsi/wayland: Use proxy wrappers for swapchain") Signed-off-by:
Philipp Zabel <philipp.zabel@gmail.com> Reviewed-by:
Daniel Stone <daniels@collabora.com> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 1586768e) [Emil Velikov: image_count is not in base] Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Conflicts: src/vulkan/wsi/wsi_common_wayland.c
-
Daniel Stone authored
Calling random callbacks on the display's event queue is hostile, as we may call into client code when it least expects it. Create our own event queue, one per wsi_wl_display, and use that for the registry. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit c902a195)
-
Daniel Stone authored
There's no need to call wl_display_roundtrip() after trying to create a buffer through wl_drm; if it succeeds then everything is fine, and if it fails, then we get a fatal protocol error so can't recover anyway. Additionally, doing a roundtrip on the default / main application queue, is destructive anyway, so would need to be its own queue. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit afe8c8a2)
-
Daniel Stone authored
Untangle the exit cleanup paths so we don't try to use the registry variable before it's been initialised. Signed-off-by:
Daniel Stone <daniels@collabora.com> Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit d9a8bba7)
-
Ilia Mirkin authored
The instruction encodings only allow for immediates. Don't try to replace a zero (which is dumb to have in that op in any case) with RZ. Signed-off-by:
Ilia Mirkin <imirkin@alum.mit.edu> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 82e77d4e)
-
Emil Velikov authored
It's been like this since the code was introduced. Fixes: 86eb4131 (st/va: add headless support, i.e. VA_DISPLAY_DRM) Cc: <mesa-stable@lists.freedesktop.org> Cc: Julien Isorce <julien.isorce@gmail.com> Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Nayan Deshmukh <nayan26deshmukh@gmail.com> Reviewed-by:
Christian König <christian.koenig@amd.com> (cherry picked from commit aaea53c2)
-
Nanley Chery authored
The procedure for decompressing an opaque DXT1 OpenGL format is dependant on the comparison of two colors stored in the first 32 bits of the compressed block. Here's the specified OpenGL behavior for reference: The RGB color for a texel at location (x,y) in the block is given by: RGB0, if color0 > color1 and code(x,y) == 0 RGB1, if color0 > color1 and code(x,y) == 1 (2*RGB0+RGB1)/3, if color0 > color1 and code(x,y) == 2 (RGB0+2*RGB1)/3, if color0 > color1 and code(x,y) == 3 RGB0, if color0 <= color1 and code(x,y) == 0 RGB1, if color0 <= color1 and code(x,y) == 1 (RGB0+RGB1)/2, if color0 <= color1 and code(x,y) == 2 BLACK, if color0 <= color1 and code(x,y) == 3 The sampling operation performed on an opaque DXT1 Intel format essentially hard-codes the comparison result of the two colors as color0 > color1. This means that the behavior is incompatible with OpenGL. This is stated in the SKL PRM, Vol 5: Memory Views: Opaque Textures (DXT1_RGB) Texture format DXT1_RGB is identical to DXT1, with the exception that the One-bit Alpha encoding is removed. Color 0 and Color 1 are not compared, and the resulting texel color is derived strictly from the Opaque Color Encoding. The alpha channel defaults to 1.0. Programming Note Context: Opaque Textures (DXT1_RGB) The behavior of this format is not compliant with the OGL spec. The opaque and non-opaque DXT1 OpenGL formats are specified to be decoded in exactly the same way except the BLACK value must have a transparent alpha channel in the latter. Use the four-channel BC1 Intel formats with the alpha set to 1 to provide the behavior required by the spec. Note that the alpha is already set to 1 for RGB formats in brw_get_texture_swizzle(). v2: Provide a more detailed commit message (Kenneth Graunke). v3: Ensure the alpha channel is set to 1 for DXT1 formats. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100925 Cc: <mesa-stable@lists.freedesktop.org> Acked-by: Tapani Pälli <tapani.palli@intel.com> (v1) Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org> Signed-off-by:
Nanley Chery <nanley.g.chery@intel.com> (cherry picked from commit 688ddb85) [Emil Velikov: attribute for BRW to ISL format rename] Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Conflicts: src/mesa/drivers/dri/i965/brw_surface_formats.c
-
Nanley Chery authored
The procedure for decompressing an opaque BC1 Vulkan format is dependant on the comparison of two colors stored in the first 32 bits of the compressed block. Here's the specified OpenGL (and Vulkan) behavior for reference: The RGB color for a texel at location (x,y) in the block is given by: RGB0, if color0 > color1 and code(x,y) == 0 RGB1, if color0 > color1 and code(x,y) == 1 (2*RGB0+RGB1)/3, if color0 > color1 and code(x,y) == 2 (RGB0+2*RGB1)/3, if color0 > color1 and code(x,y) == 3 RGB0, if color0 <= color1 and code(x,y) == 0 RGB1, if color0 <= color1 and code(x,y) == 1 (RGB0+RGB1)/2, if color0 <= color1 and code(x,y) == 2 BLACK, if color0 <= color1 and code(x,y) == 3 The sampling operation performed on an opaque DXT1 Intel format essentially hard-codes the comparison result of the two colors as color0 > color1. This means that the behavior is incompatible with OpenGL and Vulkan. This is stated in the SKL PRM, Vol 5: Memory Views: Opaque Textures (DXT1_RGB) Texture format DXT1_RGB is identical to DXT1, with the exception that the One-bit Alpha encoding is removed. Color 0 and Color 1 are not compared, and the resulting texel color is derived strictly from the Opaque Color Encoding. The alpha channel defaults to 1.0. Programming Note Context: Opaque Textures (DXT1_RGB) The behavior of this format is not compliant with the OGL spec. The opaque and non-opaque BC1 Vulkan formats are specified to be decoded in exactly the same way except the BLACK value must have a transparent alpha channel in the latter. Use the four-channel BC1 Intel formats with the alpha set to 1 to provide the behavior required by the spec. v2 (Kenneth Graunke): - Provide a more detailed commit message. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100925 Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by:
Kenneth Graunke <kenneth@whitecape.org> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Signed-off-by:
Nanley Chery <nanley.g.chery@intel.com> (cherry picked from commit 56458cb1)
-
Tom Stellard authored
The datalayout for modules was purposely not being set in order to work around the fact that the ExecutionEngine requires that the module's datalayout matches the datalayout of the TargetMachine that the ExecutionEngine is using. When the pass manager runs on a module with no datalayout, it uses the default datalayout which is little-endian. This causes problems on big-endian targets, because some optimizations that are legal on little-endian or illegal on big-endian. To resolve this, we set the datalayout prior to running the pass manager, and then clear it before creating the ExectionEngine. This patch fixes a lot of piglit tests on big-endian ppc64. Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 14e525a4)
-
chadversary authored
Fixes regressions in Android CtsVerifier.apk on Intel Chrome OS devices due to incorrect error handling in eglMakeCurrent. See below on how to confirm the regression is fixed. This partially reverts commit 23c86c74 Author: Chad Versace <chadversary@chromium.org> Subject: egl: Emit error when EGLSurface is lost The problem with commit 23c86c74 is that, once an EGLSurface became lost, the app could never unbind the bad surface. Each attempt to unbind the bad surface with eglMakeCurrent failed with EGL_BAD_CURRENT_SURFACE. Specificaly, the bad commit added the error handling below. #2 and #3 were right, but #1 was wrong. 1. eglMakeCurrent emits EGL_BAD_CURRENT_SURFACE if the calling thread has unflushed commands and either previous surface is no longer valid. 2. eglMakeCurrent emits EGL_BAD_NATIVE_WINDOW if either new surface is no longer valid. 3. eglSwapBuffers emits EGL_BAD_NATIVE_WINDOW if the swapped surface is no longer valid. Whe I wrote the bad commit, I misunderstood the EGL spec language for #1. The correct behavior is, if I understand correctly now, is below. This patch doesn't implement the correct behavior, though, it just reverts the broken behavior. - Assume a bound EGLSurface is no longer valid. - Assume the bound EGLContext has unflushed commands. - The app calls eglMakeCurrent. The spec requires eglMakeCurrent to implicitly flush. After flushing, eglMakeCurrent emits EGL_BAD_CURRENT_SURFACE and does *not* alter the thread's current bindings. - If the app calls eglMakeCurrent again, and the app inserts no commands into the GL command stream between the two eglMakeCurrent calls, then this second eglMakeCurrent succeeds without emitting an error. How to confirm this fixes the regression: Download android-cts-verifier-7.1_r5-linux_x86-x86.zip from source.android.com, unpack, and `adb install CtsVerifier.apk`. Run test "Projection Cube". Click the Pass button (a green checkmark). Then run test "Projection Widget". Confirm that widgets are visible and that logcat does not complain about eglMakeCurrent failure. Then confirm there are no regressions in the cts-traded module that commit 263243b1 fixed: cts-tf > run cts --skip-preconditions --skip-device-info \ -m CtsCameraTestCases \ -t android.hardware.camera2.cts.RobustnessTest Tested with Chrome OS board "reef". Fixes: 23c86c74 (egl: Emit error when EGLSurface is lost) Acked-by:
Tapani Pälli <tapani.palli@intel.com> Cc: "17.1" <mesa-stable@lists.freedesktop.org> Cc: Tomasz Figa <tfiga@chromium.org> Cc: Nicolas Boichat <drinkcat@chromium.org> Cc: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 8f62d21b)
-
Samuel Iglesias Gonsálvez authored
Reorder the uniforms to load first the dvec4-aligned variables in the push constant buffer and then push the vec4-aligned ones. It takes into account that the relocated uniforms should be aligned to their channel size. This fixes a bug were the dvec3/4 might be loaded one part on a GRF and the rest in next GRF, so the region parameters to read that could break the HW rules. v2: - Fix broken logic. - Add a comment to explain what should be needed to optimise the usage of the push constant buffer slots, as this patch does not pack the uniforms. v3: - Implemented the push constant buffer usage optimization. Signed-off-by:
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Cc: "17.1" <mesa-stable@lists.freedesktop.org> Acked-by:
Francisco Jerez <currojerez@riseup.net> (cherry picked from commit e69e5c70)
-
Samuel Iglesias Gonsálvez authored
It was setting XYWZ swizzle and writemask to all uniforms, no matter if they were a vector or scalar, so this can lead to problems when loading them to the push constant buffer. Moreover, 'shift' calculation was designed to calculate the offset in DWORDS, but it doesn't take into account DFs, so the calculated swizzle for the later ones was wrong. The indirect case is not changed because MOV INDIRECT will write to all components. Added an assert to verify that these uniforms are aligned. v2: - Fix 'shift' calculation (Curro) - Set both swizzle and writemask. - Add assert(shift == 0) for the indirect case. Signed-off-by:
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Cc: "17.1" <mesa-stable@lists.freedesktop.org> Reviewed-by:
Francisco Jerez <currojerez@riseup.net> (cherry picked from commit 8aa6ada8)
-
Samuel Iglesias Gonsálvez authored
We are going to add a packing feature to reduce the usage of the push constant buffer. One of the consequences is that 'nr_params' would be modified by vec4_visitor's run call, so we need to restore it if one of them failed before executing the fallback ones. Same thing happens to the uniforms values that would be reordered afterwards. Fixes GL45-CTS.arrays_of_arrays_gl.InteractionFunctionCalls2 when the dvec4 alignment and packing patch is applied. Signed-off-by:
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Cc: "17.1" <mesa-stable@lists.freedesktop.org> Acked-by:
Francisco Jerez <currojerez@riseup.net> (cherry picked from commit 354f7f2c)
-
Eric Anholt authored
If X11 did a software fallback to the entire screen, we would throw out the BO the screen is scanning out from and allocate a new one. Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit e8ea42d2)
-
Hans de Goede authored
Together with some fixes to xdriinfo this fixes xdriinfo not working with glvnd. Since apps (xdriinfo) expect GetDriverConfig to work without going to need through the dance to setup a glxcontext (which is a reasonable expectation IMHO), the dispatch for this ends up significantly different then any other dispatch function. This patch gets the job done, but I'm not really happy with how this patch turned out, suggestions for a better fix are welcome. Cc: Kyle Brenneman <kbrenneman@nvidia.com> Signed-off-by:
Hans de Goede <hdegoede@redhat.com> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Cc: mesa-stable@lists.freedesktop.org (cherry picked from commit 84f764a7)
-
Pohjolainen, Topi authored
The reasoning Chad gave in the comment for choosing a valign of 4 is entirely bunk. The fact that you have to multiply pitch by 2 is completely unrelated to the halign/valign parameters used for texture layout. (Not completely unrelated. W-tiling is just Y-tiling with a bit of extra swizzling which turns 8x8 W-tiled chunks into 16x4 y-tiled chunks so it makes everything easier if miplevels are always aligned to 8x8.) The fact that RENDER_SURFACE_STATE::SurfaceVerticalAlignmet doesn't have a VALIGN_8 option doesn't matter since this is gen7 and you can't do stencil texturing anyway. v2 (Jason Ekstrand): - Delete most of Chad's comment and add a more descriptive commit message. Signed-off-by:
Topi Pohjolainen <topi.pohjolainen@intel.com> Cc: "17.0 17.1" <mesa-stable@lists.freedesktop.org> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net> Reviewed-by:
Chad Versace <chadversary@chromium.org> (cherry picked from commit 236f17a9)
-
Lucas Stach authored
PIPE_BUFFER is a target enum, not a binding. This caused the driver to up-align the height of buffer resources, leading to largely oversizing those resources. This is especially bad, as the buffer resources used by the upload manager are already 1MB in size. Height alignment meant that those would result in 4 to 8MB big BOs. Fixes: c9e8b49b ("etnaviv: gallium driver for Vivante GPUs") Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Lucas Stach <l.stach@pengutronix.de> Reviewed-By:
Wladimir J. van der Laan <laanwj@gmail.com> Reviewed-by:
Christian Gmeiner <christian.gmeiner@gmail.com> (cherry picked from commit 8173d7d9)
-
Eric Anholt authored
vc4 was rejecting renderonly's import, because the offset field was nonzero. Fixes: 848b49b2 ("gallium: add renderonly library") Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Christian Gmeiner <christian.gmeiner@gmail.com> (cherry picked from commit c98f03c6)
-
- 12 May, 2017 22 commits
-
-
Andres Gomez authored
Signed-off-by:
Andres Gomez <agomez@igalia.com>
-
Andres Gomez authored
Signed-off-by:
Andres Gomez <agomez@igalia.com>
-
Andres Gomez authored
Signed-off-by:
Andres Gomez <agomez@igalia.com>
-
Andres Gomez authored
stable: rejected commits. Signed-off-by:
Andres Gomez <agomez@igalia.com>
-
Andres Gomez authored
fixes: Fixes earlier commit 126d5adb which did not land in branch Signed-off-by:
Andres Gomez <agomez@igalia.com>
-
Andres Gomez authored
stable: 17.1 nominations only. Signed-off-by:
Andres Gomez <agomez@igalia.com>
-
Marek Olšák authored
Cc: 17.1 <mesa-stable@lists.freedesktop.org> Reviewed-by:
Alex Deucher <alexander.deucher@amd.com> Reviewed-by:
Nicolai Hähnle <nicolai.haehnle@amd.com> (cherry picked from commit ee590839) [Andres Gomez: resolve trivial conflicts] Signed-off-by:
Andres Gomez <agomez@igalia.com> Conflicts: src/gallium/drivers/radeonsi/si_state_draw.c
-
Dave Airlie authored
This just adds the chip in the right places. We don't set the partial_vs_wave workaround, as radeonsi doesn't, but have to confirm it's not required. Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Cc: "17.1" <mesa-stable@lists.freedesktop.org> Signed-off-by:
Dave Airlie <airlied@redhat.com> (cherry picked from commit a096d8d3) [Andres Gomez: dropped code that didn't make it for 17.0] Signed-off-by:
Andres Gomez <agomez@igalia.com> Conflicts: src/amd/vulkan/radv_device.c
-
Nicolai Hähnle authored
Cc: mesa-stable@lists.freedesktop.org Reviewed-by:
Marek Olšák <marek.olsak@amd.com> (cherry picked from commit f16b7558)
-
Rob Clark authored
Possibly other gen's have a similar limit. Fixes glmark2 -b shadow with larger resolutions on devices with small gmem (for example, fullscreen 1080p on 8x16/db410c). Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Rob Clark <robdclark@gmail.com> (cherry picked from commit 6050d5bf)
-
Ben Boeckel authored
LLVMDemangle, LLVMGlobalISel, and LLVMDebugInfoMSF are new. Also update the comment to add irreader to the list of components. CC: <mesa-stable@lists.freedesktop.org> Reviewed-by:
Chuck Atkins <chuck.atkins@kitware.com> Signed-off-by:
Ben Boeckel <ben.boeckel@kitware.com> Acked-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Jose Fonseca <jfonseca@vmware.com> (cherry picked from commit 58f51f07)
-
Johnson Lin authored
The matrix used for YCbCr to RGB is listed in: https://en.wikipedia.org/wiki/YCbCr There was an error in converting the offsets from integers to unorm values: 0.0625=16/256 should be 16.0/255,and 0.5=128.0/256 should be 128.0/255. With this fix, the CSC result is bit aligned with wikipedia's conversion result and FFMPeg's result. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100854Reviewed-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Kristian H. Kristensen <hoegsberg@google.com> (cherry picked from commit a6fb943f)
-
chadversary authored
This ensures that future calls to eglSwapBuffers and eglMakeCurrent emit an error. This patch is part of a series for fixing android.hardware.camera2.cts.RobustnessTest#testAbandonRepeatingRequestSurface on Chrome OS x86 devices. Cc: mesa-stable@lists.freedesktop.org Cc: Tomasz Figa <tfiga@chromium.org> Cc: Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Nicolas Boichat <drinkcat@chromium.org> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit e5eace58) Squashed with commit: egl/android: Set EGLSurface.Lost to EGL_TRUE/EGL_FALSE Lost is an EGLBoolean, so we should assign it to EGL_TRUE/EGL_FALSE, not true/false. Fixes: e5eace58 ("egl/android: Mark surface as lost when dequeueBuffer fails") Fixes: 0212db35 ("egl/android: Cancel any outstanding ANativeBuffer in surface destructor") Reviewed-by:
Chad Versace <chadversary@chromium.org> (cherry picked from commit 63b12b0c)
-
chadversary authored
That is, call ANativeWindow::cancelBuffer in droid_destroy_surface(). This should prevent application deadlock when the app destroys the EGLSurface after EGL has acquired a buffer from SurfaceFlinger (ANativeWindow::dequeueBuffer) but before EGL has released it (ANativeWindow::enqueueBuffer). This patch is part of a series for fixing android.hardware.camera2.cts.RobustnessTest#testAbandonRepeatingRequestSurface on Chrome OS x86 devices. Cc: mesa-stable@lists.freedesktop.org Cc: Tomasz Figa <tfiga@chromium.org> Cc: Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Nicolas Boichat <drinkcat@chromium.org> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 0212db35)
-
chadversary authored
Add a new bool, _EGLSurface::Lost, and check it in eglMakeCurrent and eglSwapBuffers. The EGL 1.5 spec says that those functions emit errors when the native surface is no longer valid. This patch just updates core EGL. No driver sets _EGLSurface::Lost yet. I discovered that Mesa failed to detect lost surfaces while debugging an Android CTS camera test, android.hardware.camera2.cts.RobustnessTest#testAbandonRepeatingRequestSurface. This patch doesn't fix the test though, though, because the test expects EGL_BAD_SURFACE when the surface becomes lost, and this patch actually complies with the EGL spec. If I interpreted the EGL spec correctly, EGL_BAD_NATIVE_WINDOW or EGL_BAD_CURRENT_SURFACE is the correct error. Cc: mesa-stable@lists.freedesktop.org Cc: Tomasz Figa <tfiga@chromium.org> Cc: Tapani Pälli <tapani.palli@intel.com> Reviewed-by:
Nicolas Boichat <drinkcat@chromium.org> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 23c86c74)
-
Emil Velikov authored
The code itself has nothing to do with shared glapi, thus having it behind GLX_SHARED_GLAPI is misleading. Use GLX_INDIRECT_RENDERING instead. The latter macro is set at global scope by the Autotools and Scons build systems. Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Nicolai Hähnle <nicolai.haehnle@amd.com> (cherry picked from commit 6177d60a)
-
Emil Velikov authored
Analogous to previous commit. Check with the extensive commit description and bug report referenced. Cc: mesa-stable@lists.freedesktop.org Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Nicolai Hähnle <nicolai.haehnle@amd.com> (cherry picked from commit 51accecc)
-
Emil Velikov authored
In the early days of Xorg and Mesa we had multiple providers of the GLAPI. All of those were the ones responsible for dlopening the DRI module. Hence it was perfectly fine, and actually expected, for the DRI modules to have unresolved symbols. Since then we've moved the API to a separate shared library and no other libraries provide the symbols. Here comes the picky part: It's possible that one uses old Xorg (where libglx.so provides the GLAPI) and new Mesa (with DRI modules linking against libglapi.so). That should still work, since the the libglx.so symbols will take precedence over the libglapi.so ones. I've verified this while running 1.14 series Xorg alongside this (and next) patch. It may seem a bit fragile, but that's of reasonably OK since all of the affected Xorg versions have been EOL for years. The final one being the 1.14 series, which saw its final bug fix release 1.14.7 in June 2014. To ensure that the binaries do not have unresolved symbols add -no-undefined and $(LD_NO_UNDEFINED), just like we do everywhere else throughout mesa. Cc: mesa-stable@lists.freedesktop.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98428Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Nicolai Hähnle <nicolai.haehnle@amd.com> (cherry picked from commit 79a26b66)
-
Adam Jackson authored
If the gbm_create_device() call here actually did fail, any subsequent eglTerminate on the display would segfault. Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by:
Eric Anholt <eric@anholt.net> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Signed-off-by:
Adam Jackson <ajax@redhat.com> (cherry picked from commit f258815c)
-
Samuel Iglesias Gonsálvez authored
According to the spec we get VK_ERROR_OUT_OF_HOST_MEMORY or VK_ERROR_OUT_OF_DEVICE_MEMORY on vkBindImageMemory failure. Fixes returned value changed by b546c9d3. Fixes: b546c9d3 ("anv: anv_gem_mmap() returns MAP_FAILED as mapping error") Signed-off-by:
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Cc: "17.0 17.1" <mesa-stable@lists.freedesktop.org> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 939b0157)
-
Samuel Iglesias Gonsálvez authored
Take it into account when checking if the mapping failed. v2: - Remove map == NULL and its related comment (Emil) Signed-off-by:
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Fixes: 6f3e3c71 ("vk/allocator: Add a BO pool") Fixes: 9919a2d3 ("anv/image: Memset hiz surfaces to 0 when binding memory") Cc: "17.0 17.1" <mesa-stable@lists.freedesktop.org> (cherry picked from commit b546c9d3) Squashed with commit: anv: fix anv_gem_mmap comment to not mention NULL The function cannot return NULL, update the comment accordingly. Fixes: b546c9d3 ("anv: anv_gem_mmap() returns MAP_FAILED as mapping error") Signed-off-by:
Emil Velikov <emil.velikov@collabora.com> Reviewed-by:
Samuel Iglesias Gonsálvez <siglesias@igalia.com> (cherry picked from commit 9d2aa6e5)
-
Christian Gmeiner authored
No piglit regressions. CC: <mesa-stable@lists.freedesktop.org> Signed-off-by:
Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by:
Philipp Zabel <p.zabel@pengutronix.de> (cherry picked from commit a8007ed6)
-