platform/upstream/mesa.git
19 months agoac/llvm: remove AC_FUNC_ATTR_INACCESSIBLE_MEM_ONLY because LLVM 16 removed it
Marek Olšák [Sun, 4 Dec 2022 06:33:33 +0000 (01:33 -0500)]
ac/llvm: remove AC_FUNC_ATTR_INACCESSIBLE_MEM_ONLY because LLVM 16 removed it

We didn't use it reasonably anyway.

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

19 months agozink: add driver-workaround for missing gl_point_size
Igor Torrente [Tue, 29 Nov 2022 13:50:56 +0000 (10:50 -0300)]
zink: add driver-workaround for missing gl_point_size

Add code to support gl_point lowering.

In this commit the target of this lowering will be only the
imagination proprietary driver.

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

19 months agozink: rename `zink_set_line_stipple_keys`
Igor Torrente [Tue, 29 Nov 2022 14:40:50 +0000 (11:40 -0300)]
zink: rename `zink_set_line_stipple_keys`

This function will be used by another primitive emulation and
a more generic name will be needed.

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

19 months agozink: add gl_point lowering pass
Igor Torrente [Thu, 1 Dec 2022 12:41:48 +0000 (09:41 -0300)]
zink: add gl_point lowering pass

This lowering pass is intended for hardwares/drivers that can't honor
the gl_PointSize when GL_PROGRAM_POINT_SIZE is enabled.

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

19 months agollvmpipe: Faithfully honour pipe_rasterizer_state::rasterizer_discard flag.
Jose Fonseca [Mon, 5 Dec 2022 10:29:28 +0000 (10:29 +0000)]
llvmpipe: Faithfully honour pipe_rasterizer_state::rasterizer_discard flag.

D3D10 established that rasterization should be discarded when a null PS was
bound, and depth/stencil state was disabled, and llvmpipe followed those
semantics.  Nowadays all APIs have explicit rasterization discard flag,
and so does Gallium, so it's better for llvmpipe to faithfully follow
that flag, and trust the state tracker to follow the right semantics.

Second guessing pipe_rasterizer_state::rasterizer_discard actually
causes problems, specially when no depth-stencil surface is bound, as
D3D10 mandates rasterization should still happen, yet among all the
translation layers it often happens depth-stencil enablement is
optimized away when no depth-stencil is bound, which in turn was causing
llvmpipe to disable rasterization when it shouldn't.

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

19 months agonir: Recognize empty shaders in nir_tgsi_scan_shader().
Jose Fonseca [Mon, 5 Dec 2022 10:28:15 +0000 (10:28 +0000)]
nir: Recognize empty shaders in nir_tgsi_scan_shader().

When a null PS is bound, the
pipe_query_data_pipeline_statistics::ps_invocations counter should not
be incremented.

However llvmpipe can't cope with a null PS bound, requiring the state
tracker to bind an empty pixel shader instead.  llvmpipe infers empty
TGSI pixel shaders by looking tgsi_shader_info::num_instructions, as an
empty shader should have a single END instruction, but this logic wasn't
working for NIR shaders.

I mulled over the possibility of making llvmpipe handle null pixel
shaders.  Spreading null checks everywhere would be invasive and error
prone, but it would be quite simple if llvmpipe simply created a dummy
PS internally, to be used as a replacement whenever a null PS was bound.
That said, I'm not sure if other gallium drivers can cope with a null PS
neither, and if nought, might as well keep using an empty PS in lavapipe
state tracker.  An any rate, this change makes sense on its own.

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

19 months agozink: do not lower gs-intrinscs, take two
Erik Faye-Lund [Tue, 6 Dec 2022 07:52:44 +0000 (08:52 +0100)]
zink: do not lower gs-intrinscs, take two

Whoops, I missed a spot!

Fixes: ad26d29adcc ("zink: do not lower gs-intrinsics")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20177>

19 months agoradv: use LATE_Z for depth/stencil attachments used in feedback loops
Samuel Pitoiset [Mon, 14 Nov 2022 14:33:48 +0000 (15:33 +0100)]
radv: use LATE_Z for depth/stencil attachments used in feedback loops

To make sure shader invocations read the correct values.

Fixes dEQP-VK.rasterization.rasterization_order_attachment_access.*.samples_*.multi_draw_barriers

Cc: 22.3 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19728>

19 months agoradv: apply register changes for SQTT on GFX11
Samuel Pitoiset [Thu, 1 Dec 2022 07:51:43 +0000 (08:51 +0100)]
radv: apply register changes for SQTT on GFX11

Based on the register db, most of them moved.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20089>

19 months agozink: do not lower gs-intrinsics
Erik Faye-Lund [Mon, 5 Dec 2022 14:25:55 +0000 (15:25 +0100)]
zink: do not lower gs-intrinsics

We don't use the counters for anything useful, so let's drop this
lowering pass.

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

19 months agonir: fix nir_link_varying_precision
Chia-I Wu [Thu, 1 Dec 2022 19:17:04 +0000 (11:17 -0800)]
nir: fix nir_link_varying_precision

link_varyings ignores precisions and can assign the same location to
variables with different precisions.  nir_link_varying_precision should
check location_frac as well.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20113>

19 months agoturnip: fix dynamic logicop state
Chia-I Wu [Fri, 2 Dec 2022 02:34:23 +0000 (18:34 -0800)]
turnip: fix dynamic logicop state

When a pipeline has dynamic logicop state or blend state, we defer lrz
write decision to tu6_calculate_lrz_state.  As such,
tu6_calculate_lrz_state should look at both states when either of them
is dynamic.

Fixes dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.21 on
angle, which uses dynamic logicop state and static blend state with
blending enabled.

Fixes: c8c7154c2ec ("tu: Implement extendedDynamicState3ColorBlendEnable")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20136>

19 months agoanv: Don't ambiguate for undefined layouts on TGL+
Nanley Chery [Wed, 30 Nov 2022 23:02:14 +0000 (15:02 -0800)]
anv: Don't ambiguate for undefined layouts on TGL+

For Tiger Lake and onward, we generally don't need to ambiguate the CCS
before accessing it. This is safe for two reasons:

- Tiger Lake and onward treat all CCS values as legal.
- We enable compression on all writable image layouts. The CCS will
  receive all writes and will therefore always be valid.

When dealing with modifiers, we continue to allow ambiguates in some
instances.

Before this patch, I found ~19.5k ambiguates in Wolfenstein:
Youngblood's Riverside benchmark (note that this includes manually
entering the benchmark and exiting the app). With this patch, the number
of ambiguates goes down to zero.

Improves performance of Fallout 4 at 1080p/High settings on Arc A380 by
around 22%.

Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20118>

19 months agoanv: Move aux vars up in transition_color_buffer
Nanley Chery [Wed, 30 Nov 2022 23:57:16 +0000 (15:57 -0800)]
anv: Move aux vars up in transition_color_buffer

I'd like to reuse one of them for an assert.

Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20118>

19 months agointel/dev: Add a has_illegal_ccs_values flag
Nanley Chery [Wed, 30 Nov 2022 22:47:47 +0000 (14:47 -0800)]
intel/dev: Add a has_illegal_ccs_values flag

Whether or not CCS can be used without initialization depends on the
platform:

- On gfx7-8, each CCS element is 1-bit and encodes "fast-cleared" or
  "pass-through". So, those platforms have no illegal values.

- On gfx9-11, each CCS element is 2-bits and some bit combinations
  are invalid.

- On gfx12+, each CCS element is 4-bits but they have no truly illegal
  values. Unused encodings are interpreted as "pass-through".

Refer to the "MCS/CCS Buffers for Render Target(s)" sections of the
PRMs for more info.

Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20118>

19 months agoanv: Use specific flush reasons for CCS operations
Nanley Chery [Wed, 30 Nov 2022 21:50:57 +0000 (13:50 -0800)]
anv: Use specific flush reasons for CCS operations

When INTEL_DEBUG=pc is set and a CCS operation is being performed, the
driver reports that flushes are happing before and after the operation.
It also reports that the operation is a fast clear, but that's not
always the case. We could be resolving for example.

Reporting the specific operation can help avoid confusion.

Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20118>

19 months agointel: add missing restriction on fragment simd dispatch
Lionel Landwerlin [Mon, 5 Dec 2022 18:27:59 +0000 (20:27 +0200)]
intel: add missing restriction on fragment simd dispatch

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7755
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Tested-by: Mark Janes <markjanes@swizzler.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20169>

19 months agointel: factor out dispatch PS enabling logic
Lionel Landwerlin [Mon, 5 Dec 2022 17:26:40 +0000 (19:26 +0200)]
intel: factor out dispatch PS enabling logic

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Tested-by: Mark Janes <markjanes@swizzler.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20169>

19 months agoci/i915: Update xfails.
Emma Anholt [Mon, 5 Dec 2022 20:20:06 +0000 (12:20 -0800)]
ci/i915: Update xfails.

Some things have drifted since we were last green.

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

19 months agoi915: Fix probing regression.
Emma Anholt [Mon, 5 Dec 2022 19:18:55 +0000 (11:18 -0800)]
i915: Fix probing regression.

The device id was incorrectly getting passed as a pointer-to-pointer, and
also assert's expression doesn't get called on release builds.

Fixes: dfd20f002f38 ("intel: Add and use intel_gem_get_param()")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20166>

19 months agoegl+glx: Always support no_error contexts.
Emma Anholt [Tue, 29 Nov 2022 20:39:00 +0000 (12:39 -0800)]
egl+glx: Always support no_error contexts.

Since we know we're loading this Mesa build, we know that no_error is
always supported (the renderer query always returned true).

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agoegl: Collapse a bunch of renderer queries into pipe cap queries.
Emma Anholt [Tue, 29 Nov 2022 20:32:29 +0000 (12:32 -0800)]
egl: Collapse a bunch of renderer queries into pipe cap queries.

Now that we can access the pipe screen through the dri_screen, we can skip
some indirection.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agoegl: Pull the API mask directly out of the dri_screen.
Emma Anholt [Tue, 29 Nov 2022 20:15:12 +0000 (12:15 -0800)]
egl: Pull the API mask directly out of the dri_screen.

Now that we know the driver on the other side is the same version of Mesa
as our build, we can just access the screen instead of having accessor
functions.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agodri: Add createContext hook to __DRI_MESA.
Emma Anholt [Tue, 29 Nov 2022 20:04:21 +0000 (12:04 -0800)]
dri: Add createContext hook to __DRI_MESA.

Again, reduces switching on driver type in the loader.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agogallium/dri: Move the backendVtable InitScreen func into __DRI_MESA.
Emma Anholt [Tue, 29 Nov 2022 19:34:34 +0000 (11:34 -0800)]
gallium/dri: Move the backendVtable InitScreen func into __DRI_MESA.

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

19 months agodri: Add createNewScreen into the __DRI_MESA extension.
Emma Anholt [Tue, 29 Nov 2022 18:39:52 +0000 (10:39 -0800)]
dri: Add createNewScreen into the __DRI_MESA extension.

Now the loaders don't have to switch on dri2/dri3/swrast.

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

19 months agogallium/dri: Clarify some "extensions" lists in driCreateNewScreen2.
Emma Anholt [Tue, 29 Nov 2022 18:48:25 +0000 (10:48 -0800)]
gallium/dri: Clarify some "extensions" lists in driCreateNewScreen2.

I was having a hard time keeping track of them all.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agodri: Introduce internal Mesa DRI driver loader extension.
Emma Anholt [Mon, 28 Nov 2022 20:50:59 +0000 (12:50 -0800)]
dri: Introduce internal Mesa DRI driver loader extension.

All DRI loaders in Mesa (EGL, GLX, gbm) now require this ext and that the
driver come from a matching build.  This will let us use Mesa-internal
types and enums across the loader-driver bounary inside of Mesa.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
LOL-YESed-by: Kristian Høgsberg <krh@bitplanet.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agogbm: Refactor screen creation a bit.
Emma Anholt [Tue, 29 Nov 2022 19:16:49 +0000 (11:16 -0800)]
gbm: Refactor screen creation a bit.

A lot of the screen creation path was duplicated between swrast and dri2.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agogbm: Drop redundant extension error checks.
Emma Anholt [Tue, 29 Nov 2022 19:09:05 +0000 (11:09 -0800)]
gbm: Drop redundant extension error checks.

loader_bind_extensions error handling has already made sure these are
present.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agogallium/dri: Use loader_bind_extensions().
Emma Anholt [Tue, 29 Nov 2022 06:25:52 +0000 (22:25 -0800)]
gallium/dri: Use loader_bind_extensions().

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agoegl: Switch to using loader_bind_extensions().
Emma Anholt [Tue, 29 Nov 2022 01:08:04 +0000 (17:08 -0800)]
egl: Switch to using loader_bind_extensions().

Slightly different than our dri2_bind_extensions(), but same idea.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agoglx: Use loader_bind_extensions().
Emma Anholt [Tue, 29 Nov 2022 00:44:28 +0000 (16:44 -0800)]
glx: Use loader_bind_extensions().

This adds more consistent logging on failure and gives us a spot for
version checks.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agoloader: Simplify the extension matching logic.
Emma Anholt [Tue, 29 Nov 2022 00:28:21 +0000 (16:28 -0800)]
loader: Simplify the extension matching logic.

Also, add debug logging for missing optional extensions.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agogbm: Promote dri_bind_extensions() to the loader util library.
Emma Anholt [Tue, 29 Nov 2022 00:21:05 +0000 (16:21 -0800)]
gbm: Promote dri_bind_extensions() to the loader util library.

It's better than EGL's copy of it by having optional ext support in the
match structs, and GLX wishes it had either of the two.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20069>

19 months agoradv: Add missing radeon_check_space() in radv_cmd_buffer_after_draw()
Konstantin Seurer [Sun, 4 Dec 2022 12:47:17 +0000 (13:47 +0100)]
radv: Add missing radeon_check_space() in radv_cmd_buffer_after_draw()

Also adds a missing assert that cdw <= cdw_max.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20149>

19 months agoradv: Use wave32 for ray queries inside compute shaders
Konstantin Seurer [Sat, 3 Dec 2022 15:48:03 +0000 (16:48 +0100)]
radv: Use wave32 for ray queries inside compute shaders

Results in a 6% performance improvement with Quake II RTX.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20143>

19 months agofrontends/va: return proper error for unsupported profile
Boyuan Zhang [Fri, 2 Dec 2022 12:45:13 +0000 (07:45 -0500)]
frontends/va: return proper error for unsupported profile

Return VA_STATUS_ERROR_UNSUPPORTED_PROFILE if given profile is not
supported for both decode and encode.

Return VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT if given profile is
supported (for at lease one of decode or encode), but current given
entrypoint is not supported.

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

19 months agoaco: fix missing uses of MRT output flags
Samuel Pitoiset [Mon, 5 Dec 2022 10:34:40 +0000 (11:34 +0100)]
aco: fix missing uses of MRT output flags

Fixes regressions on GFX6 and the RAGE2 workaround.

Fixes: a297ac10a4e ("radv,aco: stop lowering FS outputs in NIR")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20154>

19 months agopvr: Add empty PDS program
Matt Coster [Fri, 4 Nov 2022 17:25:33 +0000 (17:25 +0000)]
pvr: Add empty PDS program

This is a trivial program to accomplish allocation of local/common
store shared registers, used when no actual program is available or
required.

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20130>

19 months agopvr: Add pvr_pds_compute_shader_program_init()
Matt Coster [Fri, 4 Nov 2022 17:24:01 +0000 (17:24 +0000)]
pvr: Add pvr_pds_compute_shader_program_init()

Some fields are to be initialized to a specific non-zero value if
unused; this inline function takes care of that.

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20130>

19 months agopvr: Use util_dynarray_append_dynarray()
Matt Coster [Thu, 1 Dec 2022 16:59:51 +0000 (16:59 +0000)]
pvr: Use util_dynarray_append_dynarray()

Signed-off-by: Matt Coster <matt.coster@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18904>

19 months agoradv: do not set ZPASS_INCREMENT_DISABLE on GFX11
Samuel Pitoiset [Wed, 30 Nov 2022 17:28:49 +0000 (18:28 +0100)]
radv: do not set ZPASS_INCREMENT_DISABLE on GFX11

This field no longer exists.

Cc: 22.3 mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20090>

19 months agoradv: fix SPI_SHADER_Z_FORMAT for alpha-to-coverage via MRTZ on GFX11
Samuel Pitoiset [Fri, 2 Dec 2022 07:29:35 +0000 (08:29 +0100)]
radv: fix SPI_SHADER_Z_FORMAT for alpha-to-coverage via MRTZ on GFX11

It should select a 32-bit format with alpha.

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

19 months agoradv,aco: stop lowering FS outputs in NIR
Samuel Pitoiset [Fri, 2 Dec 2022 08:24:17 +0000 (09:24 +0100)]
radv,aco: stop lowering FS outputs in NIR

This was a bad idea because:
- it diverges too much with the fragment shader epilog
- it doesn't allow to implement alpha-to-coverage via MRTZ correctly
- it was supposed to be used by LLVM but this never happened

Reverting this back allows us to fix alpha-to-coverage via MRTZ
on GFX11 easily, including for fragment shader epilogs.

fossils-db (NAVI21):
Totals from 20411 (15.13% of 134913) affected shaders:
VGPRs: 972056 -> 971400 (-0.07%); split: -0.08%, +0.01%
CodeSize: 92284804 -> 92295392 (+0.01%); split: -0.05%, +0.06%
MaxWaves: 465010 -> 465166 (+0.03%); split: +0.03%, -0.00%
Instrs: 17034162 -> 17034963 (+0.00%); split: -0.00%, +0.01%
Latency: 252013190 -> 251971764 (-0.02%); split: -0.03%, +0.02%
InvThroughput: 45859625 -> 45842556 (-0.04%); split: -0.04%, +0.01%
VClause: 324627 -> 324629 (+0.00%); split: -0.03%, +0.03%
SClause: 672918 -> 672826 (-0.01%); split: -0.05%, +0.04%
Copies: 1172126 -> 1158152 (-1.19%); split: -1.20%, +0.01%
Branches: 420602 -> 420604 (+0.00%); split: -0.00%, +0.00%
PreSGPRs: 1025441 -> 1025481 (+0.00%)
PreVGPRs: 861787 -> 860650 (-0.13%); split: -0.17%, +0.03%

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

19 months agoaco: fix indexing MRT0 alpha channel for alpha-to-coverage via MRTZ on GFX11
Samuel Pitoiset [Fri, 2 Dec 2022 08:32:47 +0000 (09:32 +0100)]
aco: fix indexing MRT0 alpha channel for alpha-to-coverage via MRTZ on GFX11

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

19 months agoaco: always use 32-bit for exporting alpha-to-coverage via MRTZ on GFX11
Samuel Pitoiset [Fri, 2 Dec 2022 08:20:58 +0000 (09:20 +0100)]
aco: always use 32-bit for exporting alpha-to-coverage via MRTZ on GFX11

16-bit isn't possible. Note that this is currently style broken for
compressed formats because the w channel is never written to.

Ported from RadeonSI ('radeonsi/gfx11: fix alpha-to-coverage with
stencil or samplemask export')

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

19 months agoradv: fix emitting invalid color attachments
Samuel Pitoiset [Fri, 2 Dec 2022 10:39:52 +0000 (11:39 +0100)]
radv: fix emitting invalid color attachments

Note sure how this happened.

Fixes: 97dc28b1776 ("radv: fix configuring COLOR_INVALID on GFX11")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20127>

19 months agor600/sfn: Silence warning for unused parameters in override
Gert Wollny [Fri, 2 Dec 2022 14:34:56 +0000 (15:34 +0100)]
r600/sfn: Silence warning for unused parameters in override

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: Allow more copy-propagation into TEX src
Gert Wollny [Wed, 30 Nov 2022 19:22:17 +0000 (20:22 +0100)]
r600/sfn: Allow more copy-propagation into TEX src

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: use only as many components as needed for tex backend coord
Gert Wollny [Wed, 30 Nov 2022 17:54:00 +0000 (18:54 +0100)]
r600/sfn: use only as many components as needed for tex backend coord

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: drop useless const specifier in return value
Gert Wollny [Wed, 30 Nov 2022 16:46:25 +0000 (17:46 +0100)]
r600/sfn: drop useless const specifier in return value

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: simplify if clauses with empty then branch
Gert Wollny [Wed, 30 Nov 2022 16:06:25 +0000 (17:06 +0100)]
r600/sfn: simplify if clauses with empty then branch

nir_opt_if doesn't catch all the possible cases of empty then branches,
so resolve this on the fly when creating the backend IR.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: legalize image acccess on Cayman
Gert Wollny [Wed, 30 Nov 2022 14:25:35 +0000 (15:25 +0100)]
r600/sfn: legalize image acccess on Cayman

If we access non-existing images Cayman hardware may lock up
and trigger a reset that is not always successful. Therefore,
make sure the images access is legal.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: use three channels only for unary trans opts if possible
Gert Wollny [Tue, 29 Nov 2022 12:36:37 +0000 (13:36 +0100)]
r600/sfn: use three channels only for unary trans opts if possible

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: lower-to-scalar in optimization loop
Gert Wollny [Tue, 29 Nov 2022 09:22:10 +0000 (10:22 +0100)]
r600/sfn: lower-to-scalar in optimization loop

This makes sure that no vector ops are left over

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: Fix scheduling with limited channel availability
Gert Wollny [Mon, 28 Nov 2022 18:02:41 +0000 (19:02 +0100)]
r600/sfn: Fix scheduling with limited channel availability

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor600/sfn: Don't copy propagate using non-allocated dest channel
Gert Wollny [Mon, 28 Nov 2022 18:01:23 +0000 (19:01 +0100)]
r600/sfn: Don't copy propagate using non-allocated dest channel

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20141>

19 months agor300: improve conversion to native swizzles
Pavel Ondračka [Thu, 24 Nov 2022 19:53:18 +0000 (20:53 +0100)]
r300: improve conversion to native swizzles

Don't add extra movs to construct the swizzles, but just split the
instruction into separate channels, if possible. Idea by Filip Gawin.

shader-db for RV370:
total instructions in shared programs: 84632 -> 83565 (-1.26%)
instructions in affected programs: 12613 -> 11546 (-8.46%)
helped: 295
HURT: 8

total temps in shared programs: 12437 -> 12237 (-1.61%)
temps in affected programs: 1807 -> 1607 (-11.07%)
helped: 153
HURT: 20

LOST:   1
GAINED: 19

The HURT instructions and the single lost shaders are some fluctuations
from pair scheduling. The number of instructions before pair scheduling
is always lower or equivalent.

Partial fix for: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6339

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

19 months agor300: doublecheck for free alpha source when coventing to alpha
Pavel Ondračka [Fri, 25 Nov 2022 09:02:32 +0000 (10:02 +0100)]
r300: doublecheck for free alpha source when coventing to alpha

For any instruction that can be reasonably converted to alpha we check
all of its readers to see if the conversion is possible (including check
for at least one free alpha source) at the beginning of pair scheduling.
However, if the reader instruction has multiples sources that could be
converted to alpha and multiple indeed are, than we could run of of the
alpha sources eventually. So recheck just before converting that there
are still some unused sources left.

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

19 months agoradeonsi: fix a regression causing GPU hang with GLCTS using streamout
Marek Olšák [Sun, 4 Dec 2022 07:47:45 +0000 (02:47 -0500)]
radeonsi: fix a regression causing GPU hang with GLCTS using streamout

Move the streamout code into the streamout-only branch. The code must be
guarded by si_shader_uses_streamout(). Using xfb_stride is not enough.

Fixes: 003cbddfee3 - radeonsi: use native shader info when init streamout args

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20147>

19 months agodzn: Don't crash when libd3d12.so can't be found
Jan Alexander Steffens (heftig) [Sun, 4 Dec 2022 00:21:45 +0000 (00:21 +0000)]
dzn: Don't crash when libd3d12.so can't be found

`dzn_instance_create` will call `dzn_instance_destroy` when the d3d12
library fails to load. Just like the issue in `d3d12_screen`, this will
lead to a crash because `d3d12_mod` is NULL.

To fix this, only close the library after if it was actually opened.

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

19 months agod3d12: Don't crash when libd3d12.so can't be found
Jan Alexander Steffens (heftig) [Sun, 4 Dec 2022 00:17:57 +0000 (00:17 +0000)]
d3d12: Don't crash when libd3d12.so can't be found

`d3d12_destroy_screen` is called by `d3d12_create_dxcore_screen` after
`d3d12_init_screen_base` fails and attempts to call `util_dl_close` on
a NULL pointer, leading to an abort.

To fix this, only close the library after if it was actually opened.

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

19 months agoradeonsi: fix ngg lds base load intrinsic llvm implementation
Qiang Yu [Sat, 3 Dec 2022 14:19:37 +0000 (22:19 +0800)]
radeonsi: fix ngg lds base load intrinsic llvm implementation

Otherwise we get llvm assertion.

Fixes: 7e1b804992d ("radeonsi: implement two lds base load intrinsics")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20142>

19 months agoanv: Defer flushing PIPE_CONTROL bits forbidden in CCS while in GPGPU mode
Sviatoslav Peleshko [Wed, 30 Nov 2022 05:05:51 +0000 (07:05 +0200)]
anv: Defer flushing PIPE_CONTROL bits forbidden in CCS while in GPGPU mode

Fixes: 313aeee8 ("anv: Use pending pipe control mechanism in flush_pipeline_select()
")

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7816
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20124>

19 months agodxil: Use nir_const_value_for_uint in dxil_nir_lower_int_samplers
Jason Ekstrand [Fri, 11 Nov 2022 21:14:16 +0000 (15:14 -0600)]
dxil: Use nir_const_value_for_uint in dxil_nir_lower_int_samplers

This change should avoid any accidental rounding issues because of
border colors getting stored in a float in dxil_wrap_sampler_state.  It
also switches us to using the correct helpers for nir_const_value so we
can avoid any weird uninitialized data failures that can be caused by
filling out the fields in the struct directly.

Fixes: b9c61379ab4c ("microsoft/compiler: translate nir to dxil")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19689>

19 months agor600/nir: Fix u64vec2 immediate lowering
Jason Ekstrand [Fri, 11 Nov 2022 21:02:07 +0000 (15:02 -0600)]
r600/nir: Fix u64vec2 immediate lowering

There were a couple of issues here:

 1. We should be using nir_const_value_for_uint instead of setting the
    union fields directly to ensure the rest of the union is zeroed.

 2. It was always filling out the first two components of val even if
    the incoming constant had 2 64-bit components.

Fixes: 165fb5117bf7 ("r600/sfn: add lowering passes to get 64 bit ops lowered to 32 bit vec2")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19689>

19 months agost/mesa: Use nir_const_value_for_bool() in ATIFS
Jason Ekstrand [Fri, 11 Nov 2022 20:58:51 +0000 (14:58 -0600)]
st/mesa: Use nir_const_value_for_bool() in ATIFS

Fixes: 0a179bb6e26b ("st/mesa: Generate NIR for ATI_fragment_shader instead of TGSI.")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19689>

19 months agonir: Use nir_const_value_for_int in nir_lower_subgroups
Jason Ekstrand [Fri, 11 Nov 2022 20:56:19 +0000 (14:56 -0600)]
nir: Use nir_const_value_for_int in nir_lower_subgroups

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7670
Fixes: e4e79de2a420 ("nir/subgroups: Support > 1 ballot components")
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19689>

19 months agollvmpipe: Use get_first_non_void_channel more often
Konstantin Seurer [Thu, 22 Sep 2022 17:39:11 +0000 (19:39 +0200)]
llvmpipe: Use get_first_non_void_channel more often

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18634>

19 months agovirgl: Use get_first_non_void_channel more often
Konstantin Seurer [Fri, 16 Sep 2022 14:17:58 +0000 (16:17 +0200)]
virgl: Use get_first_non_void_channel more often

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18634>

19 months agoradeonsi: Use get_first_non_void_channel more often
Konstantin Seurer [Fri, 16 Sep 2022 14:17:11 +0000 (16:17 +0200)]
radeonsi: Use get_first_non_void_channel more often

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

19 months agor600: Use get_first_non_void_channel more often
Konstantin Seurer [Fri, 16 Sep 2022 14:12:15 +0000 (16:12 +0200)]
r600: Use get_first_non_void_channel more often

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18634>

19 months agor300: Use get_first_non_void_channel more often
Konstantin Seurer [Fri, 16 Sep 2022 14:06:26 +0000 (16:06 +0200)]
r300: Use get_first_non_void_channel more often

Reviewed-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18634>

19 months agoradv: Use get_first_non_void_channel more often
Konstantin Seurer [Fri, 16 Sep 2022 13:41:26 +0000 (15:41 +0200)]
radv: Use get_first_non_void_channel more often

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18634>

19 months agovenus: add VN_PERF_NO_CMD_BATCHING
Yiwei Zhang [Thu, 17 Nov 2022 21:53:57 +0000 (21:53 +0000)]
venus: add VN_PERF_NO_CMD_BATCHING

Make it easier to debug object lifetime issues in Venus.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19830>

19 months agovenus: fix draw cmd batch accounting
Yiwei Zhang [Thu, 17 Nov 2022 21:43:48 +0000 (21:43 +0000)]
venus: fix draw cmd batch accounting

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19830>

19 months agovenus: add VN_PERF_NO_MEMORY_SUBALLOC
Yiwei Zhang [Thu, 17 Nov 2022 21:37:13 +0000 (21:37 +0000)]
venus: add VN_PERF_NO_MEMORY_SUBALLOC

Make it easier for memory alignment debugging.

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19830>

19 months agovenus: avoid no_async_buffer_create related caches with the perf option
Yiwei Zhang [Thu, 17 Nov 2022 21:23:18 +0000 (21:23 +0000)]
venus: avoid no_async_buffer_create related caches with the perf option

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19830>

19 months agoradv: Only create bvh pipelines when using rt
Konstantin Seurer [Thu, 1 Dec 2022 19:02:08 +0000 (20:02 +0100)]
radv: Only create bvh pipelines when using rt

Saves some time when creating non-rt devices.

Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20110>

19 months agovulkan: Use vk_image_sanitize_extent
Konstantin Seurer [Thu, 1 Dec 2022 19:17:34 +0000 (20:17 +0100)]
vulkan: Use vk_image_sanitize_extent

We set the image type before the extend which allows us to use
vk_image_sanitize_extent.

Reviewed-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/20112>

19 months agomicrosoft/clc: Add a test for nested function-temp arrays
Jesse Natalie [Fri, 2 Dec 2022 16:24:29 +0000 (08:24 -0800)]
microsoft/clc: Add a test for nested function-temp arrays

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

19 months agomicrosoft/compiler: Handle nested arrays correctly for emitting global consts
Jesse Natalie [Thu, 1 Dec 2022 19:10:47 +0000 (11:10 -0800)]
microsoft/compiler: Handle nested arrays correctly for emitting global consts

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

19 months agocompiler: Handle nested arrays correctly for computing CL size/alignment
Jesse Natalie [Thu, 1 Dec 2022 19:09:44 +0000 (11:09 -0800)]
compiler: Handle nested arrays correctly for computing CL size/alignment

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20111>

19 months agogallium/u_debug_flush: Fix incompatible function signature warnings
Jesse Natalie [Thu, 1 Dec 2022 13:48:29 +0000 (05:48 -0800)]
gallium/u_debug_flush: Fix incompatible function signature warnings

Looks like an MSVC update started complaining that pipe_error is
no longer a compatible return type for function pointers that are
supposed to be int.

Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20102>

19 months agoradv/rra: Get rid of annoying memory aliasing warning
Konstantin Seurer [Wed, 30 Nov 2022 15:33:42 +0000 (16:33 +0100)]
radv/rra: Get rid of annoying memory aliasing warning

Such cursed behavior is almost non existent in practise. When capturing
a Doom Eternal, this warning spams the output for no reason.

The warning is also unnecessary since we copy acceleration structures
right after building them now.

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

19 months agoradv/rra: Fix setting some offsets
Konstantin Seurer [Tue, 29 Nov 2022 20:40:54 +0000 (21:40 +0100)]
radv/rra: Fix setting some offsets

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

19 months agoradv/rra: Refactor rra_fill_accel_struct_header_common
Konstantin Seurer [Tue, 29 Nov 2022 20:16:58 +0000 (21:16 +0100)]
radv/rra: Refactor rra_fill_accel_struct_header_common

No need to re-do the offset calculation for every field.

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

19 months agoradv/rra: Set the metadata size correctly
Konstantin Seurer [Tue, 29 Nov 2022 18:12:40 +0000 (19:12 +0100)]
radv/rra: Set the metadata size correctly

Fixes: 5749806 ("radv: Add Radeon Raytracing Analyzer trace dumping utilities")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20047>

19 months agoradv/rra: Remove an obsolete comment
Konstantin Seurer [Tue, 29 Nov 2022 18:03:00 +0000 (19:03 +0100)]
radv/rra: Remove an obsolete comment

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

19 months agoradv/rra: Defer destroying accel struct data
Konstantin Seurer [Mon, 28 Nov 2022 21:22:10 +0000 (22:22 +0100)]
radv/rra: Defer destroying accel struct data

This allows us to dump acceleration structures that were destroyed
before present.

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

19 months agoradv/rra: Copy accel structs directly after build
Konstantin Seurer [Mon, 28 Nov 2022 19:11:17 +0000 (20:11 +0100)]
radv/rra: Copy accel structs directly after build

This is the second step of decoupling acceleration structure dumping
from lifetimes. It also simplifies the logic a bit.

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

19 months agoradv/rra: Introduce radv_rra_accel_struct_data
Konstantin Seurer [Mon, 28 Nov 2022 18:31:17 +0000 (19:31 +0100)]
radv/rra: Introduce radv_rra_accel_struct_data

This will be useful for dumping acceleration structures that were
destroyed before submit.

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

19 months agoradv: Add hash_table_foreach to .clang-format
Konstantin Seurer [Mon, 28 Nov 2022 18:30:42 +0000 (19:30 +0100)]
radv: Add hash_table_foreach to .clang-format

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

19 months agomicrosoft/spirv_to_dxil: Properly handle load- and is_helper_invocation
Pedro J. Estébanez [Tue, 22 Nov 2022 11:45:56 +0000 (12:45 +0100)]
microsoft/spirv_to_dxil: Properly handle load- and is_helper_invocation

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

19 months agoclc: fetch clang resource dir at runtime
Karol Herbst [Tue, 22 Nov 2022 10:48:08 +0000 (11:48 +0100)]
clc: fetch clang resource dir at runtime

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19617>

19 months agoclc: generate sources only with with_microsoft_clc
Karol Herbst [Wed, 9 Nov 2022 14:12:19 +0000 (15:12 +0100)]
clc: generate sources only with with_microsoft_clc

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19617>

19 months agonir/nir_opt_offsets: Prevent offsets going above max
Danylo Piliaiev [Thu, 1 Dec 2022 13:01:57 +0000 (14:01 +0100)]
nir/nir_opt_offsets: Prevent offsets going above max

In try_fold_load_store when trying to extract const addition from
non-const offset source, we should take into account that there is
already a constant base offset, which should count towards the limit.

The issue was found in "Monster Hunter: World" running on Turnip.

Fixes: cac6f633b21799bd1ecc35471d73a0bd190ccada
("nir/opt_offsets: Use nir_ssa_scalar to chase offset additions.")

Well, the issue was present before this commit but it made a lot
of changes in surrounding code.

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20099>

19 months agoci/amd: re-enable previously OOM tests
David Heidelberg [Mon, 21 Nov 2022 18:32:58 +0000 (19:32 +0100)]
ci/amd: re-enable previously OOM tests

Since we have ZRAM now, we can enable previously failing tests on OOM.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19535>

19 months agoci/kernel: enable ZRAM on all archs
David Heidelberg [Fri, 4 Nov 2022 12:16:40 +0000 (13:16 +0100)]
ci/kernel: enable ZRAM on all archs

Let's enable ZRAM with 2G. Should help prevent peak OOM scenarios.

For more info see: https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html

Reviewed-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19535>