summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-04-03VERSION: bump to 20.0.4mesa-20.0.4Eric Engestrom1-1/+1
2020-04-03docs: add release notes for 20.0.4Eric Engestrom1-0/+68
2020-04-02Revert "spirv: Implement OpCopyObject and OpCopyLogical as blind copies"Jason Ekstrand2-24/+4
This reverts commit 7a53e67816ed9baf7d825ed60ee59f0c05f9df48. (cherry picked from commit 68f325b256d96dca923f6c7d84bc6faf43911245)
2020-04-02.pick_status.json: Update to c71c1f44b055c680f073a2608a3bf560b55f8974Eric Engestrom1-0/+369
2020-04-01docs/relnotes: add sha256sum for 20.0.3Eric Engestrom1-1/+1
2020-04-01VERSION: bump to 20.0.3mesa-20.0.3Eric Engestrom1-1/+1
2020-04-01docs: add release notes for 20.0.3Eric Engestrom1-0/+177
2020-04-01svga, winsys/svga: Fix persistent memory discard mapsThomas Hellstrom6-9/+51
The kernel driver requires immediate notification using a BindGBSurface command when a graphics coherent memory resource changes backing MOB, so that it can start dirty-tracking the new MOB. Since we always use graphics coherent memory for persistent memory, enqueue and flush a BindGBSurface commmand at map time rather than at unmap time. Since we're dealing with persistent memory, It's OK to flush while mapped. This fixes an issue with gnome-shell / Wayland which uses persistent memory together with discard maps when we advertise ARB_buffer_storage. XWayland clients will render incorrectly. Fixes: 71b43490dd ("svga: Support ARB_buffer_storage") Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Neha Bhende <bhenden@vmware.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4399> (cherry picked from commit 46fdc288fb52345134fd9aacd6d7ff71c7b747bb)
2020-04-01nir: fix crash in varying packing on interface mismatchTimothy Arceri2-3/+23
For example when the outputs are scalars but the inputs are struct members. Fixes: 26aa460940f6 ("nir: rewrite varying component packing") Reviewed-By: Timur Kristóf <timur.kristof@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4351> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4351> (cherry picked from commit 0f4a81430e65e09db13d2472fd46105a95ea625d)
2020-04-01spirv: Implement OpCopyObject and OpCopyLogical as blind copiesJason Ekstrand2-4/+24
Because the types etc. are required to logically match, we can just copy-propagate the guts of the vtn_value. This was causing issues with some new CTS tests that are doing an OpCopyObject of a sampler which is a special-cased type in spirv_to_nir. Of course, this is only a partial solution. Ideally, we've got a bit of work to do to make all the composite stuff able to handle all types including images, sampler, and combined image/samplers but this gets some CTS tests passing. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Acked-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4375> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4375> (cherry picked from commit 7a53e67816ed9baf7d825ed60ee59f0c05f9df48)
2020-04-01.pick_status.json: Update to 70ac7f5b0c46370075a35067c9f7dfe78e84b16dEric Engestrom1-0/+369
2020-03-31anv: Account for the header in anv_state_stream_allocJason Ekstrand2-3/+4
If we have an allocation that's exactly the block size, we end up computing a new block size to allocate that's exactly the block size, add in the header, and then assert fail. When computing the block size, we need to account for the header. Fixes: 955127db937 "anv/allocator: Add support for large stream..." Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4336> (cherry picked from commit 63bec07e14d1cd8e01bf45bcda341bb364620cfc)
2020-03-31nir/lower_int64: Lower 8 and 16-bit downcasts with nir_lower_mov64Jason Ekstrand2-1/+9
We have the code to do the lowering, we were just missing the boilerplate bits to make should_lower_int64_alu_instr return true. Fixes: 62d55f12818e "nir: Wire up int64 lowering functions" Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4365> (cherry picked from commit 14a49f31d3977c2b072b9ef2fdeebebca69fe1d7)
2020-03-31util: fix u_fifo_pop()Rob Clark2-2/+2
Seems like no one ever depended on it to actually return false when fifo is empty. Fixes: 6e61d062093 ("util: Add super simple fifo") Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4366> (cherry picked from commit ffd32266780a83695ae5dd8d36b73fe970cfe4dc)
2020-03-31util/u_queue: fix race in total_jobs_size accessRhys Perry2-3/+3
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> CC: <mesa-stable@lists.freedesktop.org> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4335> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4335> (cherry picked from commit 1ef9658906655edb6b2beaf2951a9dc81d93b827)
2020-03-31glsl: fix race in instance gettersRhys Perry2-6/+16
Insertions can modify entry->data. Seems to fix random Fossilize crashes. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Eric Anholt <eric@anholt.net> CC: <mesa-stable@lists.freedesktop.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4335> (cherry picked from commit d101ca3f5ad85731cedbe7ab399d4323cca1aac6)
2020-03-31.pick_status.json: Update to 5f4d9b419a1c931ad468b8b22b8a95b1216891e4Eric Engestrom1-0/+1089
2020-03-30vtn/opencl: fully enable OpenCLstd_ClzErik Faye-Lund2-1/+2
Fixes: 7325f6ac987 ("vtn/opencl: add clz support") Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Karol Herbst <kherbst@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4318> (cherry picked from commit 4821ec6d8fcd0287ee9ea5afdd922da5ab787900)
2020-03-30pipebuffer: clean up cast-warningsErik Faye-Lund2-3/+3
This code produces warnings, so let's fix that. The problem is that casting a pointer to an integer of non-pointer-size triggers warnings on MSVC, and on 64-bit Windows unsigned long is 32-bit large. So let's instead use uintptr_t, which is exactly for these kinds of things. While we're at it, let's make the resulting index a plain "unsigned", which is the type this originated from before we started with this cast-dance. Fixes: 1a66ead1c75 ("pipebuffer, winsys/svga: Add functionality to update pb_validate_entry flags") Reviewed-by: Brian Paul <brianp@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4297> (cherry picked from commit 079cb4949dd3199ea5693cc0c6ac4c3d838ee022)
2020-03-30aco: implement 64-bit VGPR constant copies in handle_operands()Rhys Perry3-5/+40
64-bit VGPR constant copies can happen because of 64-bit constant copy propagation. Since this optimization is beneficial and more annoying to deal with in the optimizer, I've implemented 64-bit VGPR constant copies in handle_operands(). This also sets copy_operation::size correctly for 64-bit constant copies. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4260> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4260> (cherry picked from commit 43918c9a7fc76b56a521d5eea6a8d2b3fb675a15)
2020-03-30radv/llvm: fix subgroup shuffle for chips without bpermuteTimur Kristóf3-6/+32
bpermute only exists on GFX8+ and only with Wave32 on GFX10. Instead we have to use readlane with a waterfall loop to defeat the LLVM backend. This fixes DOOM Eternal which requires subgroup shuffle. Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4284> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4284> (cherry picked from commit 7ac8bb33cd6025f805a390e7647506e932f4db0d) Squashed with: radv: Enable subgroup shuffle on GFX10 when ACO is used. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4159> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4159> (cherry picked from commit cfa299eadb21893348c60906dfde8feb175c7f14)
2020-03-30freedreno/ir3/ra: fix array liverangesRob Clark2-2/+2
Fixes: 1b658533e11 ("freedreno/ir3: extend liverange of arrays") Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4272> (cherry picked from commit d2cc92c747c20613190ba330f22f219d26422cfa)
2020-03-30nir: fix packing of TCS varyings not read by the TESTimothy Arceri2-5/+69
Unlike other stages TCS outputs not read by the TES cannot always be demoted to globals e.g. when they are read by other TCS invocations. We were not taking these outputs into account when packing which could result in other outputs being assigned to the same location. Here we make sure to gather information on these outputs and group them together when packing. This fixes rendering issues in QUBE 2 via Proton. Closes: #2653 Fixes: 26aa460940f6 ("nir: rewrite varying component packing") Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4328> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4328> (cherry picked from commit b5e00f5c2bd35920a1aaf9bb676c784d5d18b6fd)
2020-03-30glsl: fix varying packing for 64bit integersTimothy Arceri2-2/+2
Without this we can incorrectly end up marking things as making use of ARB_enhanced_layouts style packing. Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4328> (cherry picked from commit 8b9ebbcb546816f525298dc24711c1922751e312)
2020-03-30ac/nir: use llvm.amdgcn.rcp in ac_build_fdiv()Samuel Pitoiset3-21/+13
Instead of emitting 1.0 / x which includes a slow division that LLVM doesn't always optimize even if the metadata is correctly set. No pipeline-db changes with VEGA10/LLVM 9. pipeline-db (VEGA10/LLVM 10): Totals from affected shaders: SGPRS: 6672 -> 6672 (0.00 %) VGPRS: 6652 -> 6652 (0.00 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 561780 -> 561692 (-0.02 %) bytes Max Waves: 1043 -> 1043 (0.00 %) pipeline-db (VEGA10/LLVM 11 - 92744f62478): Totals from affected shaders: SGPRS: 84608 -> 83768 (-0.99 %) VGPRS: 106768 -> 106636 (-0.12 %) Spilled SGPRs: 1625 -> 1713 (5.42 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 10850936 -> 10726712 (-1.14 %) bytes Max Waves: 3152 -> 3180 (0.89 %) LLVM 11 (master) is more affected than previous versions, but based on the small impact with LLVM 9/10, I decided to emit it unconditionally. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4326> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4326> (cherry picked from commit ba2ec1f369d2c97fc7c54ecd52b0addcfd349a31)
2020-03-30ac/nir: use llvm.amdgcn.rsq for nir_op_frsqSamuel Pitoiset2-4/+3
Instead of emitting 1.0 / sqrt(x) which includes a slow division that LLVM doesn't always optimize even if the metadata is correctly set. pipeline-db (VEGA10/LLVM 9): Totals from affected shaders: SGPRS: 16872 -> 16864 (-0.05 %) VGPRS: 15320 -> 15464 (0.94 %) Spilled SGPRs: 2021 -> 2133 (5.54 %) Code Size: 1915464 -> 1917476 (0.11 %) bytes Max Waves: 641 -> 639 (-0.31 %) pipeline-db (VEGA10/LLVM 10): Totals from affected shaders: SGPRS: 43936 -> 44120 (0.42 %) VGPRS: 41776 -> 41972 (0.47 %) Spilled SGPRs: 875 -> 875 (0.00 %) Code Size: 4468164 -> 4468120 (-0.00 %) bytes Max Waves: 2412 -> 2414 (0.08 %) pipeline-db (VEGA10/LLVM 11 - 92744f62478): Totals from affected shaders: SGPRS: 60096 -> 60096 (0.00 %) VGPRS: 63552 -> 63648 (0.15 %) Spilled SGPRs: 6135 -> 6117 (-0.29 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 6252996 -> 6249772 (-0.05 %) bytes Max Waves: 2324 -> 2337 (0.56 %) LLVM 11 (master) is more affected than previous versions, but based on the small impact with LLVM 9/10, I decided to emit it unconditionally. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> 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/4326> (cherry picked from commit d548384fc686f4e9cc9e6551f9a582cc740f3233)
2020-03-30ac/nir: use llvm.amdgcn.rcp for nir_op_frcpSamuel Pitoiset2-3/+3
Instead of emitting 1.0 / x which includes a slow division that LLVM doesn't always optimize even if the metadata is correctly set. pipeline-db (VEG10/LLVM 9): Totals from affected shaders: SGPRS: 50384 -> 50312 (-0.14 %) VGPRS: 42572 -> 42696 (0.29 %) Spilled SGPRs: 1372 -> 1372 (0.00 %) Code Size: 5692040 -> 5691428 (-0.01 %) bytes Max Waves: 3954 -> 3951 (-0.08 %) pipeline-db (VEG10/LLVM 10): Totals from affected shaders: SGPRS: 78512 -> 78464 (-0.06 %) VGPRS: 62408 -> 62484 (0.12 %) Spilled SGPRs: 1502 -> 1502 (0.00 %) Code Size: 8106188 -> 8103372 (-0.03 %) bytes Max Waves: 7759 -> 7753 (-0.08 %) pipeline-db (VEGA10/LLVM 11 - 92744f62478): Totals from affected shaders: SGPRS: 112760 -> 113232 (0.42 %) VGPRS: 111132 -> 110568 (-0.51 %) Spilled SGPRs: 5870 -> 5940 (1.19 %) Spilled VGPRs: 650 -> 652 (0.31 %) Code Size: 11887232 -> 11561744 (-2.74 %) bytes Max Waves: 8964 -> 9015 (0.57 %) LLVM 11 (master) is more affected than previous versions, but based on the small impact with LLVM 9/10, I decided to emit it unconditionally. Cc: 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> 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/4326> (cherry picked from commit 66426ce119b3b647f9ace62b74f18342cacd43a4)
2020-03-30intel/fs/gen12: Fix interaction of SWSB dependency combination with EU ↵Francisco Jerez2-11/+12
fusion workaround. This has been reported to fix a hang in Shadow of Mordor on Gen12. One of its compute shaders seems to cause an in-order exec_all dependency to be merged into an out-of-order SET dependency slot, which would prevent us from baking the SET dependency into the parent instruction, leading to an assert failure in emit_inst_dependencies() (Thanks to Rafael for noticing that). Prevent that by avoiding combination of in-order dependencies whenever that would cause a SET dependency to be demoted to a SYNC.NOP instruction. Fixes: e14529ff3262a527 "intel/fs/gen12: Workaround data coherency issues due to broken NoMask control flow." Tested-by: Rafael Antognolli <rafael.antognolli@intel.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> (cherry picked from commit 36c155a0178d6f05d65a9acfe5b7553d7a522f07)
2020-03-30glsl: set error_emitted true if type not ok for assignmentTapani Pälli2-3/+6
Patch changes also existing assert to not trigger when we have error types in assignment. v2: simplify, cleanup (Ian) Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2629 Fixes: d1fa69ed61d ("glsl: do not attempt assignment if operand type not parsed correctly") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4178> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4178> (cherry picked from commit 0847fe6e7fa6ee07420c6eed95bfee036748bc6a)
2020-03-30.pick_status.json: Update to 8970b7839aebefa7207c9535ac34ab4e8cc0ae25Eric Engestrom1-0/+702
2020-03-30etnaviv: Emit PE.ALPHA_COLOR_EXT* on GPUs with half-float supportMarek Vasut2-2/+3
At least GC880 (iMX6S), GC2000 (iMX6Q) blobs do not emit the PE.ALPHA_COLOR_EXT0 and PE.ALPHA_COLOR_EXT1 into the command stream. The GCnano (STM32MP1) is not affected by this change either. This is because neither of these GPUs support the half-float feature. Emit PE.ALPHA_COLOR_EXT* in etnaviv only if half-float support is present in the GPU. This fixes all of the currently failing dEQPs in this group: dEQP-GLES2.functional.fragment_ops.blend.* Fixes: 76adf041f25 ("etnaviv: fix blend color on newer GPUs") Signed-off-by: Marek Vasut <marex@denx.de> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com> Reviewed-by: Jonathan Marek <jonathan@marek.ca> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4277> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4277> (cherry picked from commit 9e78f17b74a862e34891901cde8292f91adeb655)
2020-03-26rbug: do not return void-valueErik Faye-Lund2-2/+2
Returning a void-value is nonsensical, and in this case it seems like a mistake. This eliminates a warning when building on MSVC. Fixes: fb04e5da97d ("gallium: add pipe_screen::finalize_nir") Reviewed-by: Brian Paul <brianp@vmware.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4297> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4297> (cherry picked from commit 8c30b9d9878b14098d01a4bae5d51f1392e3baff)
2020-03-26.pick_status.json: Update to 05069e1f0794aadd40ce9269f858e50c64254388Eric Engestrom1-0/+252
2020-03-25intel: Add TGL PCI IDJordan Justen2-1/+2
Ref: Bspec 44455 Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> (cherry picked from commit f02ae6986740813bf79bde8aad1a0ac5dd7e4d7c)
2020-03-25intel: Update TGL PCI stringsJordan Justen2-6/+6
Ref: Bspec 44455 Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> (cherry picked from commit 1c6ef0165f03a8e8c20a2c33a78584166a73487c)
2020-03-25intel: add new TGL pci idsLionel Landwerlin2-1/+5
Update following kernel : https://patchwork.freedesktop.org/patch/357921/ Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Bspec: 44455 Acked-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Scott D Phillips <scott.d.phillips@intel.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4248> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4248> (cherry picked from commit 58deebe547014e64d8db3f8cc5e963efe7e0f743)
2020-03-25radv: enable VK_KHR_8bit_storage on GFX6-GFX7Samuel Pitoiset2-2/+2
Enabling a Vulkan extension doesn't mean that all features need to be implemented. DOOM Eternal crashes at launch if that ext is not supported but it doesn't matter if the features are enabled or not. Let's enable it like we did for VK_KHR_16bit_storage. Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org> Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4299> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4299> (cherry picked from commit 238e2ed2100d4d364fefa23bac058100704c0a44)
2020-03-25nir/gather_info: fix per-vertex handling in try_mask_partial_ioRhys Perry2-4/+8
pipeline-db (Navi, ACO): Totals from affected shaders: SGPRS: 6432 -> 6432 (0.00 %) VGPRS: 11924 -> 11924 (0.00 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Scratch size: 1596 -> 1596 (0.00 %) dwords per thread Code Size: 575524 -> 518620 (-9.89 %) bytes LDS: 12187 -> 12187 (0.00 %) blocks Max Waves: 2695 -> 2695 (0.00 %) Helps a few hundred Dark Souls 3 shaders. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4190> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4190> (cherry picked from commit 9f4ba2d2b4a577a7cf6b38e835f0d1f39965bf08)
2020-03-25st/mesa: fix use of uninitialized memory due to st_nir_lower_builtinMarek Olšák2-2/+2
reported by valgrind Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Rob Clark <robdclark@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4274> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4274> (cherry picked from commit 719063d4d07a8f2ab2f256ea697083a8eb07e32a)
2020-03-25aco: fix boolean undef regclassRhys Perry2-1/+3
Cc: <mesa-stable@lists.freedesktop.org> Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4285> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4285> (cherry picked from commit 17c7f4e30ed8f7a04ae3ad80e39cfbdf8d8ea46c)
2020-03-25aco: emit IR in IF's merge block instead if the other side ends in a jumpRhys Perry2-7/+93
Fixes NIR such as: if (divergent) { a = sgpr() } else { break; } use(a) Previously we would have emitted: if (divergent) { a = sgpr() } if (!divergent) { break; } use(a) But "a" isn't available at it's use. Now we emit: if (divergent) { } if (!divergent) { break; } a = sgpr() use(a) pipeline-db (Navi): Totals from affected shaders: SGPRS: 1936 -> 1936 (0.00 %) VGPRS: 1264 -> 1264 (0.00 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Scratch size: 0 -> 0 (0.00 %) dwords per thread Code Size: 159408 -> 159152 (-0.16 %) bytes LDS: 0 -> 0 (0.00 %) blocks Max Waves: 81 -> 81 (0.00 %) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2557 Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3658> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3658> (cherry picked from commit 9d56ed199b911c1085ea558d243ab543af47ac8e)
2020-03-25aco: improve check for unreachable loop continue blocksRhys Perry2-7/+11
The old code would have previously caught: loop { ... break } when it was meant to just catch: loop { if (...) break else break } Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3658> (cherry picked from commit 8d8c864beba399ae4ee2267f680d1f600ad32767)
2020-03-25aco: skip NIR in unreachable merge blocksRhys Perry2-3/+7
NIR removes most of this but undef instructions for loop header phis can remain. These were harmless because ACO would DCE them itself. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3658> (cherry picked from commit 46e94fd854e8f209ae662826e1794de4c5da2b80)
2020-03-25aco: handle missing second predecessors at merge block phisRhys Perry2-1/+5
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3658> (cherry picked from commit f2c4878de9f2acfd7b23ed2deea1af094b781c7d)
2020-03-25aco: set has_divergent_branch for discards in loopsRhys Perry2-1/+4
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> CC: <mesa-stable@lists.freedesktop.org> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3658> (cherry picked from commit f1a2e1df7882e9d3816f28d6a0827d4ac66ac8f6)
2020-03-25ac: fix fast divisionMarek Olšák2-6/+5
This stopped working with LLVM 11 and might occasionally have been broken on older LLVM, because the metadata was set on the mul, not on the rcp. Cc: 19.3 20.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4268> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4268> (cherry picked from commit 303842b2dbf30e7dd1a4cd463e76aecf81adebb8)
2020-03-25Revert "ci: Remove T820 from CI temporarily"Neil Armstrong2-2/+2
This reverts commit 089c8f0b8da86a05bde8359c84085e0b795abf17. Our office changes are finished and power is now stable in our lab for T820 CI to run again. Cc: Daniel Stone <daniels@collabora.com> Cc: Tomeu Vizoso <tomeu.vizoso@collabora.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4057> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4057> (cherry picked from commit 4b61ad372d51681a3fb41b2dc21d2d58eb2becac)
2020-03-25.pick_status.json: Update to 12711939320e4fcd3a0d86af22da1042ad92035fEric Engestrom1-0/+990
2020-03-20radv: fix optional pSizes parameter when binding streamout buffersSamuel Pitoiset2-2/+7
The Vulkan spec 1.2.135 says: "pSizes is an optional array of buffer sizes, specifying the maximum number of bytes to capture to the corresponding transform feedback buffer. If pSizes is NULL, or the value of the pSizes array element is VK_WHOLE_SIZE, then the maximum bytes captured will be the size of the corresponding buffer minus the buffer offset." Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2650 Fixes: b4eb029062a ("radv: implement VK_EXT_transform_feedback") Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4232> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4232> (cherry picked from commit 2d3223ca90ae946231c1bfbfd1b450e5e96106a3)
2020-03-20mesa/main: Fix overflow in validation of DispatchComputeGroupSizeARBCaio Marcelo de Oliveira Filho2-6/+10
An uint64_t can store the result of multiplying two GLuint (uint32_t), so use that property to check for overflow when calculating the total. Change the error message so we don't need to care about the actual total -- which means we don't need a larger than 64-bit value to hold it. Fixes: 45ab63c0cb2 ("mesa/main: add support for ARB_compute_variable_groups_size") Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4240> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4240> (cherry picked from commit fdc603292862dd2663b75d18e9abc6096b8020ff)