platform/upstream/mesa.git
2 years agodzn: enable two more exts
Erik Faye-Lund [Mon, 13 Jun 2022 14:48:33 +0000 (16:48 +0200)]
dzn: enable two more exts

These are already implemented, so let's turn them on!

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17027>

2 years agodzn: use a null-rtv to handle no-attachment
Erik Faye-Lund [Mon, 13 Jun 2022 15:22:09 +0000 (17:22 +0200)]
dzn: use a null-rtv to handle no-attachment

This fixes a crash in this test:
dEQP-VK.renderpass2.suballocation.simple.color_unused_omit_blend_state

Fixes: 2d0798440b4 ("dzn: Add support for dynamic rendering")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17027>

2 years agomicrosoft/compiler: Truncate function names when needed
Boris Brezillon [Mon, 14 Feb 2022 17:13:41 +0000 (09:13 -0800)]
microsoft/compiler: Truncate function names when needed

DXIL metadata strings and function names have a limited size. Truncate
the name when they don't fit. This is a quick&dirty workaround since it
doesn't address the problem for all kind of strings, and doesn't ensure
there's no collision in the function names after the truncation. That's
not an issue right now because I don't think we have implementations
keeping more than one function (the entrypoint), but it might be a
problem at some point.

Acked-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16961>

2 years agomicrosoft/compiler: Pick a type that matches interpolation mode for structs
Boris Brezillon [Tue, 15 Feb 2022 18:04:33 +0000 (10:04 -0800)]
microsoft/compiler: Pick a type that matches interpolation mode for structs

We can't use linear interpolation on integer types, and varyings using
a struct type might actually contain only fp32 members, in which case
interpolation should happen as requested.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16961>

2 years agov3dv/pipeline: expand nir_optimize, drop st_nir_opts
Alejandro Piñeiro [Wed, 9 Mar 2022 22:37:22 +0000 (23:37 +0100)]
v3dv/pipeline: expand nir_optimize, drop st_nir_opts

Right now we had two methods that tries to optimize the nir shader,
nir_optimize and st_nir_opts. The latter is being used when we are
linking, but again, it has basically the same purpose that
nir_optimize.

So this commit adds more lowerings to nir_optimize_nir, add some extra
comments on the method, and replaces st_nir_opts with nir_optimize.

Ideally we would like to just use the already existing
v3d_optimize_nir that we have at the backend But:
   * Using it leads to some regressions on Vulkan CTS tests, due some
     lowerings that are already there.
   * We would need to move to the backend some additional
     lowerings/optimizations that are used on the Vulkan
     frontend. That would require to check that we are not getting any
     regression or performance drop on OpenGL

So for now we are keeping a Vulkan specific nir_optimize method.

Additionally this fixes the following test:
dEQP-VK.graphicsfuzz.cov-loop-condition-clamp-vec-of-ones

Shaderdb stats, using some well known Vulkan apps (ue4 demos, Quake3e,
etc):

 total instructions in shared programs: 124974 -> 125108 (0.11%)
 instructions in affected programs: 50328 -> 50462 (0.27%)
 helped: 4
 HURT: 79

 total uniforms in shared programs: 19019 -> 19020 (<.01%)
 uniforms in affected programs: 60 -> 61 (1.67%)
 helped: 0
 HURT: 1

 total max-temps in shared programs: 13438 -> 13444 (0.04%)
 max-temps in affected programs: 85 -> 91 (7.06%)
 helped: 0
 HURT: 2

 total inst-and-stalls in shared programs: 125715 -> 125849 (0.11%)
 inst-and-stalls in affected programs: 50429 -> 50563 (0.27%)
 helped: 4
 HURT: 79

 total nops in shared programs: 8203 -> 8204 (0.01%)
 nops in affected programs: 732 -> 733 (0.14%)
 helped: 7
 HURT: 9

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16986>

2 years agov3dv/pipeline: call nir_lower_explicit_io after first nir optimization loop
Alejandro Piñeiro [Wed, 9 Mar 2022 23:46:48 +0000 (00:46 +0100)]
v3dv/pipeline: call nir_lower_explicit_io after first nir optimization loop

That is what most others Vulkan drivers do (radv, anv, turnip at
least).

The origin of this change cames from a CTS test where the loop
unrolling converted a ubo index defined inside a loop from constant to
non constant. That is not desiderable on any driver, but a problem on
v3dv, as v3dv doesn't support that case.

Although we initially tried to fix it on the loop unroll, we discarded
that approach, and focused on the existing nir lowerings/optimizations
as this was not happening with other drivers.

We noted that in other drivers this case of a ubo index going from
const to non-const were also happening with nir_lower_explicit_io, but
in that case it was able to be converted back to a const on following
lowerings. The only difference with other drivers is that we were
calling it before the first nir optimization loop.

So this change helps with fixing the following CTS test (for that we
also need to run additional lowerings, which we do in a later patch):
   dEQP-VK.graphicsfuzz.cov-loop-condition-clamp-vec-of-ones

You can get further details on the following issue and RFC merge
request, specially the merge request:
  https://gitlab.freedesktop.org/mesa/mesa/-/issues/6051
  https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15391

We also made some shaderdb stats with our usual Vulkan apps (ue4
demos, quake3, etc):

 Total instructions in shared programs: 125014 -> 124974 (-0.03%)
 instructions in affected programs: 7544 -> 7504 (-0.53%)
 helped: 7
 HURT: 4

 total uniforms in shared programs: 19026 -> 19019 (-0.04%)
 uniforms in affected programs: 514 -> 507 (-1.36%)
 helped: 5
 HURT: 0

 total max-temps in shared programs: 13430 -> 13438 (0.06%)
 max-temps in affected programs: 270 -> 278 (2.96%)
 helped: 0
 HURT: 8

 total sfu-stalls in shared programs: 739 -> 741 (0.27%)
 sfu-stalls in affected programs: 30 -> 32 (6.67%)
 helped: 0
 HURT: 2

 total inst-and-stalls in shared programs: 125753 -> 125715 (-0.03%)
 inst-and-stalls in affected programs: 7685 -> 7647 (-0.49%)
 helped: 7
 HURT: 4

 total nops in shared programs: 8228 -> 8203 (-0.30%)
 nops in affected programs: 546 -> 521 (-4.58%)
 helped: 9
 HURT: 2

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16986>

2 years agonir: get res binding using component 0, instead of asssumig an uint
Alejandro Piñeiro [Thu, 10 Mar 2022 11:34:45 +0000 (12:34 +0100)]
nir: get res binding using component 0, instead of asssumig an uint

Needed to be able to call nir_opt_gcm on the v3dv driver. This change
is needed as on v3dv we honor vulkan resource index returning a vec2.

See commit 21b0a4c80c5f8dd9cdfac7e6b591d6912ba18cf5 for more info.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16986>

2 years agoisaspec: Handle patterns bigger then 64 bit
Christian Gmeiner [Sun, 12 Jun 2022 11:34:30 +0000 (13:34 +0200)]
isaspec: Handle patterns bigger then 64 bit

Currently uint64_t_to_bitmask(..) is used in combination with
the pattern 'match'. This only works for values smaller then
64 bit. Add support for bigger isa sizes.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16996>

2 years agoisaspec: Extend split_bits(..) to accept a bitsize
Christian Gmeiner [Tue, 7 Jun 2022 15:38:50 +0000 (17:38 +0200)]
isaspec: Extend split_bits(..) to accept a bitsize

Make split_bits(..) more generic.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16996>

2 years agoci/panfrost: add Blender, Warzone2100, Freedoom and Unvanquished traces
David Heidelberg [Fri, 27 May 2022 08:36:09 +0000 (10:36 +0200)]
ci/panfrost: add Blender, Warzone2100, Freedoom and Unvanquished traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agoci/crocus: add Blender, Warzone2100, Freedoom and Unvanquished traces
David Heidelberg [Mon, 6 Jun 2022 09:04:23 +0000 (11:04 +0200)]
ci/crocus: add Blender, Warzone2100, Freedoom and Unvanquished traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agoci/virgl: iris: disable Counter Strike 1.6 trace flaking
David Heidelberg [Tue, 7 Jun 2022 15:24:53 +0000 (17:24 +0200)]
ci/virgl: iris: disable Counter Strike 1.6 trace flaking

Changes very often, but does look correct.

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agoci/virgl: add Blender, Warzone2100, Freedoom and Unvanquished traces
David Heidelberg [Wed, 1 Jun 2022 05:46:23 +0000 (07:46 +0200)]
ci/virgl: add Blender, Warzone2100, Freedoom and Unvanquished traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agoci/iris: add Blender, Warzone2100, Freedoom and Unvanquished traces
David Heidelberg [Mon, 6 Jun 2022 09:12:25 +0000 (11:12 +0200)]
ci/iris: add Blender, Warzone2100, Freedoom and Unvanquished traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agoci/llvmpipe: add Blender, Warzone2100, Freedoom and Unvanquished traces
David Heidelberg [Mon, 6 Jun 2022 08:52:23 +0000 (10:52 +0200)]
ci/llvmpipe: add Blender, Warzone2100, Freedoom and Unvanquished traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agoci/freedreno: fix A530 glmark2@ideas:speed=10000 trace
David Heidelberg [Tue, 7 Jun 2022 15:49:57 +0000 (17:49 +0200)]
ci/freedreno: fix A530 glmark2@ideas:speed=10000 trace

Just one-pixel change in rendering, look correct to me.

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agoci/freedreno: add Blender, Warzone2100, Freedoom and Unvanquished traces
David Heidelberg [Fri, 27 May 2022 08:32:53 +0000 (10:32 +0200)]
ci/freedreno: add Blender, Warzone2100, Freedoom and Unvanquished traces

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16909>

2 years agov3dv: handle barriers at the end of a command buffer
Iago Toral Quiroga [Mon, 13 Jun 2022 11:53:45 +0000 (13:53 +0200)]
v3dv: handle barriers at the end of a command buffer

Since we only consume barriers at the beginning of a new job, if
a command buffer ends with a barrier we will not handle it. Fix
this by emitting a noop job  in that case to consume it. Ideally,
we could do better and check the pending barrier state to fine
tune the noop job so we don't wait on all queues, but for now
this fixes flakyness with some CTS pipeline barrier tests that
started to show up after we optimized binning sync barriers. It
is likely that the additional sync we had before that change was
enough to prevent the problem from showing up.

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

2 years agov3dv: merge pending secondary barrier state into primary command buffers
Iago Toral Quiroga [Mon, 13 Jun 2022 08:35:12 +0000 (10:35 +0200)]
v3dv: merge pending secondary barrier state into primary command buffers

When we switched to using structs to track barrier state we made a mistake
and started to overwrite barrier state in primary command buffers with
the pending state from secondary command buffers executed inside them, when we
should've been merging the state instead.

Fixes flakyness with some CTS barrier tests.

Fixes: f7ce42636c ('v3dv: use an explicit struct type to track barrier state')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17020>

2 years agobroadcom/compiler: disable flags optimization for loop conditions
Iago Toral Quiroga [Fri, 10 Jun 2022 08:46:51 +0000 (10:46 +0200)]
broadcom/compiler: disable flags optimization for loop conditions

This is not safe because it may skip regenerating the flags for the
loop condition in the loop continue block and these flags may be
stomped in the loop body by other conditionals.

Fixes: 9909fe6ba ('broadcom/compiler: Skip bool_to_cond where possible')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17020>

2 years agoci/etnaviv: gc2000: drop flakes from fails
David Heidelberg [Sat, 11 Jun 2022 07:06:13 +0000 (09:06 +0200)]
ci/etnaviv: gc2000: drop flakes from fails

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17003>

2 years agoci/etnaviv: add recent flakes for gc2000
David Heidelberg [Sat, 11 Jun 2022 06:48:52 +0000 (08:48 +0200)]
ci/etnaviv: add recent flakes for gc2000

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17003>

2 years agoci/etnaviv: disable tests which takes too long
David Heidelberg [Sat, 11 Jun 2022 06:45:47 +0000 (08:45 +0200)]
ci/etnaviv: disable tests which takes too long

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17003>

2 years agoci/etnaviv: add recent fails and remove 3 unexpected passes
David Heidelberg [Sat, 11 Jun 2022 06:35:17 +0000 (08:35 +0200)]
ci/etnaviv: add recent fails and remove 3 unexpected passes

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17003>

2 years agoci/etnaviv: sort fails.txt
David Heidelberg [Sat, 11 Jun 2022 06:32:34 +0000 (08:32 +0200)]
ci/etnaviv: sort fails.txt

Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17003>

2 years agodzn: handle stencil-attachment-optimal layout
Erik Faye-Lund [Mon, 13 Jun 2022 14:10:52 +0000 (16:10 +0200)]
dzn: handle stencil-attachment-optimal layout

We missed this one, whoops.

Fixes: a012b219640 ("microsoft: Initial vulkan-on-12 driver")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16997>

2 years agodzn: correct assert-condition
Erik Faye-Lund [Mon, 13 Jun 2022 14:10:30 +0000 (16:10 +0200)]
dzn: correct assert-condition

This logic accidentally got flipped in a refactoring. Let's correct it!

Fixes: e293691a991 ("dzn: Get rid of the render pass logic")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16997>

2 years agoci/valve: do not extract the install tarball on the runner
Martin Roukala (né Peres) [Fri, 10 Jun 2022 11:58:06 +0000 (14:58 +0300)]
ci/valve: do not extract the install tarball on the runner

Until now, we have been extracing the install.tar image on the gitlab
runner before sharing it to the test machine through a MINIO bucket.

It turns out that hardlinks and symlinks do not get shared, so let's
just extract the tarball directly on the test machine to fix the issue.

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/16968>

2 years agoci: bump the hang-detection tool in the test image for Vulkan
Samuel Pitoiset [Mon, 13 Jun 2022 15:04:51 +0000 (17:04 +0200)]
ci: bump the hang-detection tool in the test image for Vulkan

I recently fixed one issue that triggered an assertion in the
Vulkan common code. This was because the tool allocated cmdbuf
from the wrong pool (in presence of multiple queues).

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17002>

2 years agor300: expose PIPE_CAP_LEGACY_MATH_RULES
Pavel Ondračka [Fri, 20 May 2022 06:32:31 +0000 (08:32 +0200)]
r300: expose PIPE_CAP_LEGACY_MATH_RULES

We are already doing the 0*anything = 0 by default and we are also
using the DX versions of math ops like RCP. It looks like R300 and
R400 can't do IEEE math anyway (but its hard to tell without docs).
For R500 we can do IEEE math, but testing showed that some apps
are dependent on the DX behavior, so considering we only advertise
GLSL 1.20 where this is left ot the driver, just keep the curent
status and expose PIPE_CAP_LEGACY_MATH_RULES so that nine can stop
emiting math workarounds.

Also fixes two Xnine tests.

Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17007>

2 years agoanv: VK_EXT_border_color_swizzle
Mike Blumenkrantz [Sat, 11 Jun 2022 18:10:33 +0000 (14:10 -0400)]
anv: VK_EXT_border_color_swizzle

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16992>

2 years agolavapipe: VK_EXT_border_color_swizzle
Mike Blumenkrantz [Sat, 11 Jun 2022 13:51:54 +0000 (09:51 -0400)]
lavapipe: VK_EXT_border_color_swizzle

Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16992>

2 years agogallium/u_threaded: fix buffer busyness tracking
Marek Olšák [Sat, 11 Jun 2022 10:58:56 +0000 (06:58 -0400)]
gallium/u_threaded: fix buffer busyness tracking

The order of calls was incorrect.

Fixes: e9c41b321488c23b - gallium/u_threaded: add buffer lists - tracking of buffers referenced by tc
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5327

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-By: Jonathan Strobl <jonathan.strobl@gmx.de>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16989>

2 years agoanv: Use NIR_PASS(_, ...)
Jason Ekstrand [Mon, 13 Jun 2022 21:33:16 +0000 (16:33 -0500)]
anv: Use NIR_PASS(_, ...)

I don't know when this was added but it's really neat and we should use
it instead of NIR_PASS_V since NIR_DEBUG=print and a few validation
things will work better.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17014>

2 years agointel/compiler: Use NIR_PASS(_, ...)
Jason Ekstrand [Mon, 13 Jun 2022 17:38:42 +0000 (12:38 -0500)]
intel/compiler: Use NIR_PASS(_, ...)

I don't know when this was added but it's really neat and we should use
it instead of NIR_PASS_V since NIR_DEBUG=print and a few validation
things will work better.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17014>

2 years agoci: uprev piglit 2022-06-09
David Heidelberg [Thu, 9 Jun 2022 11:00:24 +0000 (13:00 +0200)]
ci: uprev piglit 2022-06-09

Reviewed-by: Emma Anholt <emma@anholt.net>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16946>

2 years agozink: fix up KILL to a more sensible log message
Mike Blumenkrantz [Mon, 13 Jun 2022 19:19:30 +0000 (15:19 -0400)]
zink: fix up KILL to a more sensible log message

cc: mesa-stable

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

2 years agozink: unset res->swapchain upon killing a swapchain
Mike Blumenkrantz [Mon, 13 Jun 2022 19:04:34 +0000 (15:04 -0400)]
zink: unset res->swapchain upon killing a swapchain

this otherwise causes the driver to make bad assumptions about
how the resource should be handled

cc: mesa-stable

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

2 years agozink: add implicit sync workaround for non-mesa drivers
Mike Blumenkrantz [Fri, 10 Jun 2022 17:24:20 +0000 (13:24 -0400)]
zink: add implicit sync workaround for non-mesa drivers

implicit sync is hard, and many drivers get it wrong, so assume that
anyone who isn't mesa might need some hand-holding

cc: mesa-stable

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

2 years agoRevert "wsi/x11: Avoid using xcb_wait_for_special_event in FIFO modes"
Renato Pereyra [Thu, 9 Jun 2022 19:55:39 +0000 (12:55 -0700)]
Revert "wsi/x11: Avoid using xcb_wait_for_special_event in FIFO modes"

This reverts commit 44a20baeb8bb51c7ab99e30fd7f4bb19a0b555b6.

Signed-off-by: Renato Pereyra <renatopereyra@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16954>

2 years agoRevert "wsi/x11: Don't leak xcb_get_geometry_reply_t."
Renato Pereyra [Thu, 9 Jun 2022 19:50:49 +0000 (12:50 -0700)]
Revert "wsi/x11: Don't leak xcb_get_geometry_reply_t."

This reverts commit 24049b8771be7bd9044e005565ab9dc327e9dd63.

Signed-off-by: Renato Pereyra <renatopereyra@chromium.org>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16954>

2 years agozink: defer old swapchain destruction
Mike Blumenkrantz [Thu, 9 Jun 2022 13:20:01 +0000 (09:20 -0400)]
zink: defer old swapchain destruction

ensure that swapchains that are about to be presented asynchronously
cannot be destroyed

Fixes: 8ade5588e39 ("zink: add kopper api")

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

2 years agozink: keep a count of async presents occuring for a given swapchain
Mike Blumenkrantz [Thu, 9 Jun 2022 13:19:18 +0000 (09:19 -0400)]
zink: keep a count of async presents occuring for a given swapchain

this provides info about whether a swapchain is in use in another thread

Fixes: 8ade5588e39 ("zink: add kopper api")

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

2 years agozink: use separate pointer for swapchain presents
Mike Blumenkrantz [Wed, 8 Jun 2022 19:56:47 +0000 (15:56 -0400)]
zink: use separate pointer for swapchain presents

this ensures that the same pointer is being accessed from the present
thread as was intended when the present was queued

Fixes: 8ade5588e39 ("zink: add kopper api")

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

2 years agopanvk: Use common CmdBeginRenderPass
Alyssa Rosenzweig [Thu, 9 Jun 2022 19:23:23 +0000 (15:23 -0400)]
panvk: Use common CmdBeginRenderPass

The runtime already handles this.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16950>

2 years agopanvk: Simplify depth clear preload condition
Alyssa Rosenzweig [Thu, 9 Jun 2022 17:39:37 +0000 (13:39 -0400)]
panvk: Simplify depth clear preload condition

Easier to understand and equivalent in practice.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16950>

2 years agopanvk: Fix stencil clears of combined ZS images
Alyssa Rosenzweig [Thu, 9 Jun 2022 17:34:31 +0000 (13:34 -0400)]
panvk: Fix stencil clears of combined ZS images

If we have a combined Z/S image, the image has depth, so we proceed down the
depth path, which does not set clear.s even though there's *also* a stencil
component. Unify the control flow to fix this.

Fixes (among others):

dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.single_layer.d24_unorm_s8_uint_multiple_subresourcerange

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16950>

2 years agopanvk: Clear Z/S attachments without a shader
Alyssa Rosenzweig [Thu, 9 Jun 2022 15:48:03 +0000 (11:48 -0400)]
panvk: Clear Z/S attachments without a shader

Rather than generating shaders to clear depth and stencil attachments, run the
rasterizer without a shader and configure the depth/stencil hardware to do the
clear. These settings are known to be efficient on Valhall, presumably the
depth/stencil pipeline on Bifrost is similar enough that it is also the
efficient way there. It's certainly much simpler.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Acked-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16950>

2 years agopanvk: Remove unused pushmaps
Alyssa Rosenzweig [Thu, 9 Jun 2022 15:22:03 +0000 (11:22 -0400)]
panvk: Remove unused pushmaps

These were removed in an earlier series containing ae77c207e08 ("panvk: Use push
constants for copy shaders"), but the unused variables hung around.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16950>

2 years agopanvk: Don't specialize clear shaders for RT
Alyssa Rosenzweig [Thu, 9 Jun 2022 15:19:51 +0000 (11:19 -0400)]
panvk: Don't specialize clear shaders for RT

On Bifrost and newer, blend descriptors are decoupled from render target. That
means we can always use a clear shader reading from blend_descriptor_0 and
specify the desired render target in the sole blend descriptor we pass.

Likewise on Bifrost and newer we don't need blend descriptors when we don't
blend, which is the case for the Z/S clears.

This reduces the number of shaders compiled on startup from 468 to 426.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16950>

2 years agoradv: remove remaining unused pCreateInfo pointers
Samuel Pitoiset [Wed, 1 Jun 2022 14:25:59 +0000 (16:25 +0200)]
radv: remove remaining unused pCreateInfo pointers

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16958>

2 years agoradv: update the check to determine if rasterization is enabled
Samuel Pitoiset [Thu, 2 Jun 2022 08:57:16 +0000 (10:57 +0200)]
radv: update the check to determine if rasterization is enabled

Use radv_graphics_pipeline_info instead of pCreateInfo.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16958>

2 years agoradv: update the check to determine if dynamic sample location is needed
Samuel Pitoiset [Thu, 2 Jun 2022 08:43:45 +0000 (10:43 +0200)]
radv: update the check to determine if dynamic sample location is needed

Use radv_graphics_pipeline_info instead of pCreateInfo.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16958>

2 years agoradv: update the check to determine if dynamic discard rectangle is needed
Samuel Pitoiset [Thu, 2 Jun 2022 08:43:05 +0000 (10:43 +0200)]
radv: update the check to determine if dynamic discard rectangle is needed

Use radv_graphics_pipeline_info instead of pCreateInfo.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16958>

2 years agoradv: update radv_is_vrs_enabled() to use radv_graphics_pipeline_info
Samuel Pitoiset [Wed, 1 Jun 2022 14:20:36 +0000 (16:20 +0200)]
radv: update radv_is_vrs_enabled() to use radv_graphics_pipeline_info

pCreateInfo pointers have to be completely replaced for graphics
pipeline library.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16958>

2 years agoradv: remove redundant check when importing vertex input info
Samuel Pitoiset [Wed, 1 Jun 2022 08:30:08 +0000 (10:30 +0200)]
radv: remove redundant check when importing vertex input info

It's already checked by the caller.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16958>

2 years agozink: cap driver inlining using ssa allocation limit
Mike Blumenkrantz [Fri, 10 Jun 2022 16:43:45 +0000 (12:43 -0400)]
zink: cap driver inlining using ssa allocation limit

usually inlining is optimal for cpu drivers since the majority of
time is spent in the shaders, and any amount of reduction to shader code
will be optimal

if, however, the shaders are still really big after inlining, this improvement
will be negated by the insane amount of time spent doing stupid llvm optimizer
passes, so check post-inline size to see whether it exceeds a size threshold

lavapipe release build - 1700% improvement
* spec@arb_tessellation_shader@execution@variable-indexing@tcs-output-array-vec4-index-rd-after-barrier

before: 142.15s user 0.42s system 99% cpu 2:23.14 total

after: 8.60s user 0.07s system 99% cpu 8.677 total

fixes #6647

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

2 years agopanfrost: Disable CRC at <16x16 tile sizes
Alyssa Rosenzweig [Fri, 10 Jun 2022 15:28:09 +0000 (11:28 -0400)]
panfrost: Disable CRC at <16x16 tile sizes

The hardware writes one CRC per (effective) tile, the tile size of the CRC
buffer is the same as the configured effective tile size. However, all our CRC
infrastructure assumes 16x16 tiles. In case CRC is used with smaller tiles,
buffer overflows and incorrect rendering are all possible. Don't use CRC at
smaller tile sizes. Note disabling CRC correctly invalidates any bound CRC
buffers.

Fixes: 2e97d7c8350 ("panfrost: Transaction elimination support")
Closes: #6332
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16983>

2 years agopanfrost: Inline pan_fbd_has_zs_crc_ext
Alyssa Rosenzweig [Fri, 10 Jun 2022 15:43:53 +0000 (11:43 -0400)]
panfrost: Inline pan_fbd_has_zs_crc_ext

It has a single user -- in a section of code that only runs for MFBD GPUs and
that has already decided whether to use CRCs -- so inlining it simplifies its
definition greatly and may avoid redeciding the CRC setting.

[Note for mesa-stable maintainers: This is not a bug fix but is marked for
backport so the next patch applies cleanly.]

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16983>

2 years agozink/ci: update list of expected failures with RADV
Samuel Pitoiset [Fri, 10 Jun 2022 15:07:32 +0000 (17:07 +0200)]
zink/ci: update list of expected failures with RADV

See https://gitlab.freedesktop.org/mesa/mesa/-/issues/6597

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16974>

2 years agotu: Enable VK_KHR_swapchain_mutable_format
Connor Abbott [Thu, 9 Jun 2022 19:37:09 +0000 (21:37 +0200)]
tu: Enable VK_KHR_swapchain_mutable_format

This is already implemented entirely in common code.

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

2 years agopanvk: Return VK_ERROR_INCOMPATIBLE_DRIVER for Midgard
Denis Pauk [Fri, 10 Jun 2022 20:04:10 +0000 (23:04 +0300)]
panvk: Return VK_ERROR_INCOMPATIBLE_DRIVER for Midgard

Midgard is unsupported after merge of !16915

Signed-off-by: Denis Pauk <pauk.denis@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16991>

2 years agopanfrost: Allow pixels using discard to be killed
Alyssa Rosenzweig [Fri, 10 Jun 2022 16:09:13 +0000 (12:09 -0400)]
panfrost: Allow pixels using discard to be killed

info.fs.sidefx considers discard() to be a side effect. That definition is...
dubious at best. It certainly isn't the definition needed for forward pixel
kill. The only reason pixels couldn't be killed by FPK is if the shader has side
effects in the sense of writing to memory. Use that more precise condition so
FPK works more often.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Closes: #5607
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16984>

2 years agointel/fs/xehp+: Emit scheduling fence for all NIR barriers on platforms with LSC.
Francisco Jerez [Wed, 27 Apr 2022 06:20:21 +0000 (09:20 +0300)]
intel/fs/xehp+: Emit scheduling fence for all NIR barriers on platforms with LSC.

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

2 years agointel/fs: setup SEND message descriptor from nir scope
Tapani Pälli [Tue, 5 Apr 2022 04:59:51 +0000 (07:59 +0300)]
intel/fs: setup SEND message descriptor from nir scope

This fixes many tests in following groups on DG2:
   dEQP-VK.memory_model.*
   dEQP-VK.fragment_shader_interlock.*

v2: use memory scope and setup descriptor also
    for barriers without defined scope (Curro),
    use local scope and flush type none with
    NIR_SCOPE_NONE scope, cleanups (Lionel)

v3: use LSC_FENCE_THREADGROUP for NIR_SCOPE_WORKGROUP,
    remove default case (Curro), use eviction if scope
    was not defined, use LSC_FENCE_GPU scope for vertex
    stage

v4: use LSC_FENCE_TILE independent of stage for device
    scope (Curro)

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15743>

2 years agozink: more lavapipe glcts fails
Mike Blumenkrantz [Sat, 11 Jun 2022 21:02:48 +0000 (17:02 -0400)]
zink: more lavapipe glcts fails

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

2 years agozink: warn on missing customBorderColorWithoutFormat
Mike Blumenkrantz [Fri, 10 Jun 2022 20:47:26 +0000 (16:47 -0400)]
zink: warn on missing customBorderColorWithoutFormat

this is required

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

2 years agodocs: show and link to the new macOS CI
Eric Engestrom [Thu, 9 Jun 2022 09:47:00 +0000 (10:47 +0100)]
docs: show and link to the new macOS CI

Show the badge with the status of the new macOS CI introduced in
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16875,
and make it a link to the build details.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Yurii Kolesnykov <root@yurikoles.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16941>

2 years agoac/gpu_info: clamp gart_size_kb and vram_size_kb to fix buggy kernel driver
Marek Olšák [Thu, 9 Jun 2022 18:06:12 +0000 (14:06 -0400)]
ac/gpu_info: clamp gart_size_kb and vram_size_kb to fix buggy kernel driver

amdgpu returns 12 TB of GTT on Kaveri, which resulted in 0 KB of GTT
after the conversion to uint32_t, which caused us to report 0 as the UBO
size, which disabled UBOs and downgraded the driver to OpenGL 3.0.

Fixes: aee8ee17a50 - radeonsi: change max TBO/SSBO sizes again and rework max alloc size
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6642

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

2 years agoac,radeonsi: don't export null from PS if it has no effect on gfx10+
Marek Olšák [Sun, 15 May 2022 06:17:20 +0000 (02:17 -0400)]
ac,radeonsi: don't export null from PS if it has no effect on gfx10+

We just need to pass the uses_discard flag to the epilog.

The hw skips the export anyway. This will hang if SPI registers declare
an output format or KILL_ENABLE is set because those cases require
an export with done=1.

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

2 years agoradeonsi: allocate only 1 GDS OA counter for gfx10 NGG streamout
Marek Olšák [Thu, 9 Jun 2022 13:43:12 +0000 (09:43 -0400)]
radeonsi: allocate only 1 GDS OA counter for gfx10 NGG streamout

It works with just one.

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

2 years agoradeonsi: allocate GDS only once per process
Marek Olšák [Wed, 8 Jun 2022 17:42:33 +0000 (13:42 -0400)]
radeonsi: allocate GDS only once per process

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

2 years agowinsys/amdgpu: add a kernel GDS management workaround retrying on -ENOMEM
Marek Olšák [Mon, 6 Jun 2022 11:26:34 +0000 (07:26 -0400)]
winsys/amdgpu: add a kernel GDS management workaround retrying on -ENOMEM

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

2 years agoradeonsi: remove streamout code from shaders if no streamout buffers are bound
Marek Olšák [Mon, 6 Jun 2022 09:27:14 +0000 (05:27 -0400)]
radeonsi: remove streamout code from shaders if no streamout buffers are bound

This is an optimization using asynchronous shader compilation.

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

2 years agoradeonsi: fix NGG streamout hang by allocating GDS in the right place
Marek Olšák [Mon, 6 Jun 2022 09:11:56 +0000 (05:11 -0400)]
radeonsi: fix NGG streamout hang by allocating GDS in the right place

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

2 years agoradeonsi: inline gfx10_emit_streamout_begin/end
Marek Olšák [Fri, 3 Jun 2022 23:45:31 +0000 (19:45 -0400)]
radeonsi: inline gfx10_emit_streamout_begin/end

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

2 years agoradeonsi: unconditionally enable the streamout overflow query with NGG
Marek Olšák [Sat, 4 Jun 2022 00:16:05 +0000 (20:16 -0400)]
radeonsi: unconditionally enable the streamout overflow query with NGG

It fails some tests, but we need it for gfx11.

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

2 years agoradeonsi: fix a crash in gfx10_sh_query_get_result_resource
Marek Olšák [Fri, 3 Jun 2022 21:38:09 +0000 (17:38 -0400)]
radeonsi: fix a crash in gfx10_sh_query_get_result_resource

If tmp_buffer (in ssbo[1]) is NULL, setting the writable bit causes
the called function to access the NULL buffer.

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

2 years agoradeonsi: fix an NGG streamout hang with monolithic shaders
Marek Olšák [Sun, 5 Jun 2022 10:00:22 +0000 (06:00 -0400)]
radeonsi: fix an NGG streamout hang with monolithic shaders

ac_llvm_add_target_dep_function_attr has no effect if the function is
inlined.

amdgpu-gds-size determines m0 for ds_sub_u32 gds, which hangs if it's 0.

This helps both gfx10 and gfx11, though it will only be used by gfx11
after we enable streamout.

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

2 years agoradeonsi: rework how vs_state_bits is set and unpacked
Marek Olšák [Thu, 9 Jun 2022 13:41:52 +0000 (09:41 -0400)]
radeonsi: rework how vs_state_bits is set and unpacked

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

2 years agoradeonsi: move GS_STATE bits to the end to make space at the beginning
Marek Olšák [Mon, 6 Jun 2022 08:47:56 +0000 (04:47 -0400)]
radeonsi: move GS_STATE bits to the end to make space at the beginning

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

2 years agoradeonsi: rename and regroup VS_STATE definitions
Marek Olšák [Mon, 6 Jun 2022 08:35:40 +0000 (04:35 -0400)]
radeonsi: rename and regroup VS_STATE definitions

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

2 years agoradeonsi: rework how VS_STATE_BITS are set for VS, TES, and GS
Marek Olšák [Mon, 6 Jun 2022 08:12:48 +0000 (04:12 -0400)]
radeonsi: rework how VS_STATE_BITS are set for VS, TES, and GS

We need more GS/NGG bits, so we need to add current_gs_state for that.
This simplifies the logic in the draw code.

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

2 years agoradeonsi: simplify how pipeline statistic offsets are computed
Marek Olšák [Thu, 2 Jun 2022 21:14:40 +0000 (17:14 -0400)]
radeonsi: simplify how pipeline statistic offsets are computed

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

2 years agoradeonsi: add BREAK_BATCH at the beginning of IBs
Marek Olšák [Thu, 2 Jun 2022 21:18:43 +0000 (17:18 -0400)]
radeonsi: add BREAK_BATCH at the beginning of IBs

to fix possible issues if the previous IB comes from a different app

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

2 years agoradeonsi: set INTERPOLATE_COMP_Z to 0 to work around an EQAA bug
Marek Olšák [Tue, 24 May 2022 15:07:04 +0000 (11:07 -0400)]
radeonsi: set INTERPOLATE_COMP_Z to 0 to work around an EQAA bug

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

2 years agoradeonsi: determine DB_SHADER_CONTROL in si_shader_ps
Marek Olšák [Thu, 9 Jun 2022 14:21:11 +0000 (10:21 -0400)]
radeonsi: determine DB_SHADER_CONTROL in si_shader_ps

This is cleaner and more flexible.

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

2 years agoradeonsi: restructure PS no-export fixups
Marek Olšák [Mon, 16 May 2022 13:49:27 +0000 (09:49 -0400)]
radeonsi: restructure PS no-export fixups

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

2 years agoradeonsi: fix polygon stippling without color and Z outputs (v2)
Marek Olšák [Sun, 15 May 2022 06:12:18 +0000 (02:12 -0400)]
radeonsi: fix polygon stippling without color and Z outputs (v2)

We need to handle the fact that it kills pixels.

v2: also update si_update_ps_inputs_read_or_disabled

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

2 years agoradeonsi: remove unused dword from wait_mem_scratch
Marek Olšák [Sun, 5 Jun 2022 10:13:52 +0000 (06:13 -0400)]
radeonsi: remove unused dword from wait_mem_scratch

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

2 years agoradeonsi: fix uninitialized wait_mem_scratch_tmz
Marek Olšák [Sun, 5 Jun 2022 10:15:53 +0000 (06:15 -0400)]
radeonsi: fix uninitialized wait_mem_scratch_tmz

The initialization was dead code because it's allocated later.

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

2 years agoradeonsi: don't use info.gs.invocations if it's not GS
Marek Olšák [Sun, 5 Jun 2022 10:57:43 +0000 (06:57 -0400)]
radeonsi: don't use info.gs.invocations if it's not GS

It's a union, which makes gs.invocations undefined for VS and TES.

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

2 years agoradeonsi: print LDS size in bytes
Marek Olšák [Mon, 6 Jun 2022 06:46:54 +0000 (02:46 -0400)]
radeonsi: print LDS size in bytes

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

2 years agowinsys/amdgpu: use AMDGPU_IB_FLAG_PREAMBLE for the CS preamble on gfx10+
Marek Olšák [Sun, 15 May 2022 02:16:16 +0000 (22:16 -0400)]
winsys/amdgpu: use AMDGPU_IB_FLAG_PREAMBLE for the CS preamble on gfx10+

This skips the preamble for following IBs if the queue receives IBs from
the same context back-to-back. This eliminates VGT_FLUSH (for tess and
legacy GS) and PS_PARTIAL_FLUSH (for gfx11) in those cases if the preamble
contains them.

v2: only use this on gfx10+ due to stability issues on Stoney and limited
    testing

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

2 years agoradv: Move some rt intrinsics to the top
Konstantin Seurer [Mon, 6 Jun 2022 15:58:29 +0000 (17:58 +0200)]
radv: Move some rt intrinsics to the top

We need to move tr intrinsics to the top of the
shader that might be overwritten by
nir_intrinsic_rt_trace_ray.

Fixes the Khronos reflection sample.

Signed-off-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16889>

2 years agodzn: enable binding_model tests
Erik Faye-Lund [Fri, 3 Jun 2022 12:29:30 +0000 (14:29 +0200)]
dzn: enable binding_model tests

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16904>

2 years agomicrosoft/spirv_to_dxil: lower cube-images to 2d arrays
Erik Faye-Lund [Fri, 10 Jun 2022 06:35:40 +0000 (08:35 +0200)]
microsoft/spirv_to_dxil: lower cube-images to 2d arrays

textureLoad() doesn't work on cube images. We need to lower cube
images to 2D arrays.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16904>

2 years agomicrosoft/compiler: make sampler-lowering optional
Erik Faye-Lund [Wed, 8 Jun 2022 14:03:37 +0000 (16:03 +0200)]
microsoft/compiler: make sampler-lowering optional

We don't want this in DZN, so let's make it optional.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16904>

2 years agomicrosoft/compiler: mark image-functions as such
Erik Faye-Lund [Wed, 8 Jun 2022 13:45:57 +0000 (15:45 +0200)]
microsoft/compiler: mark image-functions as such

These functions only deal with images, so let's make that clear.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16904>

2 years agod3d12: move cubemap-lowering to common-code
Erik Faye-Lund [Wed, 8 Jun 2022 13:53:44 +0000 (15:53 +0200)]
d3d12: move cubemap-lowering to common-code

We're going to want to do part of this in DZN as well.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16904>