platform/upstream/mesa.git
2 years agoci: disable intel-clc on fedora
Lionel Landwerlin [Thu, 22 Sep 2022 10:13:42 +0000 (13:13 +0300)]
ci: disable intel-clc on fedora

Would require Fedora 35.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

2 years agoci: add python3-ply to debian/fedora images
Lionel Landwerlin [Thu, 22 Sep 2022 09:26:05 +0000 (12:26 +0300)]
ci: add python3-ply to debian/fedora images

This is needed by Anv to parse GRL (meta opencl kernels).

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18788>

2 years agogallivm/nir: bitcast when non-float ptr type.
Dave Airlie [Tue, 27 Sep 2022 05:26:42 +0000 (15:26 +1000)]
gallivm/nir: bitcast when non-float ptr type.

This matters more when opaque pointers are used.

Fixes: 203920d4c693 ("gallivm: add atomic 32-bit float support")

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835>

2 years agogallivm/nir: fix fmin/fmax translation
Dave Airlie [Mon, 26 Sep 2022 19:17:39 +0000 (05:17 +1000)]
gallivm/nir: fix fmin/fmax translation

Fixes: 203920d4c693 ("gallivm: add atomic 32-bit float support")

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835>

2 years agolavapipe: add fmin/fmax to image lowering.
Dave Airlie [Mon, 26 Sep 2022 19:15:26 +0000 (05:15 +1000)]
lavapipe: add fmin/fmax to image lowering.

Fixes: 31695f81c925 ("lavapipe: export VK_KHR_shader_atomic_float")

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18835>

2 years agozink: also lower 64bit function temps
Mike Blumenkrantz [Wed, 21 Sep 2022 16:21:28 +0000 (12:21 -0400)]
zink: also lower 64bit function temps

now that these aren't always lowered from indirects,
64bit function temp arrays may exist in shaders, and they need to use
all the same rewrite machinery

fixes #7310

SoroushIMG <soroush.kashani@imgtec.com>

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

2 years agozink: split up lower_64bit_vars pass
Mike Blumenkrantz [Wed, 21 Sep 2022 16:20:56 +0000 (12:20 -0400)]
zink: split up lower_64bit_vars pass

the component functions will be reused; no functional changes

SoroushIMG <soroush.kashani@imgtec.com>

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

2 years agozink: always run optimize_nir after lower_64bit_vars
Mike Blumenkrantz [Wed, 21 Sep 2022 16:19:24 +0000 (12:19 -0400)]
zink: always run optimize_nir after lower_64bit_vars

it's otherwise possible (and likely) that optimizations won't
happen since there's no shader key data active

Fixes: 5b2f850425e ("zink: rewrite 64bit shader i/o as 32bit")

SoroushIMG <soroush.kashani@imgtec.com>

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

2 years agozink: don't flatten 64bit arrays during rewrite
Mike Blumenkrantz [Wed, 21 Sep 2022 16:18:26 +0000 (12:18 -0400)]
zink: don't flatten 64bit arrays during rewrite

dunno what I was thinking here

Fixes: 5b2f850425e ("zink: rewrite 64bit shader i/o as 32bit")

SoroushIMG <soroush.kashani@imgtec.com>

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

2 years agonir/opt_undef: add a pass to clean up 64bit undefs
Mike Blumenkrantz [Wed, 21 Sep 2022 13:49:11 +0000 (09:49 -0400)]
nir/opt_undef: add a pass to clean up 64bit undefs

somehow 64bit lowering creates patterns like

vec1 64 ssa_1 = undefined
ssa_2 = unpack_64_2x32_split_x ssa_1

and then the 64bit value is never otherwise used. for this case, rewriting
the unpack to just be a 32bit undef allows the 64bit undef to be optimized
out, avoiding spec violations

fixes #6945

SoroushIMG <soroush.kashani@imgtec.com>

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

2 years agorusticl/device: fix custom device detection
Karol Herbst [Sun, 25 Sep 2022 11:43:13 +0000 (13:43 +0200)]
rusticl/device: fix custom device detection

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18809>

2 years agozink: always set VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT sometimes
Mike Blumenkrantz [Thu, 22 Sep 2022 17:27:14 +0000 (13:27 -0400)]
zink: always set VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT sometimes

some drivers (mostly desktop) are known to ignore this pipeline flag,
thus it can be set unconditionally in pipeline state to deduplicate
pipeline variants without affecting performance

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

2 years agozink: use feedback loop layout to correctly handle implicit feedback loops
Mike Blumenkrantz [Thu, 22 Sep 2022 17:02:17 +0000 (13:02 -0400)]
zink: use feedback loop layout to correctly handle implicit feedback loops

an implicit feedback loop occurs when an app happens to bind the same image
as both a framebuffer attachment and a sampler for the same draw

an explicit feedback loop occurs when an app uses fbfetch to read data back
from the framebuffer using input attachments

fbfetch is already handled, but implicit feedback loops require more work:
* detecting them happens on-the-fly
* pipeline variants are required

this handles implicit feedback loops by detecting them at draw time during
barrier updates and then flagging pipeline state change to trigger variant creation.
the bits are then unset when the framebuffer/sampler binds are removed

fixes #7309

fixes (tu):
KHR-GL46.texture_barrier.disjoint-texels
KHR-GL46.texture_barrier.overlapping-texels
KHR-GL46.texture_barrier.same-texel-rw-multipass
KHR-GL46.texture_barrier_ARB.disjoint-texels
KHR-GL46.texture_barrier_ARB.overlapping-texels
KHR-GL46.texture_barrier_ARB.same-texel-rw-multipass

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

2 years agozink: add a mask of fb attachment idx for resources
Mike Blumenkrantz [Thu, 22 Sep 2022 15:33:20 +0000 (11:33 -0400)]
zink: add a mask of fb attachment idx for resources

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

2 years agozink: reorder zink_resource a little
Mike Blumenkrantz [Thu, 22 Sep 2022 15:31:09 +0000 (11:31 -0400)]
zink: reorder zink_resource a little

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

2 years agozink: rename fb_binds -> fb_bind_count
Mike Blumenkrantz [Thu, 22 Sep 2022 15:28:51 +0000 (11:28 -0400)]
zink: rename fb_binds -> fb_bind_count

this is more accurate

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

2 years agozink: remove zink_context::new_swapchain
Mike Blumenkrantz [Thu, 22 Sep 2022 15:16:14 +0000 (11:16 -0400)]
zink: remove zink_context::new_swapchain

this was my (feeble) attempt at tracking validity for swapchain images,
but it doesn't actually work right, and zink_resource::valid is better

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

2 years agozink: enable VK_ATTACHMENT_LOAD_OP_DONT_CARE for zs in renderpasses
Mike Blumenkrantz [Wed, 21 Sep 2022 23:14:02 +0000 (19:14 -0400)]
zink: enable VK_ATTACHMENT_LOAD_OP_DONT_CARE for zs in renderpasses

dynamic render path already handled this

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

2 years agomesa: set normalized_coords for bindless texture buffer samplers
Mike Blumenkrantz [Tue, 27 Sep 2022 15:58:52 +0000 (11:58 -0400)]
mesa: set normalized_coords for bindless texture buffer samplers

this isn't "used", but it's the default

cc: mesa-stable

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18845>

2 years agoegl: Remove a bogus restriction from eglMakeCurrent
Adam Jackson [Thu, 22 Sep 2022 19:15:14 +0000 (15:15 -0400)]
egl: Remove a bogus restriction from eglMakeCurrent

The comment here is from the EGL_MESA_configless_context era, and maybe
that was true, but EGL_KHR_no_config_context has no such restriction.
The only restriction is that both surfaces be compatible with the
context, but a no-config context is defined to be compatible with any
surface.

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

2 years agoegl/dri2: Fix a weird conditional in dri2_make_current
Adam Jackson [Tue, 20 Sep 2022 21:50:42 +0000 (17:50 -0400)]
egl/dri2: Fix a weird conditional in dri2_make_current

It's not valid to get here with no context but with real surfaces.

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

2 years agoegl: Factor some common terminate cleanup up to common code
Adam Jackson [Tue, 20 Sep 2022 18:55:37 +0000 (14:55 -0400)]
egl: Factor some common terminate cleanup up to common code

It's a little difficult to see from the diff, but this is effectively
the same calling sequence as before, and more importantly it means the
backend only cleans up backend state rather than needing to call up to
the core.

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

2 years agoegl: Formatting fix
Adam Jackson [Tue, 20 Sep 2022 21:51:42 +0000 (17:51 -0400)]
egl: Formatting fix

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

2 years agomesa/fbo: Don't force both read/draw bindings to zero
Adam Jackson [Thu, 22 Sep 2022 17:20:18 +0000 (13:20 -0400)]
mesa/fbo: Don't force both read/draw bindings to zero

... when we're only changing one of the two to zero. I could maybe
understand the old behavior here if we really did need both read/draw to
either be both from winsys or both user, but we don't. You can still
get to that half-and-half state even with the old code, you just need to
set whichever of read/draw to 0 that you want first, and then set the
other to the user fbo.

The first code to introduce a read fb to this path was dbfb375805d94,
which was trying to make sure we restored both values passed to
glXMakeCurrentRead when going back to fb 0. The commit message suggests
that "the API" doesn't allow split read/draw, but that seems to have
ignored the #ifdef EXT_framebuffer_object code immediately nearby which
did exactly that.

Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18824>

2 years agoradeonsi/vce: using fixed value for vce 52
Ruijing Dong [Mon, 26 Sep 2022 15:37:32 +0000 (11:37 -0400)]
radeonsi/vce: using fixed value for vce 52

VCE 52 needs some hard-coded values.

Fixed: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7290

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18823>

2 years agorusticl: Fix compilation if stdout and/or stderr aren't symbols
LingMan [Sun, 18 Sep 2022 12:59:25 +0000 (14:59 +0200)]
rusticl: Fix compilation if stdout and/or stderr aren't symbols

ISO C only guarantees that `stdout` and `stderr` are expressions of type `FILE*`. It does not
guarantee that they are symbols which can be bound to. In particular, they are macros on the BSDs,
which bindgen cannot deal with (yet?).
Add our own symbol-defining wrapper.

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

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

2 years agoci/amd: move radeonsi in amd directory
David Heidelberg [Mon, 19 Sep 2022 20:53:08 +0000 (22:53 +0200)]
ci/amd: move radeonsi in amd directory

Deduplicate jobs, make easier to use GL+VK scenarios.

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

2 years agoci/radeonsi: add traces for radeonsi Zork
David Heidelberg [Tue, 2 Aug 2022 22:22:47 +0000 (00:22 +0200)]
ci/radeonsi: add traces for radeonsi Zork

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

2 years agoci/traces: prevent showing wine instalation dialog
David Heidelberg [Mon, 8 Aug 2022 12:00:07 +0000 (14:00 +0200)]
ci/traces: prevent showing wine instalation dialog

Causing piglit timeouts because of an open window instead of running apitrace.

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

2 years agoci: also handle default wine rootfs (for testing)
David Heidelberg [Tue, 13 Sep 2022 15:18:39 +0000 (17:18 +0200)]
ci: also handle default wine rootfs (for testing)

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

2 years agoci/dxvk: fix DXVK 64-bit only wine setup
David Heidelberg [Wed, 14 Sep 2022 19:36:51 +0000 (21:36 +0200)]
ci/dxvk: fix DXVK 64-bit only wine setup

Reported: https://github.com/doitsujin/dxvk/issues/2921

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

2 years agoci/lava: prepare wineprefix for GL and DXVK
David Heidelberg [Thu, 4 Aug 2022 14:02:35 +0000 (16:02 +0200)]
ci/lava: prepare wineprefix for GL and DXVK

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

2 years agoci/lava: add wine and apitrace into amd64 rootfs container
David Heidelberg [Sat, 16 Jul 2022 12:11:16 +0000 (14:11 +0200)]
ci/lava: add wine and apitrace into amd64 rootfs container

Wine is from WineHQ, with stripped i386 part, which we don't use.

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

2 years agoradv: fix handling multiview with GPL
Samuel Pitoiset [Tue, 20 Sep 2022 10:53:11 +0000 (12:53 +0200)]
radv: fix handling multiview with GPL

When multiview is used, the last pre-rasterization stage should export
the layer to the fragment shader. With GPL, the next stage is
implicitly FS.

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

2 years agoradv: fix handling primitive ID and clip/cull distances with GPL
Samuel Pitoiset [Tue, 20 Sep 2022 09:19:13 +0000 (11:19 +0200)]
radv: fix handling primitive ID and clip/cull distances with GPL

When compiling the pre-rasterization stages with GPL, we can't know if
the fragment shader reads the primitive ID or the clip/cull distances
as inputs and we have to export them unconditionally.

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

2 years agoradv: fix handling ViewportIndex with GPL
Samuel Pitoiset [Tue, 20 Sep 2022 09:40:35 +0000 (11:40 +0200)]
radv: fix handling ViewportIndex with GPL

When the fragment shader reads the viewport index as input and the last
pre-rasterization stage doesn't export it, it should be implicitly
zero (ie. first viewport). When the next stage is known, it's already
lowered in NIR, but with GPL we can't because we don't know if the FS
reads it. To fix this use AC_EXP_PARAM_DEFAULT_VAL_000.

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

2 years agoradv: rework multiview lowering in NIR slightly
Samuel Pitoiset [Tue, 20 Sep 2022 10:46:15 +0000 (12:46 +0200)]
radv: rework multiview lowering in NIR slightly

This will be used to export multiview unconditionally with GPL.

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

2 years agov3dv: expose VK_EXT_image_robustness
Iago Toral Quiroga [Fri, 23 Sep 2022 07:10:36 +0000 (09:10 +0200)]
v3dv: expose VK_EXT_image_robustness

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

2 years agobroadcom/compiler: add a lowering for robust image access
Iago Toral Quiroga [Mon, 26 Sep 2022 08:47:19 +0000 (10:47 +0200)]
broadcom/compiler: add a lowering for robust image access

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

2 years agobroadcom/compiler: rename static helpers involved with robust buffer access
Iago Toral Quiroga [Fri, 23 Sep 2022 09:19:34 +0000 (11:19 +0200)]
broadcom/compiler: rename static helpers involved with robust buffer access

To make it explicit that they involve buffers, since we will be adding
robust image access shortly.

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

2 years agobroadcom/compiler: rename v3d_nir_lower_robust_buffer_access.c
Iago Toral Quiroga [Fri, 23 Sep 2022 09:01:45 +0000 (11:01 +0200)]
broadcom/compiler: rename v3d_nir_lower_robust_buffer_access.c

We are going to add code to handle image robustness shortly, so
better rename this to v3d_nir_lower_robust_access.c

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

2 years agodocs: fixup broken rst syntax
Erik Faye-Lund [Sat, 17 Sep 2022 11:09:20 +0000 (13:09 +0200)]
docs: fixup broken rst syntax

Seems I messed this up when converting things, and nobody noticed until
now!

Fixes: d4397c00485 ("docs: use envvar role for envvars")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18641>

2 years agoci/docs: Stick to specific version of python packages
Yonggang Luo [Tue, 27 Sep 2022 02:23:42 +0000 (10:23 +0800)]
ci/docs: Stick to specific version of python packages

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18833>

2 years agomesa/main: don't copy signed rgtc via float
Erik Faye-Lund [Thu, 8 Sep 2022 09:48:49 +0000 (11:48 +0200)]
mesa/main: don't copy signed rgtc via float

There's no good reason to copy via float instead of snorm, so let's take
that shortcut.

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

2 years agomesa/main: fix broken indent
Erik Faye-Lund [Thu, 8 Sep 2022 09:32:17 +0000 (11:32 +0200)]
mesa/main: fix broken indent

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

2 years agonir/loop_analyze: remove cost of redundant selects
Timothy Arceri [Wed, 14 Sep 2022 01:21:00 +0000 (11:21 +1000)]
nir/loop_analyze: remove cost of redundant selects

If we know that a select will be eliminated once the loop is
unrolled than we don't need to count the instruction towards the
cost of the loop.

This change helps 2 loops unroll in an xcom enemy unknown shader
that is loaded full of these redundant selects.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18587>

2 years agonir/loop_analyze: delay instruction cost calculation
Timothy Arceri [Wed, 14 Sep 2022 00:18:05 +0000 (10:18 +1000)]
nir/loop_analyze: delay instruction cost calculation

Here we move the calculation of the instruction cost of the loop
after we have processed other information such as finding the
induction variables. This is useful because we can use this further
information to find instructions that will be eliminated if the
loop was to unroll and therefore give them a cost of 0.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18587>

2 years agorusticl/mem: return errors for OOB accesses
Karol Herbst [Sun, 25 Sep 2022 12:20:59 +0000 (14:20 +0200)]
rusticl/mem: return errors for OOB accesses

There is a little bit more to do, but this at least resolves crashes due
to OOB accesses and/or assertions.

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

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18806>

2 years agomesa: make glPopMatrix a no-op if the matrix hasn't changed
Marek Olšák [Tue, 23 Aug 2022 04:13:37 +0000 (00:13 -0400)]
mesa: make glPopMatrix a no-op if the matrix hasn't changed

This happens a lot with viewperf because glMultMatrixf contains identity
matrices.

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

2 years agomesa: use memcmp instead of floating-point comparisons in glMultMatrixf
Marek Olšák [Tue, 23 Aug 2022 04:12:59 +0000 (00:12 -0400)]
mesa: use memcmp instead of floating-point comparisons in glMultMatrixf

This is faster.

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

2 years agoglthread: skip glMultMatrixf if it's identity
Marek Olšák [Tue, 23 Aug 2022 04:12:09 +0000 (00:12 -0400)]
glthread: skip glMultMatrixf if it's identity

This is common with viewperf and it helps.

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

2 years agoglthread,hud: draw per-frame values and expose the number of batches per frame
Marek Olšák [Tue, 23 Aug 2022 04:09:23 +0000 (00:09 -0400)]
glthread,hud: draw per-frame values and expose the number of batches per frame

This is better because we see the statistics for 1 frame instead of 1 second.

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

2 years agoglthread: use 8-bit GLenum for prim modes where it results in better packing
Marek Olšák [Sun, 21 Aug 2022 21:30:18 +0000 (17:30 -0400)]
glthread: use 8-bit GLenum for prim modes where it results in better packing

This is OK because all modes > 14 are invalid.

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

2 years agoglthread: use GLenum16 for enums, but clamp it to 0xffff to get correct errors
Marek Olšák [Sun, 21 Aug 2022 19:49:53 +0000 (15:49 -0400)]
glthread: use GLenum16 for enums, but clamp it to 0xffff to get correct errors

0xffff is an invalid enum.

This was initially implemented without clamping and then reverted because
of the concern that we would randomly get correct enums and not report
errors if we just dropped the high bits.

This packs calls better in glthread_batch.

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

2 years agomesa: rename GL dispatch initialization functions to make the intent clear
Marek Olšák [Thu, 11 Aug 2022 08:34:00 +0000 (04:34 -0400)]
mesa: rename GL dispatch initialization functions to make the intent clear

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

2 years agomesa: remove deprecated comments
Marek Olšák [Fri, 12 Aug 2022 09:20:31 +0000 (05:20 -0400)]
mesa: remove deprecated comments

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

2 years agoapi_hw_select_init_h.py: simplify the code
Marek Olšák [Thu, 11 Aug 2022 15:04:13 +0000 (11:04 -0400)]
api_hw_select_init_h.py: simplify the code

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

2 years agoglapi: rename 'vtxfmt' to 'beginend' to make it clear
Marek Olšák [Fri, 12 Aug 2022 08:58:14 +0000 (04:58 -0400)]
glapi: rename 'vtxfmt' to 'beginend' to make it clear

These are really just the functions that execute between Begin/End.

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

2 years agomesa: initialize OutsideBeginEnd directly instead of through Exec
Marek Olšák [Thu, 11 Aug 2022 05:26:06 +0000 (01:26 -0400)]
mesa: initialize OutsideBeginEnd directly instead of through Exec

Exec is just a mutable pointer to one of the dispatch tables.
OutsideBeginEnd is what we are actually initializing here. This makes
the original intention clear.

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

2 years agomesa: remove unused function _mesa_get_dispatch
Marek Olšák [Wed, 10 Aug 2022 05:06:40 +0000 (01:06 -0400)]
mesa: remove unused function _mesa_get_dispatch

just use CurrentClientDispatch directly

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

2 years agomesa: don't restore the dispatch at the end of glCallList
Marek Olšák [Wed, 10 Aug 2022 04:56:26 +0000 (00:56 -0400)]
mesa: don't restore the dispatch at the end of glCallList

No places use the glapi dispatch. All places use ctx directly.

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

2 years agovbo: don't call _glapi_set_dispatch for GL_COMPILE_AND_EXECUTE loopback
Marek Olšák [Wed, 10 Aug 2022 04:08:02 +0000 (00:08 -0400)]
vbo: don't call _glapi_set_dispatch for GL_COMPILE_AND_EXECUTE loopback

It uses Exec directly, so this didn't do anything.

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

2 years agomesa: reorder and pack gl_buffer_object
Marek Olšák [Mon, 22 Aug 2022 04:43:36 +0000 (00:43 -0400)]
mesa: reorder and pack gl_buffer_object

The frequently-accessed fields are at the beginning, hoping
we only need to load 1 cache line to get them all.

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

2 years agomesa: remove unused gl_buffer_object::Data and Written
Marek Olšák [Mon, 22 Aug 2022 04:30:00 +0000 (00:30 -0400)]
mesa: remove unused gl_buffer_object::Data and Written

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

2 years agomesa: restructure bind_buffer_object for better performance
Marek Olšák [Mon, 22 Aug 2022 05:40:35 +0000 (01:40 -0400)]
mesa: restructure bind_buffer_object for better performance

The CPU time spent in _mesa_BindBuffer_no_error decresed from 11.4% to 9.2%.
I explain in the code what is happening here because it's not obvious.

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

2 years agomesa: inline _mesa_handle_bind_buffer_gen and correct things
Marek Olšák [Mon, 22 Aug 2022 05:37:36 +0000 (01:37 -0400)]
mesa: inline _mesa_handle_bind_buffer_gen and correct things

Changes:
- the function is inlined, which will help the next commit to improve perf
- use no_error inside the function
- if the function returns true, the buffer is non-NULL, so remove NULL
  checking in callers

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

2 years agomesa: inline _mesa_reference_buffer_object
Marek Olšák [Mon, 22 Aug 2022 05:31:41 +0000 (01:31 -0400)]
mesa: inline _mesa_reference_buffer_object

The last parameter is always a constant expression, so this simplifies it.
This is also required by later commits.

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

2 years agomesa: trivial simplifications in _mesa_reference_buffer_object_
Marek Olšák [Sun, 21 Aug 2022 17:59:41 +0000 (13:59 -0400)]
mesa: trivial simplifications in _mesa_reference_buffer_object_

The else statement conditions were tautological.

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

2 years agomesa: clean up st_indirect_draw_vbo interface and callers
Marek Olšák [Sun, 14 Aug 2022 04:57:11 +0000 (00:57 -0400)]
mesa: clean up st_indirect_draw_vbo interface and callers

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

2 years agomesa: remove unused code using _mesa_prim
Marek Olšák [Sun, 14 Aug 2022 04:35:41 +0000 (00:35 -0400)]
mesa: remove unused code using _mesa_prim

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

2 years agomesa: remove _mesa_draw_gallium_fallback by adapting st_feedback_draw_vbo
Marek Olšák [Sun, 14 Aug 2022 04:21:30 +0000 (00:21 -0400)]
mesa: remove _mesa_draw_gallium_fallback by adapting st_feedback_draw_vbo

This makes st_feedback_draw_vbo implement the DrawGallium.
That's the last users of the fallback functions.

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

2 years agomesa: replace ALLOC_PRIMS with persistently-allocated context arrays
Marek Olšák [Sun, 14 Aug 2022 03:52:46 +0000 (23:52 -0400)]
mesa: replace ALLOC_PRIMS with persistently-allocated context arrays

This is cleaner.

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

2 years agoradv: Build acceleration structures using BVH IR
Friedrich Vock [Sat, 24 Sep 2022 20:10:02 +0000 (22:10 +0200)]
radv: Build acceleration structures using BVH IR

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769>

2 years agoradv: Create pipelines for conversion meta shaders
Friedrich Vock [Fri, 23 Sep 2022 14:02:37 +0000 (16:02 +0200)]
radv: Create pipelines for conversion meta shaders

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769>

2 years agoradv: Add conversion shader for leaf nodes
Friedrich Vock [Wed, 21 Sep 2022 13:09:55 +0000 (15:09 +0200)]
radv: Add conversion shader for leaf nodes

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769>

2 years agoradv: Add conversion shader for internal nodes
Friedrich Vock [Mon, 19 Sep 2022 21:16:10 +0000 (23:16 +0200)]
radv: Add conversion shader for internal nodes

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769>

2 years agoradv: Add BVH IR types
Friedrich Vock [Thu, 22 Sep 2022 20:47:11 +0000 (22:47 +0200)]
radv: Add BVH IR types

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769>

2 years agoradv: Split CmdBuildAccelerationStructuresKHR into different functions
Friedrich Vock [Wed, 21 Sep 2022 14:02:36 +0000 (16:02 +0200)]
radv: Split CmdBuildAccelerationStructuresKHR into different functions

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769>

2 years agoradv: Rename internal node shader to lbvh_internal
Friedrich Vock [Mon, 19 Sep 2022 21:15:31 +0000 (23:15 +0200)]
radv: Rename internal node shader to lbvh_internal

Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18769>

2 years agozink: only emit runtime array for ssbos if present
Mike Blumenkrantz [Wed, 14 Sep 2022 18:17:22 +0000 (14:17 -0400)]
zink: only emit runtime array for ssbos if present

it's impossible to accurately determine whether an op will use the base,
sized array or the unsized array due to dynamic indexing, and thus it's
impossible to not violate spec by emitting both arrays at offset=0 so they
can overlap

so instead, just emit the runtime array and blast all bounds checking in
vk drivers into the void

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

2 years agozink: remove color_write_missing driver workaround
Mike Blumenkrantz [Wed, 14 Sep 2022 12:18:30 +0000 (08:18 -0400)]
zink: remove color_write_missing driver workaround

this is no longer used

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

2 years agozink: allow reordered clear_buffer calls
Mike Blumenkrantz [Fri, 9 Sep 2022 14:42:49 +0000 (10:42 -0400)]
zink: allow reordered clear_buffer calls

rare to hit, but no point in not promoting them when possible

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

2 years agozink: avoid overflow when clamping bufferviews
Mike Blumenkrantz [Wed, 7 Sep 2022 17:21:28 +0000 (13:21 -0400)]
zink: avoid overflow when clamping bufferviews

cc: mesa-stable

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

2 years agozink: name bo variables using bitsize
Mike Blumenkrantz [Thu, 15 Sep 2022 13:58:08 +0000 (09:58 -0400)]
zink: name bo variables using bitsize

debugging++

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

2 years agozink: fix handling for ssbos that are just runtime arrays
Mike Blumenkrantz [Mon, 12 Sep 2022 15:08:20 +0000 (11:08 -0400)]
zink: fix handling for ssbos that are just runtime arrays

this used to correctly calculate runtime array size as zero, but since the
switch to glsl_get_explicit_size(), zero can no longer be returned

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

2 years agozink: fix sparse queue creation
Mike Blumenkrantz [Mon, 19 Sep 2022 14:14:26 +0000 (10:14 -0400)]
zink: fix sparse queue creation

to use an explicit sparse queue, it has to actually be created along with
the device

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

2 years agozink: always unset var->data.explicit_xfb_buffer
Mike Blumenkrantz [Sun, 25 Sep 2022 19:11:04 +0000 (15:11 -0400)]
zink: always unset var->data.explicit_xfb_buffer

ensure that this isn't accidentally triggering for non-xfb shaders

Fixes: 6d40db84c9d ("zink: handle direct xfb output from output variables")

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

2 years agozink: free vertex_state_cache on shutdown
Mike Blumenkrantz [Fri, 23 Sep 2022 13:46:43 +0000 (09:46 -0400)]
zink: free vertex_state_cache on shutdown

cc: mesa-stable

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

2 years agozink: fix some batch tracking leaks
Mike Blumenkrantz [Fri, 23 Sep 2022 13:46:10 +0000 (09:46 -0400)]
zink: fix some batch tracking leaks

not leaking over time, just leaking on shutdown

Fixes: 83c76b8efbf ("zink: rework batch tracking for resources")

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

2 years agozink: add asserts to verify optimal key state
Mike Blumenkrantz [Mon, 26 Sep 2022 17:46:20 +0000 (13:46 -0400)]
zink: add asserts to verify optimal key state

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

2 years agozink: copy optimal key always
Mike Blumenkrantz [Mon, 26 Sep 2022 17:46:10 +0000 (13:46 -0400)]
zink: copy optimal key always

this is going away in the future, but for now it's annoying

Fixes: 7336580408a ("zink: unspaghettify some program update code")

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

2 years agoiris: Ignore aux for copy_region source if there's no unresolved color
Kenneth Graunke [Fri, 23 Sep 2022 05:50:37 +0000 (22:50 -0700)]
iris: Ignore aux for copy_region source if there's no unresolved color

This mirrors the behavior of iris_resource_texture_aux_usage(), which
bypasses the aux metadata when there's no advantage to using it.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18790>

2 years agolavapipe: propagate shader access info across libraries
Mike Blumenkrantz [Mon, 26 Sep 2022 19:22:35 +0000 (15:22 -0400)]
lavapipe: propagate shader access info across libraries

cc: mesa-stable

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

2 years agolavapipe: set writemask for compute shader buffers
Mike Blumenkrantz [Mon, 26 Sep 2022 18:41:31 +0000 (14:41 -0400)]
lavapipe: set writemask for compute shader buffers

I don't know how this wasn't being set?

cc: mesa-stable

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

2 years agod3d12: Replace size_t with uint64_t in d3d12_video_encoder definitions for cross...
Sil Vilerino [Mon, 26 Sep 2022 11:59:11 +0000 (07:59 -0400)]
d3d12: Replace size_t with uint64_t in d3d12_video_encoder definitions for cross-plat compatibility

Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18821>

2 years agozink: unspaghettify some program update code
Mike Blumenkrantz [Tue, 6 Sep 2022 16:35:43 +0000 (12:35 -0400)]
zink: unspaghettify some program update code

the initial implementation of optimal_keys was added inline, but really
it's an entirely different codepath. by separating these out, it makes the
code more readable, and it also allows for slightly better optimization of
of the optimal_keys codepath

~4-5% improvement for drawoverhead -test 7

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

2 years agozink: be even more granular with optimal_key program updates
Mike Blumenkrantz [Fri, 2 Sep 2022 15:13:44 +0000 (11:13 -0400)]
zink: be even more granular with optimal_key program updates

since the bits of each key are easily and efficiently comparable,
the draw-time updating here can be made extremely granular to
update exactly the stages that have changed since the last
time the program was used, further reducing overhead instead of
updating every possible key value

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

2 years agozink: simplify bit tracking in zink_gfx_program_update()
Mike Blumenkrantz [Fri, 2 Sep 2022 15:08:46 +0000 (11:08 -0400)]
zink: simplify bit tracking in zink_gfx_program_update()

much nicer now that gfx dirty bits are isolated

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

2 years agozink: split dirty_shader_stages for gfx and compute
Mike Blumenkrantz [Fri, 2 Sep 2022 15:07:34 +0000 (11:07 -0400)]
zink: split dirty_shader_stages for gfx and compute

this simplifies/clarifies a lot of related code

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

2 years agozink: use optimal_keys to massively reduce size of pipeline cache comparisons
Mike Blumenkrantz [Thu, 1 Sep 2022 20:52:27 +0000 (16:52 -0400)]
zink: use optimal_keys to massively reduce size of pipeline cache comparisons

since the entire pipeline module key is a uint32_t, this value can be used
for comparisons instead of comparing every shader module

ideally in the future more drivers will support the required features for
optimal_keys, allowing the other variant functions to be deleted

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