- 01 Aug, 2020 5 commits
-
-
Fixes the following building error: external/mesa/src/amd/vulkan/radv_android.c:28:10: fatal error: 'vndk/hardware_buffer.h' file not found ^~~~~~~~~~~~~~~~~~~~~~~~ (v2) use the existing preprocessor condition #if ANDROID_API_LEVEL >= 26 Fixes: f36b5274 "radv/android: Add android hardware buffer queries." Reported-and-tested-by:
youling 257 <youling257@gmail.com> Signed-off-by:
Mauro Rossi <issor.oruam@gmail.com> Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <!6051> (cherry picked from commit 80c135e6)
-
NIR_MAX_VEC_COMPONENTS was bumped from 4 to 16 in a8ec4082 (2019.03.09, merged 2019.12.21) float[4] array was added in acd7796a (2019.06.11, merged 2019.07.11) Found by Coverity. Closes: #3014 Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: a8ec4082 ("nir+vtn: vec8+vec16 support") Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <!6067> (cherry picked from commit cb19fe24)
-
ColorDrawBuffer is an array of MAX_DRAW_BUFFERS == 8. Found by Coverity. Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: 7534c536 ("mesa: add EXT_dsa (Named)Framebuffer functions") Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Part-of: <!6067> (cherry picked from commit 0906d5d5)
-
Found by Coverity. Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: f8f14130 ("util/u_process: add util_get_process_exec_path") Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Part-of: <!6067> (cherry picked from commit f13042ec)
-
Found by Coverity. Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: ef5266eb ("util/os_socket: Add socket related functions.") Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Part-of: <!6067> (cherry picked from commit eac0ba7f)
-
- 30 Jul, 2020 3 commits
-
-
This effectively reverts part of 2907faee, which changed dri2_make_current() to always take a dri2_dpy reference regardless of whether or not a new context or surface(s) were being bound. This led to a reference count imbalance as there was no corresponding code added to drop a reference on the dri2_dpy. As a consequence, any application that called eglInitialize() on a default/native display after having called eglTerminate() would always get back the old dri2_dpy, inheriting its previous state. As the reference count is there to prevent the dri2_dpy from being destroyed between eglTerminate() and eglInitialize() calls when a context is still bound, a reference should only be taken when a successful call to dri2_dpy->core->bindContext() has been made. Fix the issue by restoring the old reference counting behaviour. Fixes: 4e8f95f6 ("egl_dri2: Always unbind old contexts") Fixes: 2907faee ("egl/dri2: try to bind old context if bindContext failed") Signed-off-by:
Frank Binns <frank.binns@imgtec.com> Reviewed-by:
Luigi Santivetti <luigi.santivetti@imgtec.com> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Tested-by:
Nicolas Cortes <nicolas.g.cortes@intel.com> Closes: #3328 Part-of: <!6105> (cherry picked from commit d0e32e5f)
-
We were space-leaking iris_compiled_shader objects, leaving them around basically forever - long after the associated iris_uncompiled_shader was deleted. Perhaps even more importantly, this left the BO containing the assembly referenced, meaning those were never reclaimed either. For long running applications, this can leak quite a bit of memory. Now, when freeing iris_uncompiled_shader, we hunt down any associated iris_compiled_shader objects and pitch those (and their BO) as well. One issue is that the shader variants can still be bound, because we haven't done a draw that updates the compiled shaders yet. This can cause issues because state changes want to look at the old program to know what to flag dirty. It's a bit tricky to get right, so instead we defer variant deletion until the shaders are properly unbound, by stashing them on a "dead" list and tidying that each time we try and delete some shader variants. This ensures long running programs delete their shaders eventually. Fixes: ed4ffb97 ("iris: rework program cache interface") Reviewed-by:
Matt Turner <mattst88@gmail.com> Part-of: <!6075> (cherry picked from commit 128cbcd3)
-
Eric Engestrom authored
-
- 29 Jul, 2020 10 commits
-
-
Without this patch applied gcc@10.1.0 fails to compile with the following error (note mesa@18.3.6 but the latest release also posseses this problem): ld: ../../../../src/gallium/auxiliary/.libs/libgallium.a(u_debug_symbol.o):/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/galli um/auxiliary/util/u_debug_symbol.c:273: multiple definition of `symbols_hash'; ../../../../src/gallium/auxiliary/.libs/libgallium.a(u_debug_stack.o):/tmp/spa ck/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/gallium/auxiliary/util/u_debug_stack.c:49: first defined here collect2: error: ld returned 1 exit status make[4]: *** [libGL.la] Error 1 make[4]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/gallium/targets/libgl-xlib' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src/gallium' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src' make[1]: *** [all] Error 2 make[1]: Leaving directory `/tmp/spack/spack-stage/spack-stage-mesa-18.3.6-be7kyg2dyxwktir3zrai27n6a6coadab/spack-src/src' make: *** [all-recursive] Error 1 Closes: #3298 Cc: mesa-stable Reviewed-by:
Michel Dänzer <mdaenzer@redhat.com> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!6053> (cherry picked from commit a400c2ff)
-
Once we start going through the free list of the descriptor set pool, we might use a free entry larger than the descriptor set we want to allocate. When we free that descriptor set, we use the size of the set rather than the size of the entry that was picked. This leads to leaks of some amount of descriptor set pool. This fix saves the size of the entry in the descriptor set so we know what amount of the pool needs to freed. v2: Don't bother adding a new size field Signed-off-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by:
Danylo Piliaiev <danylo.piliaiev@globallogic.com> Cc: <mesa-stable@lists.freedesktop.org> Closes: #3324 Part-of: <!6084> (cherry picked from commit 1cdd161a)
-
Volume textures don't have a concept of "layers" v1: set last_layer to zero for 3D textures (Axel Davy) Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by:
Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Reviewed-by:
Axel Davy <davyaxel0@gmail.com> Part-of: <!5808> (cherry picked from commit 845a50ee)
-
Otherwise mesa will crash in glEndPerfQueryINTEL because OA BO is NULL. Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by:
Mark Janes <mark.a.janes@intel.com> Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <!6094> (cherry picked from commit 88471831)
-
Otherwise mesa will crash in glEndPerfQueryINTEL because OA BO is NULL. Signed-off-by:
Marcin Ślusarz <marcin.slusarz@intel.com> Cc: <mesa-stable@lists.freedesktop.org> Reviewed-by:
Mark Janes <mark.a.janes@intel.com> Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <!6094> (cherry picked from commit 627c0197)
-
Fixes: 88d41367 "radv: Add timelines with a VK_KHR_timeline_semaphore impl." Reviewed-by:
Dave Airlie <airlied@redhat.com> Tested-by:
Andres Rodriguez <andresx7@gmail.com> Part-of: <!6097> (cherry picked from commit 05b27832)
-
Fixes some dEQP-VK.renderpass2.* flakes. Valgrind: Test case 'dEQP-VK.renderpass2.dedicated_allocation.attachment.8.724'.. ==754520== Conditional jump or move depends on uninitialised value(s) ==754520== at 0x575B21C: radv_layout_is_htile_compressed (radv_image.c:1690) ==754520== by 0x572F470: radv_handle_depth_image_transition (radv_cmd_buffer.c:5855) ==754520== by 0x572F2F2: radv_handle_image_transition (radv_cmd_buffer.c:6123) ==754520== by 0x572EEC6: radv_handle_subpass_image_transition (radv_cmd_buffer.c:3385) ==754520== by 0x572A104: radv_cmd_buffer_begin_subpass (radv_cmd_buffer.c:4843) ==754520== by 0x572A007: radv_CmdBeginRenderPass (radv_cmd_buffer.c:4913) ==754520== by 0x572A197: radv_CmdBeginRenderPass2 (radv_cmd_buffer.c:4921) Why false? A renderloop happens when the same attachment is both used as input attachment and output (color, ds) attachment in a subpass. Of course this doesn't happen outside of a renderpass and hence we can initialize it to false at the start of the renderpass. Fixes: 66131ceb "radv: Pass through render loop detection to internal layout decisions." Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by:
Daniel Schürmann <daniel@schuermann.dev> Closes: #3074 Part-of: <!6068> (cherry picked from commit 18fe130e)
-
Eric Engestrom authored
-
Eric Engestrom authored
-
Eric Engestrom authored
-
- 24 Jul, 2020 5 commits
-
-
Cc: 20.1 <mesa-stable@lists.freedesktop.org> Reviewed-by:
Rhys Perry <pendingchaos02@gmail.com> Part-of: <!6024> (cherry picked from commit 4c89bfc4)
-
Cc: 20.1 <mesa-stable@lists.freedesktop.org> Reviewed-by:
Rhys Perry <pendingchaos02@gmail.com> Part-of: <!6024> (cherry picked from commit 626081fe)
-
This avoids some performance regressions on Gen12 platforms caused by SIMD32 fragment shaders reported in titles like Dota2, TF2, Xonotic, and GFXBench5 Car Chase and Aztec Ruins. The most obvious pattern in the regressing shaders I identified among these workloads is that they all had non-uniform discard statements, which are handled rather optimistically by the current IR analysis pass: No penalty is currently applied to the SIMD32 variant of the shader in the form of differing branching weights like we do for other control flow instructions in order to account for the greater likelihood of divergence of a SIMD32 shader. Simply changing that by giving the same treatment to discard statements as we give to other branching instructions seemed to hurt more than it helped on platforms earlier than Gen12, since it reversed most of the improvement obtained from SIMD32 fragment shaders in Manhattan for no measurable benefit in other workloads (Manhattan has a handful of shaders with statically non-uniform discard statements which actually perform better in SIMD32 mode due to their approximate dynamic uniformity). For that reason this change is applied to Gen12+ platforms only. I've been running a number of tests trying to understand the difference in behavior between Gen12 and earlier platforms, and most of the evidence I've gathered seems to point at EU fusion being the culprit: Unlike previous generations, on Gen12 EUs are arranged in pairs which execute instructions in lockstep, giving an effective warp size of 64 threads in SIMD32 mode, which seems to increase the likelihood for control flow divergence in some of the affected shaders significantly. Fixes: 188a3659 "intel/ir: Import shader performance analysis pass." Reported-by:
Caleb Callaway <caleb.callaway@intel.com> Reviewed-by:
Matt Turner <mattst88@gmail.com> Part-of: <!5910> (cherry picked from commit 4d73988f)
-
Eric Engestrom authored
Cc: mesa-stable Signed-off-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5833> (cherry picked from commit ae2d0457)
-
Eric Engestrom authored
-
- 22 Jul, 2020 17 commits
-
-
Copied from PAL. Higher values break tessellation, which I was only able to reproduce with register shadowing enabled. Fixes: 0bf3e6fa "radeonsi/gfx10: double the number of tessellation offchip buffers per SE" Acked-by:
Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <!5798> (cherry picked from commit 1c6eca23)
-
(random initial gfx10 commit:) Fixes: 78cdf9a9 - amd/addrlib: add gfx10 support Acked-by:
Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <!5798> (cherry picked from commit d244a25c)
-
Acked-by:
Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <!5095> (cherry picked from commit 3509d3bd)
-
Previously, we've set element_size == 16 which causes loads from packed vec3 arrays to cross the boundary and return wrong data. This patch sets element_size = 4 and splits loads into single channel. Fixes all of dEQP-VK.subgroups.ballot_broadcast.* Cc: 20.1 <mesa-stable@lists.freedesktop.org> Reviewed-by:
Rhys Perry <pendingchaos02@gmail.com> Part-of: <!5977> (cherry picked from commit 7015d2c2)
-
Eric Engestrom authored
-
Consider the following case: if ssa_1 { block block_2: /* succs: block_4 */ } else { block block_3: ... break /* succs: block_5 */ } block block_4: vec1 32 ssa_100 = phi block_2: ssa_2 After block_3 extraction and reinsertion, phi->pred becomes invalid and isn't updated by reinsertion since it is unreachable from block_3. Call nir_opt_remove_phis_block before moving block to eliminate single source phis after the if. Closes: #3282 Fixes: e3e929f8 Signed-off-by:
Danylo Piliaiev <danylo.piliaiev@globallogic.com> Reviewed-by:
Matt Turner <mattst88@gmail.com> Reviewed-by:
Timothy Arceri <tarceri@itsqueeze.com> Part-of: <!5945> (cherry picked from commit 6f94b3da)
-
When creating a sampler-type, we need to pass the correct vaclue for the "is_shadow"-parameter to glsl_sampler_type(), otherwise the compiler backend will have no clue about this being a shadow-sampler. Fixes: 1c0f92d8 ("nir: Create sampler variables in prog_to_nir.") Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Part-of: <!5986> (cherry picked from commit c33e8d7d)
-
Fixes: e44089b2 ("nvc0: add initial support for nve4+ (Kepler) chipsets") Signed-off-by:
Rhys Kidd <rhyskidd@gmail.com> Reviewed-by:
Karol Herbst <kherbst@redhat.com> Part-of: <!5982> (cherry picked from commit 203d565b)
-
Signed-off-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 43e8808b ("anv: Add support for the SYNC_FD handle type for fences") Reviewed-by:
Tapani Pälli <tapani.palli@intel.com> Part-of: <!5964> (cherry picked from commit 3a4024e7)
-
Fixes: 606dff1b "vulkan/overlay: Add support for a control socket." Reviewed-by:
Dylan Baker <dylan.c.baker@intel.com> Part-of: <!6019> (cherry picked from commit 323d5bbf)
-
This change mostly touches error handling code paths, where a bug was found when the DRI driver failed to bind a new DRI context. Specifically, the reason for it to fail was the window system unable (for whatever reason) to provide the DRI drawable with a buffer. In this instance, Mesa un-does the EGL bindings, but doesn't restore the old DRI context, hence remaining in a funny state. It's worth mentioning that despite trying, there is no guarantee that the old DRI context can be restored, depending on the runtime. Before this change, if bindContext() failed then dri2_make_current() would rebind the old EGL context and surfaces and return EGL_BAD_MATCH. However, it wouldn't rebind the DRI context and surfaces, thus leaving it in an inconsistent and unrecoverable state. After this change, dri2_make_current() tries to bind the old DRI context and surfaces when bindContext() failed. If unable to do so, it leaves EGL and the DRI driver in a consistent state, it reports an error and returns EGL_BAD_MATCH. Fixes: 4e8f95f6 ("egl_dri2: Always unbind old contexts") Signed-off-by:
Luigi Santivetti <luigi.santivetti@imgtec.com> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Acked-by:
Eric Engestrom <eric@engestrom.ch> Part-of: <!5707> (cherry picked from commit 2907faee)
-
dri2_make_current() has become hard to follow, address this by splitting the semantic of needing a call to bindContext() and its failure. Cc: mesa-stable Signed-off-by:
Luigi Santivetti <luigi.santivetti@imgtec.com> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Part-of: <!5707> (cherry picked from commit 8b0b6f90)
-
dri2_make_current() has become long and convoluted. Address this by folding together multiple if blocks checking for the same variable. Cc: mesa-stable Signed-off-by:
Luigi Santivetti <luigi.santivetti@imgtec.com> Reviewed-by:
Eric Engestrom <eric@engestrom.ch> Reviewed-by:
Emil Velikov <emil.velikov@collabora.com> Part-of: <!5707> (cherry picked from commit 6b12999e)
-
Detroit: Become Human uses dFdx/dFdy immediately after a quad-divergent discard, which can cause the image to become white. Signed-off-by:
Rhys Perry <pendingchaos02@gmail.com> Reviewed-by:
Daniel Schürmann <daniel@schuermann.dev> Reviewed-by:
Samuel Pitoiset <samuel.pitoiset@gmail.com> Cc: <mesa-stable@lists.freedesktop.org> Closes: #3212 Part-of: <!5991> (cherry picked from commit d9072a11)
-
Fixes an issue with Renderdoc's shader debugging with ACO. If nir_opt_algebraic isn't called in-between nir_lower_explicit_io and nir_lower_int64, we can end up with 64-bit multiplications. Signed-off-by:
Rhys Perry <pendingchaos02@gmail.com> Reviewed-by:
Daniel Schürmann <daniel@schuermann.dev> Fixes: 6320e37d ('nir: add amul instruction') Part-of: <!5709> (cherry picked from commit 0868638a)
-
Fixes: e644ed46 "intel/fs: Implement nir_intrinsic_global_atomic_*" Reviewed-by:
Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <!5992> (cherry picked from commit 675d7b19)
-
Otherwise we might get VM_L2_PROTECTION_FAULT_STATUS errors. Fixes: 8275dc1e ("ac/surface: fix epitch when modifying surf_pitch") Reviewed-by:
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by:
Marek Olšák <marek.olsak@amd.com> Part-of: <!5841> (cherry picked from commit 87ecfdfb)
-