platform/upstream/mesa.git
2 years agopanvk: Advertise support for logicOp
Jason Ekstrand [Thu, 5 May 2022 17:47:34 +0000 (12:47 -0500)]
panvk: Advertise support for logicOp

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agonir/lower_blend: Expand or shrink output variables as needed
Jason Ekstrand [Tue, 3 May 2022 17:34:44 +0000 (12:34 -0500)]
nir/lower_blend: Expand or shrink output variables as needed

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agomidgard: Handle FB fetch from non-vec4 output variables.
Jason Ekstrand [Mon, 9 May 2022 20:24:46 +0000 (15:24 -0500)]
midgard: Handle FB fetch from non-vec4 output variables.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agonir/builder: Add a nir_resize_vector helper
Jason Ekstrand [Mon, 9 May 2022 20:16:16 +0000 (15:16 -0500)]
nir/builder: Add a nir_resize_vector helper

We're about to use this a couple of places.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agonir/builder: Add a nir_trim_vector helper
Jason Ekstrand [Mon, 9 May 2022 17:15:44 +0000 (12:15 -0500)]
nir/builder: Add a nir_trim_vector helper

This pattern pops up a bunch and the semantics of nir_channels() aren't
very convenient much of the time.  Let's add a nir_trim_vector() which
matches nir_pad_vector().

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agonir/lower_blend: Support SNORM and integer formats for logic ops
Jason Ekstrand [Tue, 3 May 2022 15:55:24 +0000 (10:55 -0500)]
nir/lower_blend: Support SNORM and integer formats for logic ops

This fixes 158 of the dEQP-VK.pipeline.logic_op.* tests, once we turn
the feature on.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agonir/lower_blend: Stop passing the whole options object around
Jason Ekstrand [Tue, 3 May 2022 15:44:30 +0000 (10:44 -0500)]
nir/lower_blend: Stop passing the whole options object around

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agonir/lower_blend: Be more explicit about deref assumptions
Jason Ekstrand [Tue, 3 May 2022 14:28:01 +0000 (09:28 -0500)]
nir/lower_blend: Be more explicit about deref assumptions

Because we pull the RT from the variable location and use that to look
up formats, we need a constant RT index.  To deal with arrays (possibly
of arrays), we would either need to handle array derefs (we don't today)
or we need to require the variables to be split into one variable per
RT.  Given that we have to lower indirect derefs anyway (to get constant
indices), we may as well require the client to split output variables by
calling nir_lower_io_arrays_to_elements_no_indirect().

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agopanvk: Call nir_lower_io_arrays_to_elements_no_indirects
Jason Ekstrand [Tue, 3 May 2022 18:08:29 +0000 (13:08 -0500)]
panvk: Call nir_lower_io_arrays_to_elements_no_indirects

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16309>

2 years agoci/radv: remove amdgpu.gpu_recovery=0 from the kernel cmdline
Martin Roukala (né Peres) [Tue, 10 May 2022 10:08:38 +0000 (13:08 +0300)]
ci/radv: remove amdgpu.gpu_recovery=0 from the kernel cmdline

This was set as an attempt to detect when the GPU got hung, and let
our hangcheck detect this issue and kill the run. This however has
not been working so well, so let's try without it.

Suggested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16423>

2 years agov3dv: expose VK_KHR_spirv_1_4
Iago Toral Quiroga [Wed, 11 May 2022 07:16:09 +0000 (09:16 +0200)]
v3dv: expose VK_KHR_spirv_1_4

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16424>

2 years agov3dv: expose VK_KHR_shader_float_controls
Iago Toral Quiroga [Tue, 10 May 2022 10:53:08 +0000 (12:53 +0200)]
v3dv: expose VK_KHR_shader_float_controls

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16424>

2 years agotu: Do not flush ccu in clear/blits during renderpass
Danylo Piliaiev [Thu, 5 May 2022 17:29:05 +0000 (20:29 +0300)]
tu: Do not flush ccu in clear/blits during renderpass

For clear/blits ccu flush not only worse for perf, but also messes up
flush_bits when executed in a conditional set of commands.

We already don't flush for 3d blits.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6419

Fixes: 487aa807bd1b70602fcb6fbdabd101d4cff7c07b
("tu: Rewrite flushing to use barriers")

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16352>

2 years agoradv: remove useless check against nir_texop_samples_identical
Samuel Pitoiset [Tue, 10 May 2022 12:02:09 +0000 (14:02 +0200)]
radv: remove useless check against nir_texop_samples_identical

nir_texop_samples_identical is lowered to
nir_texop_fragment_mask_fetch_amd earlier.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16426>

2 years agoradeonsi: report more missing/broken texture formats as unsupported on gfx6-9
Marek Olšák [Sat, 7 May 2022 19:37:34 +0000 (15:37 -0400)]
radeonsi: report more missing/broken texture formats as unsupported on gfx6-9

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16386>

2 years agoradeonsi: report 10_10_10_2 scaled formats as unsupported on gfx6-9 as well
Marek Olšák [Sat, 7 May 2022 19:30:44 +0000 (15:30 -0400)]
radeonsi: report 10_10_10_2 scaled formats as unsupported on gfx6-9 as well

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16386>

2 years agoradv: optimised command buffer reset of vertex bindings.
Dave Airlie [Mon, 11 Apr 2022 03:42:58 +0000 (13:42 +1000)]
radv: optimised command buffer reset of vertex bindings.

This takes the buffer ptrs out of the struct, so they can be memset
separately and optimises the memset to be minimal for them.

Removing them from the struct avoids having to loop to clear them.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16393>

2 years agoradv: only dirty line stipple when necessary.
Dave Airlie [Mon, 9 May 2022 06:16:08 +0000 (16:16 +1000)]
radv: only dirty line stipple when necessary.

Line stipple only cares if things changes to/from line strip.

Reduces overheads seen running pixmark volplosion with zink.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16393>

2 years agoradv: cache the slab bo pointer in the pipeline.
Dave Airlie [Mon, 9 May 2022 06:06:58 +0000 (16:06 +1000)]
radv: cache the slab bo pointer in the pipeline.

Otherwise each emission has to pointer chase across cachelines.

Reduces overhead seen with zink on pixmark volplosion test.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16393>

2 years agozink: don't finish barriers cmd buffer if not used.
Dave Airlie [Mon, 9 May 2022 05:51:45 +0000 (15:51 +1000)]
zink: don't finish barriers cmd buffer if not used.

finishing has some cpu overhead, which if the cmd buffer isn't
going to be used is pointless. just let it get reset next time.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16393>

2 years agozink: avoid extra submits for empty wait cmdbufs.
Dave Airlie [Mon, 9 May 2022 05:51:20 +0000 (15:51 +1000)]
zink: avoid extra submits for empty wait cmdbufs.

This just avoids cpu overheads from processing that won't get used.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16393>

2 years agoradeonsi: Move NULL check before dereference.
Vinson Lee [Sat, 7 May 2022 00:17:50 +0000 (17:17 -0700)]
radeonsi: Move NULL check before dereference.

Fix defect reported by Coverity Scan.

Dereference before null check (REVERSE_INULL)
check_after_deref: Null-checking desc suggests that it may be
null, but it has already been dereferenced on all paths leading to
the check.

Fixes: 2f83dce059 ("radeonsi: don't report R64_*INT as a sampler format because it doesn't work")
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16380>

2 years agoradeonsi: port tess ring calcs to the common helper.
Dave Airlie [Tue, 10 May 2022 01:47:33 +0000 (11:47 +1000)]
radeonsi: port tess ring calcs to the common helper.

This uses the common helper code to implement the tess ring sizing.

One question is if radeonsi should be using tess_offchip_ring_offset
in some places it's using tess_factor_ring_size?

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16415>

2 years agoac: port radeonsi tess factor calculations to common code.
Dave Airlie [Tue, 10 May 2022 01:44:01 +0000 (11:44 +1000)]
ac: port radeonsi tess factor calculations to common code.

This was updated in
4e49a05e37232 ("radeonsi: increase the tesselation factor ring size")
and
9fecac091f315 ("radeonsi/gfx11: scattered register deltas")

This will apply this to radv.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16415>

2 years agoradv/ac: introduce a new common function for hs calcs.
Dave Airlie [Tue, 10 May 2022 01:41:54 +0000 (11:41 +1000)]
radv/ac: introduce a new common function for hs calcs.

This ports the radv code to the new ac code.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16415>

2 years agozink: create images with modifiers any time there is an import handle
Mike Blumenkrantz [Fri, 29 Apr 2022 15:52:52 +0000 (11:52 -0400)]
zink: create images with modifiers any time there is an import handle

there's no way to pass in a plane offset otherwise, so this is necessary
in order to handle yuv imports

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: rebind resources for export as needed
Mike Blumenkrantz [Fri, 29 Apr 2022 15:02:55 +0000 (11:02 -0400)]
zink: rebind resources for export as needed

exporting all resources breaks suballocation, so instead just use the
existing heuristics and then forcibly rebind resources as needed
for this functionality

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: add a LINEAR drm modifier if rebinding to add dmabuf export
Mike Blumenkrantz [Fri, 29 Apr 2022 15:01:49 +0000 (11:01 -0400)]
zink: add a LINEAR drm modifier if rebinding to add dmabuf export

this needs to have some kind of modifier, so be conservative here

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: force memory exports if dmabuf bind is specified
Mike Blumenkrantz [Fri, 29 Apr 2022 15:01:06 +0000 (11:01 -0400)]
zink: force memory exports if dmabuf bind is specified

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: fix conditional for modifier usage
Mike Blumenkrantz [Fri, 29 Apr 2022 15:00:12 +0000 (11:00 -0400)]
zink: fix conditional for modifier usage

the shared check here was inaccurate; if the resource has dmabuf
export, then use modifiers

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: add a bind flag to indicate a resource is exported as a dmabuf
Mike Blumenkrantz [Fri, 29 Apr 2022 14:59:31 +0000 (10:59 -0400)]
zink: add a bind flag to indicate a resource is exported as a dmabuf

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: unset pipe_resource::next pointers when creating resource copies
Mike Blumenkrantz [Fri, 29 Apr 2022 14:57:53 +0000 (10:57 -0400)]
zink: unset pipe_resource::next pointers when creating resource copies

this otherwise walks the chain and destroys all the resources

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: always check for fb rebinds when starting renderpass
Mike Blumenkrantz [Fri, 29 Apr 2022 14:52:27 +0000 (10:52 -0400)]
zink: always check for fb rebinds when starting renderpass

ensure the right image is being used

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agoRevert "zink: export fd info for all 2d images"
Mike Blumenkrantz [Fri, 29 Apr 2022 11:42:05 +0000 (07:42 -0400)]
Revert "zink: export fd info for all 2d images"

This reverts commit fda7371b4cfc5a15f2207f5165f3a8e14442a522.

this breaks suballocation

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: create a copy context for the screen on init
Mike Blumenkrantz [Fri, 29 Apr 2022 11:41:52 +0000 (07:41 -0400)]
zink: create a copy context for the screen on init

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: introduce copy contexts
Mike Blumenkrantz [Fri, 29 Apr 2022 11:41:32 +0000 (07:41 -0400)]
zink: introduce copy contexts

this is for creating a context which is only used for copying images

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: break out resource bind-adding into separate function for reuse
Mike Blumenkrantz [Fri, 29 Apr 2022 11:41:02 +0000 (07:41 -0400)]
zink: break out resource bind-adding into separate function for reuse

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: add a flag to indicate whether a resource is exportable
Mike Blumenkrantz [Fri, 29 Apr 2022 11:40:44 +0000 (07:40 -0400)]
zink: add a flag to indicate whether a resource is exportable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: outdent some code
Mike Blumenkrantz [Fri, 29 Apr 2022 11:34:33 +0000 (07:34 -0400)]
zink: outdent some code

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agozink: remove unused headers/struct members/linkage
Mike Blumenkrantz [Fri, 29 Apr 2022 11:26:09 +0000 (07:26 -0400)]
zink: remove unused headers/struct members/linkage

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16252>

2 years agoglsl: Fix ir_quadop_vector validation
Michael Skorokhodov [Tue, 10 May 2022 07:48:53 +0000 (10:48 +0300)]
glsl: Fix ir_quadop_vector validation

Some glcts tests have failed due to incorrect processing of `ir_quadop_vector` in
`ir_validation`. e.g:
`GLES31.functional.shaders.builtin_functions.integer.imulextended.int_highp_geometry`

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6461
Fixes: 23cde71b ("glsl: Stop lowering ir_quadop_vector.")

Reviewed-by: Emma Anholt <emma@anholt.net>
Signed-off-by: Mykhailo Skorokhodov <mykhailo.skorokhodov@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16420>

2 years agoradv: fix memory leak of descriptor set layout
Benjamin Cheng [Mon, 4 Apr 2022 04:35:19 +0000 (00:35 -0400)]
radv: fix memory leak of descriptor set layout

We need to be able to track the descriptor sets explicity to unref the
descriptor sets, otherwise these descriptor sets will not unref the
descriptor set layout it holds.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6222
Fixes: 66f7289d568
("radv: add reference counting for descriptor set layouts")

Tested-by: Jakob Bornecrantz <jakob@collabora.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15741>

2 years agokopper: remove unused zink include
Mike Blumenkrantz [Tue, 10 May 2022 19:32:20 +0000 (15:32 -0400)]
kopper: remove unused zink include

Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16441>

2 years agoradv: call nir_lower_vars_to_ssa later
Daniel Schürmann [Tue, 4 Jan 2022 09:59:07 +0000 (09:59 +0000)]
radv: call nir_lower_vars_to_ssa later

Totals from 599 (0.44% of 134913) affected shaders: (GFX10.3)
CodeSize: 1243732 -> 1240512 (-0.26%); split: -0.26%, +0.00%
Instrs: 223370 -> 222702 (-0.30%); split: -0.30%, +0.00%
Latency: 901762 -> 885446 (-1.81%); split: -1.81%, +0.00%
InvThroughput: 305546 -> 305536 (-0.00%)
SClause: 12690 -> 12554 (-1.07%); split: -1.13%, +0.06%
Copies: 23779 -> 23778 (-0.00%)
PreSGPRs: 17781 -> 17829 (+0.27%)

Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5668>

2 years agoradv: move two NIR passes out of tight optimization loop
Daniel Schürmann [Wed, 24 Jun 2020 15:22:54 +0000 (16:22 +0100)]
radv: move two NIR passes out of tight optimization loop

nir_remove_dead_variables
nir_opt_shrink_vectors

Acked-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5668>

2 years agoanv: re-alloc push constants after secondary command buffers
Iván Briano [Tue, 10 May 2022 01:30:20 +0000 (18:30 -0700)]
anv: re-alloc push constants after secondary command buffers

If the secondary command buffer executed used push constants on a
different set of stages than the primary is using, we may end up not
reallocating them for the primary, getting misrender artifacts at best,
or a nice GPU hang at worst.

Fixes the tests from a CTS from the future:
dEQP-VK.dynamic_rendering.random.*

Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16439>

2 years agodri: Remove what's left of utils.[ch]
Adam Jackson [Fri, 6 May 2022 19:31:26 +0000 (15:31 -0400)]
dri: Remove what's left of utils.[ch]

Which is just moving the struct definition for __DRIconfigRec into
dri_util.h.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377>

2 years agodri: Move dri{Get,Index}ConfigAttrib near their vtable
Adam Jackson [Fri, 6 May 2022 19:21:53 +0000 (15:21 -0400)]
dri: Move dri{Get,Index}ConfigAttrib near their vtable

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377>

2 years agodri: Move driC{reate,oncat}Configs near their only caller
Adam Jackson [Fri, 6 May 2022 19:15:58 +0000 (15:15 -0400)]
dri: Move driC{reate,oncat}Configs near their only caller

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377>

2 years agodri: move driQueryRendererIntegerCommon near its one caller
Adam Jackson [Fri, 6 May 2022 18:11:04 +0000 (14:11 -0400)]
dri: move driQueryRendererIntegerCommon near its one caller

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377>

2 years agodri: Move driCopySubBufferExtension into drisw
Adam Jackson [Fri, 6 May 2022 14:49:04 +0000 (10:49 -0400)]
dri: Move driCopySubBufferExtension into drisw

drisw is the only consumer so rename things to make it a bit more
obvious.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377>

2 years agodri: Inline dri2InvalidateDrawable into its one caller
Adam Jackson [Thu, 5 May 2022 20:52:07 +0000 (16:52 -0400)]
dri: Inline dri2InvalidateDrawable into its one caller

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377>

2 years agosvga/nir: enable lower double option
Charmaine Lee [Mon, 9 May 2022 06:42:41 +0000 (23:42 -0700)]
svga/nir: enable lower double option

There is no translation support for dfloor, mod, and pow
in svga_tgsi_vgpu10, just enable the lowering passes in the
nir compile option.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16412>

2 years agosvga/tgsi: add translation for DTRUNC
Charmaine Lee [Fri, 6 May 2022 21:45:55 +0000 (14:45 -0700)]
svga/tgsi: add translation for DTRUNC

DTRUNC is not lowered in glsl-nir-tgsi path. Add the translation
in svga_tgsi_vgpu10().

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16412>

2 years agosvga: enable PIPE_CAP_TGSI_TEXCOORD for vgpu10 and up
Charmaine Lee [Tue, 10 May 2022 16:34:57 +0000 (09:34 -0700)]
svga: enable PIPE_CAP_TGSI_TEXCOORD for vgpu10 and up

Revise commit 0d456315f95 to enable PIPE_CAP_TGSI_TEXCOORD for
vgpu10 and up only.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16434>

2 years agozink: ci updates
Mike Blumenkrantz [Tue, 10 May 2022 17:17:59 +0000 (13:17 -0400)]
zink: ci updates

I don't know how !16167 made this pass, but no driver seems to be able to
pass this test, so ignore

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agodocs: EXT_robustness2 for lavapipe
Mike Blumenkrantz [Tue, 10 May 2022 03:37:34 +0000 (23:37 -0400)]
docs: EXT_robustness2 for lavapipe

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: ci updates
Mike Blumenkrantz [Tue, 26 Apr 2022 13:48:57 +0000 (09:48 -0400)]
lavapipe: ci updates

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: set robustBufferAccess2 and robustImageAccess2
Mike Blumenkrantz [Sat, 23 Apr 2022 15:42:34 +0000 (11:42 -0400)]
lavapipe: set robustBufferAccess2 and robustImageAccess2

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agogallivm: fix oob txf swizzling
Mike Blumenkrantz [Sat, 23 Apr 2022 15:40:48 +0000 (11:40 -0400)]
gallivm: fix oob txf swizzling

this wasn't taking into account the format swizzle, returning broken
alpha values in most cases

Fixes: 0b6554ba6f2 ("gallivm,llvmpipe: handle TXF (texelFetch) instruction, including offsets")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: add support for null-descriptors from EXT_robustness2
Erik Faye-Lund [Wed, 21 Apr 2021 09:12:35 +0000 (11:12 +0200)]
lavapipe: add support for null-descriptors from EXT_robustness2

Mike says this should be enough for full support, so let's see ;)

Nope, no robust image or buffer access implemented yet.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agollvmpipe: always set ssbo data pointers for draw
Mike Blumenkrantz [Sat, 23 Apr 2022 13:39:06 +0000 (09:39 -0400)]
llvmpipe: always set ssbo data pointers for draw

skipping these would lead to reading the previously-set data if
a null buffer was set after a valid buffer

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agogallivm/draw: fix oob ubo reads
Mike Blumenkrantz [Fri, 22 Apr 2022 18:47:38 +0000 (14:47 -0400)]
gallivm/draw: fix oob ubo reads

the first case in gallivm did no checking, so this was always going to be
broken, so instead just copy the now-correct ssbo logic

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agost/draw_feedback: set constant buffer stride
Mike Blumenkrantz [Tue, 26 Apr 2022 14:23:36 +0000 (10:23 -0400)]
st/draw_feedback: set constant buffer stride

these shaders all do float-based reads, so using vec4 for robustness
checks breaks gallivm

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: fix CmdPushDescriptorSetWithTemplateKHR with refcounting
Mike Blumenkrantz [Fri, 22 Apr 2022 18:16:42 +0000 (14:16 -0400)]
lavapipe: fix CmdPushDescriptorSetWithTemplateKHR with refcounting

this is a cmdbuf function, which means it gets enqueued, which means
the template can't be destroyed until the cmdbuf has finished using it

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agogallivm: fix ssbo oob reads
Mike Blumenkrantz [Fri, 22 Apr 2022 17:52:22 +0000 (13:52 -0400)]
gallivm: fix ssbo oob reads

this was checking (offset < size) when really it needs to be
(offset < size && extent < size && offset >= 0)

Fixes: 591899eedd2 ("gallivm/nir: Add a short circuit uniform-offset mode for load_ssbo/load_shared.")

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: handle null samplerviews
Mike Blumenkrantz [Sat, 23 Apr 2022 15:42:57 +0000 (11:42 -0400)]
lavapipe: handle null samplerviews

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: tolerate NULL sampler-buffer view descriptors
Erik Faye-Lund [Wed, 14 Jul 2021 08:17:41 +0000 (10:17 +0200)]
lavapipe: tolerate NULL sampler-buffer view descriptors

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: tolerate NULL image-buffer view descriptors
Erik Faye-Lund [Mon, 26 Apr 2021 15:11:01 +0000 (17:11 +0200)]
lavapipe: tolerate NULL image-buffer view descriptors

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: tolerate NULL image view descriptors
Erik Faye-Lund [Mon, 26 Apr 2021 15:10:36 +0000 (17:10 +0200)]
lavapipe: tolerate NULL image view descriptors

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agolavapipe: tolerate NULL UBO and SSBO descriptors
Erik Faye-Lund [Mon, 26 Apr 2021 14:44:27 +0000 (16:44 +0200)]
lavapipe: tolerate NULL UBO and SSBO descriptors

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16137>

2 years agonir/opt_algebraic: Simple xor/ishr optimizations.
Georg Lehmann [Mon, 9 May 2022 09:52:26 +0000 (11:52 +0200)]
nir/opt_algebraic: Simple xor/ishr optimizations.

The first pattern here removes the xor-swap pattern.

Foz-DB GFX10_3:
Totals from 305 (0.23% of 134913) affected shaders:
CodeSize: 1589040 -> 1585164 (-0.24%)
Instrs: 284344 -> 283375 (-0.34%)
Latency: 4205148 -> 4198472 (-0.16%); split: -0.16%, +0.00%
InvThroughput: 708745 -> 708739 (-0.00%)

Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16411>

2 years agonir/opt_algebraic: Fix mask in shift by constant combining.
Georg Lehmann [Sat, 16 Apr 2022 11:36:17 +0000 (13:36 +0200)]
nir/opt_algebraic: Fix mask in shift by constant combining.

The comment above is correct, but the code to calculate the mask was broken.

No Foz-db changes outside of noise.

Fixes: 0e6581b87dc ("nir/algebraic: Reassociate shift-by-constant of shift-by-constant")
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15990>

2 years agoradv/amdgpu: Use scheduled dependency for submitting to multiple queues.
Timur Kristóf [Fri, 1 Apr 2022 15:55:28 +0000 (17:55 +0200)]
radv/amdgpu: Use scheduled dependency for submitting to multiple queues.

This code path will be used on kernels that don't have the
"gang submit" feature in amdgpu yet.

It does each submission separately, and uses scheduled dependencies
to connect them.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16361>

2 years agoradv/amdgpu: Pass correct struct type instead of repeating the cast.
Timur Kristóf [Tue, 10 May 2022 10:47:46 +0000 (12:47 +0200)]
radv/amdgpu: Pass correct struct type instead of repeating the cast.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16361>

2 years agoradv/amdgpu: Pass new queue submit info structure to internal function.
Timur Kristóf [Thu, 5 May 2022 19:51:44 +0000 (21:51 +0200)]
radv/amdgpu: Pass new queue submit info structure to internal function.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16361>

2 years agoradv/amdgpu: Initialize semaphore info with a designated initializer.
Timur Kristóf [Thu, 5 May 2022 19:50:44 +0000 (21:50 +0200)]
radv/amdgpu: Initialize semaphore info with a designated initializer.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16361>

2 years agoradv/amdgpu: Group queue submit info into a structure.
Timur Kristóf [Thu, 5 May 2022 19:43:09 +0000 (21:43 +0200)]
radv/amdgpu: Group queue submit info into a structure.

This prepares RADV for submitting to multiple queues at the same time.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16361>

2 years agoac/llvm: Remove now-superfluous intrinsics and ABI callbacks.
Timur Kristóf [Wed, 23 Mar 2022 18:25:38 +0000 (19:25 +0100)]
ac/llvm: Remove now-superfluous intrinsics and ABI callbacks.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13155>

2 years agoaco: Remove now-superfluous intrinsics.
Timur Kristóf [Wed, 23 Mar 2022 18:20:47 +0000 (19:20 +0100)]
aco: Remove now-superfluous intrinsics.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13155>

2 years agoac/nir: Remove now-superfluous ac_nir_lower_tess_to_const.
Timur Kristóf [Wed, 23 Mar 2022 18:13:20 +0000 (19:13 +0100)]
ac/nir: Remove now-superfluous ac_nir_lower_tess_to_const.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13155>

2 years agoradv: Lower ABI in NIR for tess/ESGS/NGG shader arguments.
Timur Kristóf [Wed, 16 Mar 2022 11:39:47 +0000 (12:39 +0100)]
radv: Lower ABI in NIR for tess/ESGS/NGG shader arguments.

Totals from 58720 (45.64% of 128653) affected shaders:
VGPRs: 2056576 -> 2056568 (-0.00%)
CodeSize: 153906488 -> 154609536 (+0.46%); split: -0.00%, +0.46%
MaxWaves: 1665056 -> 1665058 (+0.00%)
Instrs: 29242117 -> 29417265 (+0.60%); split: -0.00%, +0.60%
Latency: 134149608 -> 134238738 (+0.07%); split: -0.00%, +0.07%
InvThroughput: 20348833 -> 20349641 (+0.00%); split: -0.00%, +0.00%
VClause: 489376 -> 489385 (+0.00%)
SClause: 729383 -> 729382 (-0.00%)
Copies: 2672567 -> 2673132 (+0.02%); split: -0.00%, +0.02%
Branches: 1192117 -> 1192121 (+0.00%); split: -0.00%, +0.00%

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13155>

2 years agonir: Add upper bound for AMD shader arg intrinsics.
Timur Kristóf [Wed, 23 Mar 2022 17:44:57 +0000 (18:44 +0100)]
nir: Add upper bound for AMD shader arg intrinsics.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13155>

2 years agoradv: Move radv_nggc_settings enum out of radv_cmd_buffer.
Timur Kristóf [Fri, 1 Oct 2021 11:19:27 +0000 (13:19 +0200)]
radv: Move radv_nggc_settings enum out of radv_cmd_buffer.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13155>

2 years agoac/nir: Add ac_nir_load_arg helper for shader arguments.
Timur Kristóf [Wed, 29 Sep 2021 16:25:03 +0000 (18:25 +0200)]
ac/nir: Add ac_nir_load_arg helper for shader arguments.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13155>

2 years agogallium: Bump PIPE_MAX_SHADER_IMAGES to 64
Jason Ekstrand [Fri, 15 Apr 2022 22:14:26 +0000 (17:14 -0500)]
gallium: Bump PIPE_MAX_SHADER_IMAGES to 64

This is required by OpenCL

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agomesa/st: Clamp MaxImageUniforms to MAX_IMAGE_UNIFORMS
Jason Ekstrand [Mon, 18 Apr 2022 17:26:40 +0000 (12:26 -0500)]
mesa/st: Clamp MaxImageUniforms to MAX_IMAGE_UNIFORMS

We're about to bump PIPE_MAX_SHADER_IMAGES to 64 and don't want to
overflow any state tracker arrays for GL.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agogallium/u_threaded_context: Use PIPE_MAX_SHADER_SAMPLER_VIEWS for sampler_buffers
Jason Ekstrand [Mon, 18 Apr 2022 17:03:35 +0000 (12:03 -0500)]
gallium/u_threaded_context: Use PIPE_MAX_SHADER_SAMPLER_VIEWS for sampler_buffers

Sampler views and samplers may not be the same limit; in fact one is 32
while the other is 128.  The sampler_buffers field is tracking sampler
views (yes, naming is confusing) so we should use the right limit.

Fixes: e9c41b321488 ("gallium/u_threaded: add buffer lists - tracking of buffers referenced by tc")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agoshader_info: Bump the number of images and textures supported
Jason Ekstrand [Fri, 15 Apr 2022 21:35:41 +0000 (16:35 -0500)]
shader_info: Bump the number of images and textures supported

OpenCL requires up to 128 read-only images and up to 64 write images.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agoutil/bitset: Support larger ranges in BITSET_TEST/CLEAR_RANGE
Jason Ekstrand [Fri, 15 Apr 2022 21:44:47 +0000 (16:44 -0500)]
util/bitset: Support larger ranges in BITSET_TEST/CLEAR_RANGE

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agonir: Gather samplers_used separately from textures
Jason Ekstrand [Fri, 15 Apr 2022 21:16:03 +0000 (16:16 -0500)]
nir: Gather samplers_used separately from textures

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agoshader_info: Make images_used a bitset
Jason Ekstrand [Fri, 15 Apr 2022 20:32:29 +0000 (15:32 -0500)]
shader_info: Make images_used a bitset

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agonir: Stop assuming shader_info::textures_used is 32-bit
Jason Ekstrand [Fri, 15 Apr 2022 20:52:54 +0000 (15:52 -0500)]
nir: Stop assuming shader_info::textures_used is 32-bit

This isn't a hot path.  We don't need to be manually using the
INSIDE_WORD version which will assert if we ever get a bigger texture
index.

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agonir: Set image_buffers and msaa_images in lower_samplers_as_deref
Jason Ekstrand [Fri, 15 Apr 2022 20:40:13 +0000 (15:40 -0500)]
nir: Set image_buffers and msaa_images in lower_samplers_as_deref

This is where we set images_used so it's less likely that things will
accidentally get out-of-sync.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>

2 years agopan/mdg: Fix multiple spilt writes in the same bundle
Icecream95 [Fri, 10 Dec 2021 10:51:06 +0000 (23:51 +1300)]
pan/mdg: Fix multiple spilt writes in the same bundle

If two instructions in a single bundle both write to a spilt
destination, then we need to reuse the fill and spill instructions,
otherwise the value will be overwritten.

This and the rest of this set of Midgard bug fixes were found from a
vertex shader in Firefox WebRender that is used when a video is
clipped, for example by setting the border-radius CSS property.

CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>

2 years agopan/mdg: Return the instruction from mir_insert_instruction_*_scheduled
Icecream95 [Fri, 10 Dec 2021 10:50:00 +0000 (23:50 +1300)]
pan/mdg: Return the instruction from mir_insert_instruction_*_scheduled

We can't return a pointer to the bundle itself because it might move
about in memory.

CC: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>

2 years agopan/mdg: Fix disassembly of store instructions
Icecream95 [Fri, 10 Dec 2021 10:46:37 +0000 (23:46 +1300)]
pan/mdg: Fix disassembly of store instructions

The mask does apply for store instructions, so pass it onto
print_vec_swizzle after converting it to the right format.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>

2 years agopan/mdg: Fix mask usage when filling before a spill
Icecream95 [Fri, 10 Dec 2021 10:40:01 +0000 (23:40 +1300)]
pan/mdg: Fix mask usage when filling before a spill

Check the bytemask against 0xFFFF rather than 0xF so that the fill is
skipped for a .xyzw write rather than a .x write.

Set the mask on the store to 0xF when doing a read so that all
components are written back.

Fixes: 31d26ebf1b9 ("pan/mdg: Fill from TLS before spilling non-SSA nodes")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>

2 years agopan/mdg: Use MAX2 to set min_alignment
Icecream95 [Fri, 10 Dec 2021 10:44:25 +0000 (23:44 +1300)]
pan/mdg: Use MAX2 to set min_alignment

If a value is written in a vector CSEL but then written again by other
instructions, it still needs full alignment, so set min_alignment
using MAX2 to avoid ever reducing it.

Fixes: 1798f6bfc33 ("pan/midgard: Fix masks/alignment for 64-bit loads")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>

2 years agopan/mdg: Keep min_bound at 16 when alignment requires it
Icecream95 [Mon, 9 May 2022 22:40:49 +0000 (10:40 +1200)]
pan/mdg: Keep min_bound at 16 when alignment requires it

Otherwise LCRA will try to divide by zero when calculating m_max.

Fixes: 553c2cf16b7 ("pan/mdg: Set RA bounds for fp16")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16382>