summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2020-08-05radeonsi: disable SDMA on gfx9Marek Olšák1-0/+8
Fixes: 9680a754895 "radeonsi/gfx9: enable SDMA buffer copying & clearing" Acked-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4895> (cherry picked from commit 07a49bf59766b7c40d35608a98bd4a5796dcc2fe)
2020-08-05anv: Pass device to setup_gralloc0_usage for error reportingKristian H. Kristensen1-4/+5
Otherwise it doesn't compile. Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: aba57b11ee8c6d ("anv: support GetSwapchainGrallocUsage2ANDROID for Android") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6112> (cherry picked from commit ff0dbf2096148ef7513baa78646809826b7f42b4)
2020-08-05nir/deref: Don't try to compare derefs containing castsJason Ekstrand1-4/+6
One day, we may want copy_prop_vars or other passes to be able to see through certain types of casts such as when someone casts a uint64_t to a uvec2. However, for now we should just avoid casts all together. Fixes: d8e3edb784d3a "nir/deref: Support casts and ptr_as_array in..." Tested-by: Jesse Natalie <jenatali@microsoft.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6072> (cherry picked from commit 611f654fcf715364b65ca690c0521c3e3038824f)
2020-08-05intel/eu: Use non-coherent mode (BTI=253) for stateless A64 messagesJason Ekstrand2-10/+39
We don't care about full IA coherency since we always have the opportunity in GL or Vulkan to flush the data cache. Using IA-coherent mode is likely just making A64 access slower than it needs to be. Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4819> (cherry picked from commit 4985e380dd776ac65c4ae5627138211f9d9f03ce)
2020-08-05pan/mdg: Test for SSA before chasing addressesAlyssa Rosenzweig1-2/+25
It's possible an SSA value depends on a register; in this case, chasing the source would result in a crash as the chase helper in NIR asserts is_ssa. Instead we should check a priori that all the argments are in fact SSA, bailing otherwise. In the piglit shader exhibiting this bug (by looping over the index), bailing on the ishl instruction is -necessary-. This is not merely us being cowardly to avoid seeing through the registers; indeed, if we wrote away the ishl instruction, the shift itself would have to be stored in a load/store register (r26/r27) which would preclude reading it in the loop, creating a register allocation failure later in the compile. So this is the correct solution due to the restricted semantics. Closes #3286 Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reported-by: Icecream95 <ixn@keemail.me> Fixes: f5401cb8866 ("pan/midgard: Add address analysis framework") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6144> (cherry picked from commit b2f475251ed9fa8b37cb98372e64d6166d48a089)
2020-08-05pan/mdg: Mask spills from texture writeAlyssa Rosenzweig1-0/+8
This prevents RA failures the results of reading multiple textures that require less than 4 channels, as seen in a number of GL 3 WebRender shaders. Closes: #3342 Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reported-by: Icecream95 <ixn@keemail.me> Tested-by: Icecream95 <ixn@keemail.me> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6144> (cherry picked from commit b4de9e035ac0afe64ebfd58cd0eb04c1a671afce)
2020-08-05mesa/st: Actually free the driver part of memory objects on destruction.Bas Nieuwenhuizen1-0/+6
_mesa_delete_memory_object(ctx, obj) == free(obj) but doesn't free the part of the gallium driver. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1206 Fixes: 49f4ecc6777 "mesa/st: start adding memory object support" Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6148> (cherry picked from commit 99cf9108340c2ccf7c1b05ec6f951e2e91b9c76c)
2020-08-05radv: fix build on Android 7 (v2)Mauro Rossi1-1/+1
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: f36b527 "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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6051> (cherry picked from commit 80c135e6a6ade34f451e694d1c54598a75b1243e)
2020-08-05intel/vec4: fix out of bounds readMarcin Ślusarz1-1/+1
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: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3014 Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: a8ec4082a41 ("nir+vtn: vec8+vec16 support") Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6067> (cherry picked from commit cb19fe24d361991104f8dcf54d1e807998766be1)
2020-08-05mesa: fix out of bounds access in glGetFramebufferParameterivEXTMarcin Ślusarz1-1/+5
ColorDrawBuffer is an array of MAX_DRAW_BUFFERS == 8. Found by Coverity. Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: 7534c536ca0 ("mesa: add EXT_dsa (Named)Framebuffer functions") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6067> (cherry picked from commit 0906d5d504eb0209556787b020a6df58b4cc3069)
2020-08-05util: fix possible buffer overflow in util_get_process_exec_pathMarcin Ślusarz1-0/+3
Found by Coverity. Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: f8f1413070a ("util/u_process: add util_get_process_exec_path") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6067> (cherry picked from commit f13042ec7ea6842cbee81590f40b0e5c2e25a9bf)
2020-08-05util: fix possible fd leaks in os_socket_listen_abstractMarcin Ślusarz1-2/+7
Found by Coverity. Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com> Fixes: ef5266ebd50 ("util/os_socket: Add socket related functions.") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6067> (cherry picked from commit eac0ba7fc193cceccd953bc4726ceef750b18085)
2020-08-05egl/dri2: only take a dri2_dpy reference when binding a new context/surfacesFrank Binns1-2/+7
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: 4e8f95f64d004 ("egl_dri2: Always unbind old contexts") Fixes: 2907faee7a397 ("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: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3328 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6105> (cherry picked from commit d0e32e5f8105eccd075ebbf42594100ed663fd6e)
2020-08-05iris: Delete shader variants when deleting the API-facing shaderKenneth Graunke3-3/+72
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: ed4ffb97158 ("iris: rework program cache interface") Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6075> (cherry picked from commit 128cbcd3a7ba543d644ed3189dcd668900b270f4)
2020-08-05prevent multiply defined symbolsDaryl W. Grunau2-2/+2
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: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3298 Cc: mesa-stable Reviewed-by: Michel Dänzer <mdaenzer@redhat.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6053> (cherry picked from commit a400c2ff2265dfabb1ed7b59c8b24aa38d0557d1)
2020-08-05anv: fix descriptor set freeLionel Landwerlin2-1/+6
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: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3324 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6084> (cherry picked from commit 1cdd161a30297c13908134d8d205a7a377ec807a)
2020-08-05nine: fix incorrect calculation of layer count for 3D texturesYevhenii Kolesnikov1-1/+1
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5808> (cherry picked from commit 845a50ee2525c6cc4e6160eda1826c0670e0daaf)
2020-08-05i965: propagate error from gen_perf_begin_query to glBeginPerfQueryINTELMarcin Ślusarz1-2/+2
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6094> (cherry picked from commit 884718313c80a2902b6f60b6ded63a6290d40ac7)
2020-08-05iris: propagate error from gen_perf_begin_query to glBeginPerfQueryINTELMarcin Ślusarz3-6/+4
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6094> (cherry picked from commit 627c01977c29d142d5024591bf910a1ed92814c9)
2020-08-05radv: Fix host->host signalling with legacy timeline semaphores.Bas Nieuwenhuizen1-1/+10
Fixes: 88d41367b8a "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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6097> (cherry picked from commit 05b278327066304d8822eb6414a89120c816e14a)
2020-08-05radv: Fix uninitialized variable in renderpass.Bas Nieuwenhuizen1-0/+1
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: 66131ceb8bc "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: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3074 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6068> (cherry picked from commit 18fe130ec9e07213c5b4e1e46232e3c3c1835057)
2020-08-05aco: prevent infinite recursion in RA for subdword variablesDaniel Schürmann1-1/+1
Cc: 20.1 <mesa-stable@lists.freedesktop.org> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6024> (cherry picked from commit 4c89bfc4ec0ea29ab757b0391bf646673e483668)
2020-08-05aco: don't split store data if it was already split into more elementsDaniel Schürmann1-6/+9
Cc: 20.1 <mesa-stable@lists.freedesktop.org> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6024> (cherry picked from commit 626081fe4bf653a18cff9e25e6da2636bc58774a)
2020-08-05intel/ir/gen12+: Work around FS performance regressions due to SIMD32 ↵Francisco Jerez1-0/+14
discard divergence. 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: 188a3659aea6dec9acf1 "intel/ir: Import shader performance analysis pass." Reported-by: Caleb Callaway <caleb.callaway@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5910> (cherry picked from commit 4d73988f6fef39e9263ec0bb49cd5efff68393bc)
2020-08-05radeonsi/gfx10: set the correct value for OFFCHIP_BUFFERINGMarek Olšák1-1/+1
Copied from PAL. Higher values break tessellation, which I was only able to reproduce with register shadowing enabled. Fixes: 0bf3e6fae7f82b4f16fbcbb05a1ae47f7930e189 "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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5798> (cherry picked from commit 1c6eca23fdd8bc112c70914100601d0e382a8154)
2020-08-05radeonsi: add missing initialization of registersMarek Olšák2-1/+43
(random initial gfx10 commit:) Fixes: 78cdf9a99f0 - amd/addrlib: add gfx10 support Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5798> (cherry picked from commit d244a25c072557edd1133356b94557938c000f78)
2020-08-05ac: update register and packet definitions for preemptionMarek Olšák8-65/+84
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5095> (cherry picked from commit 3509d3bd53e6b386e8e153e8e3f701b3f631fc8c)
2020-08-05aco: fix scratch loads which cross element_size boundariesDaniel Schürmann1-11/+14
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5977> (cherry picked from commit 7015d2c249e1f7814bf5681ccd049e49e4d6495c)
2020-07-22nir/opt_if: Fix opt_if_simplification when else branch has jumpDanylo Piliaiev1-0/+11
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: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3282 Fixes: e3e929f8c342b32dc8f5296adf8fb337866fa40a 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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5945> (cherry picked from commit 6f94b3da111f65a46126fdb3652474dc4d9cbda5)
2020-07-22mesa/program: fix shadow property for samplersErik Faye-Lund1-1/+1
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: 1c0f92d8a8c ("nir: Create sampler variables in prog_to_nir.") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5986> (cherry picked from commit c33e8d7d522c250443d903b5732224988855b9a9)
2020-07-22nvc0: fix macro define for NVE4_COPY()Rhys Kidd1-1/+1
Fixes: e44089b2f79 ("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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5982> (cherry picked from commit 203d565b195442dac85701b029eb8ba469c6809b)
2020-07-22anv: properly handle fence import of sync_fd = -1Lionel Landwerlin1-3/+15
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: 43e8808b82b9eb ("anv: Add support for the SYNC_FD handle type for fences") Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5964> (cherry picked from commit 3a4024e776645714dc728e48108755877b37131a)
2020-07-22meson: Add mising git_sha1.h dependency.Bas Nieuwenhuizen1-1/+1
Fixes: 606dff1b73f "vulkan/overlay: Add support for a control socket." Reviewed-by: Dylan Baker <dylan.c.baker@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6019> (cherry picked from commit 323d5bbfd9a1d6684bb5381b67b8965ea98d5fc0)
2020-07-22egl/dri2: try to bind old context if bindContext failedLuigi Santivetti1-11/+40
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: 4e8f95f64d004aa1 ("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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5707> (cherry picked from commit 2907faee7a3970a63daefd6017bb7b8691e7fc08)
2020-07-22dri2: do not conflate unbind and bindContext() failureLuigi Santivetti1-26/+25
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5707> (cherry picked from commit 8b0b6f907d7ba304cea02bdb81fbb914d6077cb9)
2020-07-22dri2: dri2_make_current() fold multiple if blocksLuigi Santivetti1-14/+7
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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5707> (cherry picked from commit 6b12999ef7c5b754df0919cdc9e354d58abbc4fb)
2020-07-22radv: replace discard with demote for Quantic Dream gamesRhys Perry1-1/+2
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: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3212 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5991> (cherry picked from commit d9072a113b2041cebfa10e6e27b5ce2687a02126)
2020-07-22nir/lower_int64: lower 64-bit amulRhys Perry1-4/+22
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: 6320e37d4be ('nir: add amul instruction') Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5709> (cherry picked from commit 0868638aed05775db44e9acc625bc34c737ee4fa)
2020-07-22intel/fs: Use the correct logical op for global float atomicsJason Ekstrand1-1/+1
Fixes: e644ed468f98 "intel/fs: Implement nir_intrinsic_global_atomic_*" Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5992> (cherry picked from commit 675d7b19a9aece0ea674eadba20ec2b01c86de6e)
2020-07-22ac/surface: adapt surf_size when modifying surf_pitchPierre-Eric Pelloux-Prayer1-5/+14
Otherwise we might get VM_L2_PROTECTION_FAULT_STATUS errors. Fixes: 8275dc1ed57 ("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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5841> (cherry picked from commit 87ecfdfbf0a8448d1475e6da15175e68bdeb933b)
2020-07-22radv: fix destroying the syncobj when exporting a fence FDSamuel Pitoiset1-1/+1
It's invalid and the temporary syncobj was never actually destroyed. Cc: 20.1 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5921> (cherry picked from commit 8aa9d0acb8ce882686eedd7d9b2bf51b035f2614)
2020-07-22panfrost: Revert "Disable frame throttling"Alyssa Rosenzweig1-3/+0
This reverts commit 4fee7b30c0ecc56d7659ecad1d8b140ab253f0db, which was intended to be a temporary workaround for a leak introduced in a65e29ccb26 ("gallium: simplify throttle implementation"). However, that leak was then fixed in 023282a4f667695ea1dbbe9fbe1cd3a9d550a426 and we forgot to revert this hack. Closes: #2108 Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5858> (cherry picked from commit 40b99bb79e19a413da5e2f9717b219336919367b)
2020-07-22panfrost: Fix write to free'd memoryAlyssa Rosenzweig1-1/+1
No clue how this worked before. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Fixes: 82f18b713ac ("panfrost: Keep track of active BOs") Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5859> (cherry picked from commit 37d89e0f93601e520edcdc41dc68197dff736c1e)
2020-07-22panfrost: Fix fence leakAlyssa Rosenzweig1-0/+3
When overwriting the writer, we need to release the old reference. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Fixes: 2dad9fde505 ("panfrost: Start tracking inter-batch dependencies") Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5859> (cherry picked from commit 20dd37024b045881d98a55b1927b0dab29d1edd3)
2020-07-22spirv: Allow block-decorated struct types for constantsJason Ekstrand2-1/+3
Whenever a struct type is decorated Block or BufferBlock we turn that into a GLSL_TYPE_INTERFACE. Since these decorations can end up random places, we should allow them for constants. Closes: #3252 Fixes: 9d0ae777dd6 "spirv: Use interface type for block and buffer..." Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5855> (cherry picked from commit 351b5137d71b8dc944bad6dcb83cd93e6d38c44e)
2020-07-22spirv: Skip phis in unreachable blocks in the second phi passJason Ekstrand1-1/+8
Closes: #3253 Fixes: 22fdb2f8551 "nir/spirv: Update to the latest revision" Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5855> (cherry picked from commit 81773b4b441fbd8ec284de78e4dfdcecdca112dc)
2020-07-22iris: fix fallback to swrast driverLionel Landwerlin1-1/+1
The helper we use to query the kernel returns -1 if the getparam is not supported. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Fixes: f402b7c57641dd ("iris: fail screen creation when kernel support is not there") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3188 Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5838> (cherry picked from commit e3ddba73241901a75844b39e6e3b12eaf15f9b26)
2020-07-22st/mesa: set compressed_data to NULL when freedPierre-Eric Pelloux-Prayer1-0/+1
Reported-by: Karol Herbst <kherbst@redhat.com> Fixes: b6db703e0f0 ("st/mesa: make texture views inherit compressed_data storage") Reviewed-by: Karol Herbst <kherbst@redhat.com> Tested-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5821> (cherry picked from commit 51bdaf0b601522dfc599bd352806e66ef56876a3)
2020-07-22glsl: only allow 32 bits atomic operations on imagesPierre-Eric Pelloux-Prayer1-0/+44
EXT_shader_image_load_store says: The format of the image unit must be in the "1x32" equivalence class otherwise the atomic operation is invalid. ARB_shader_image_load_store says: We will only support 32-bit atomic operations on images Fixes: fc0a2e5d017 ("glsl: add EXT_shader_image_load_store new image functions") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5688> (cherry picked from commit 1e3aeda5281e5d246e37a035d91f08af4bb0e5e3)
2020-07-22glsl: don't expose imageAtomicIncWrap for signed imagePierre-Eric Pelloux-Prayer1-15/+29
The spec says that it's only allowed for unsigned ones. Same from imageAtomicDecWrap. Fixes: fc0a2e5d017 ("glsl: add EXT_shader_image_load_store new image functions") Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5688> (cherry picked from commit 233af4a412db87a9b8430104a58c1b6adb704b1c)