platform/upstream/mesa.git
11 months agoac: minor updates to packet documentation and definitions
Marek Olšák [Wed, 16 Aug 2023 18:56:00 +0000 (14:56 -0400)]
ac: minor updates to packet documentation and definitions

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

11 months agoac: document ac_shader_args::gs_vtx_offset
Marek Olšák [Wed, 16 Aug 2023 18:45:19 +0000 (14:45 -0400)]
ac: document ac_shader_args::gs_vtx_offset

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

11 months agoac: implement AMD_FORCE_FAMILY properly, remove SI_FORCE_FAMILY
Marek Olšák [Sun, 13 Aug 2023 21:50:47 +0000 (17:50 -0400)]
ac: implement AMD_FORCE_FAMILY properly, remove SI_FORCE_FAMILY

This sets radeon_info for the forced family correctly.

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

11 months agoRevert "ac: don't call ac_query_pci_bus_info from ac_query_gpu_info"
Marek Olšák [Sun, 13 Aug 2023 21:33:47 +0000 (17:33 -0400)]
Revert "ac: don't call ac_query_pci_bus_info from ac_query_gpu_info"

This reverts commit a48642400be86a17d460ce2786988ec67f423f01.

Instead, add a new parameter require_pci_bus_info to control the behavior.

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

11 months agoac/gpu_info: add the /dev/dri/ filename into radeon_info
Marek Olšák [Thu, 27 Jul 2023 16:46:47 +0000 (12:46 -0400)]
ac/gpu_info: add the /dev/dri/ filename into radeon_info

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

11 months agonir/algebraic: collapse ALU opcodes sourcing NaN
Marek Olšák [Sat, 8 Jul 2023 21:09:15 +0000 (17:09 -0400)]
nir/algebraic: collapse ALU opcodes sourcing NaN

Undef will be replaced by NaN whenever it leads to elimination of FP
instructions. This implements the elimination part.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24792>

11 months agonir: fix constant evaluation of fddx/fddy sourcing Inf & NaN constant
Marek Olšák [Sat, 8 Jul 2023 22:00:45 +0000 (18:00 -0400)]
nir: fix constant evaluation of fddx/fddy sourcing Inf & NaN constant

A derivative of NaN is NaN.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24792>

11 months agonir/opt_dead_cf: Remove if branches with undef condition.
Timur Kristóf [Thu, 20 Apr 2023 10:35:01 +0000 (12:35 +0200)]
nir/opt_dead_cf: Remove if branches with undef condition.

Treat them as if the undef were false.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24792>

11 months agonir/passthrough_gs: Fix array size
Alyssa Rosenzweig [Fri, 18 Aug 2023 15:58:01 +0000 (11:58 -0400)]
nir/passthrough_gs: Fix array size

Triangle strips with adjacency have 6 vertices input, so we need an array big
enough for all 6 vertices to avoid overflow. Fixes passthrough GS generated for
KHR-GLES31.core.draw_indirect.basic-mode-*-triangle*adj*.

Fixes: ea14579f3dc ("nir: handle primitives with adjacency")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24780>

11 months agonir/passthrough_gs: Correctly set vertices_in
Alyssa Rosenzweig [Fri, 18 Aug 2023 17:10:37 +0000 (13:10 -0400)]
nir/passthrough_gs: Correctly set vertices_in

If the input primitive has adjacency, the output primitive will have fewer
vertices than the input. For example, if we input TRIANGLE_STRIPS_ADJACENCY, we
need to set vertices_in = 6 even though we'll output TRIANGLE_STRIPS with
vertices_out = 3. Respect that, in order to correctly handle adjacency inputs.

Fixes: ea14579f3dc ("nir: handle primitives with adjacency")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24780>

11 months agonir/lower_helper_writes: Consider bindless images
Alyssa Rosenzweig [Fri, 18 Aug 2023 16:52:40 +0000 (12:52 -0400)]
nir/lower_helper_writes: Consider bindless images

These need to be handled like other image ops.

Fixes KHR-GLES31.core.shader_image_load_store.basic-allTargets-atomicFS on Asahi
with bindless image access forced.

Fixes: 586da7b3290 ("nir: Add nir_lower_helper_writes pass")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24778>

11 months agonv/codegen: Use nir_lower_clip
M Henning [Sat, 12 Aug 2023 03:06:25 +0000 (23:06 -0400)]
nv/codegen: Use nir_lower_clip

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

11 months agozink: fix format in zink_make_{image,texture}_handle_resident()
Eric Engestrom [Sat, 19 Aug 2023 02:14:49 +0000 (03:14 +0100)]
zink: fix format in zink_make_{image,texture}_handle_resident()

`ds->db.format` is a `pipe_format`, while `buffer_infos[handle].format` is
a `VkFormat`; the conversion from one to the other was missing.

Fixes: 99ba529feed6f9917a44 ("zink: implement descriptor buffer handling of bindless texture")
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24790>

11 months agovc4: drop duplicate .lower_ldexp
Eric Engestrom [Sat, 19 Aug 2023 01:30:30 +0000 (02:30 +0100)]
vc4: drop duplicate .lower_ldexp

It's set 3 lines above already.

Fixes: 2a33ea95d66cd7ba83e2 ("glsl: Retire ldexp lowering in favor of the nir lowering flag.")
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24786>

11 months agoegl: Advertise EGL_MESA_gl_interop extension if support present
Sylvain Munaut [Fri, 11 Aug 2023 12:15:55 +0000 (14:15 +0200)]
egl: Advertise EGL_MESA_gl_interop extension if support present

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Acked-by: Antonio Gomes <antoniospg100@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24573>

11 months agoglx: Advertise GLX_MESA_gl_interop extension if support present
Sylvain Munaut [Fri, 11 Aug 2023 12:03:17 +0000 (14:03 +0200)]
glx: Advertise GLX_MESA_gl_interop extension if support present

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Acked-by: Antonio Gomes <antoniospg100@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24573>

11 months agoglx: Remove MESA_depth_float_bit from enum
Sylvain Munaut [Fri, 11 Aug 2023 12:02:31 +0000 (14:02 +0200)]
glx: Remove MESA_depth_float_bit from enum

This is not used anywhere. Been there from the beginning of this
file but with no related code in glxextensions.c

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Acked-by: Antonio Gomes <antoniospg100@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24573>

11 months agoegl: Export the MESA GL Interop functions through eglGetProcAddress
Sylvain Munaut [Tue, 8 Aug 2023 00:03:27 +0000 (02:03 +0200)]
egl: Export the MESA GL Interop functions through eglGetProcAddress

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Acked-by: Antonio Gomes <antoniospg100@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24573>

11 months agoglx: Export the MESA GL Interop functions through glXGetProcAddress
Sylvain Munaut [Tue, 8 Aug 2023 00:03:01 +0000 (02:03 +0200)]
glx: Export the MESA GL Interop functions through glXGetProcAddress

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Acked-by: Antonio Gomes <antoniospg100@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24573>

11 months agoglx: Add missing MesaGLInteropGLXFlushObjects
Sylvain Munaut [Wed, 9 Aug 2023 10:57:49 +0000 (12:57 +0200)]
glx: Add missing MesaGLInteropGLXFlushObjects

All the plumbing was added in 8d55fb54b15381d7fa950f448e5c67d0556088db
but for some reason the top level access method was not ...

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Acked-by: Antonio Gomes <antoniospg100@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24573>

11 months agoinclude: Fix the PFN declarations to be pointers as they should
Sylvain Munaut [Tue, 8 Aug 2023 09:20:58 +0000 (11:20 +0200)]
include: Fix the PFN declarations to be pointers as they should

Broken by b5f9820d905a275bc01bbffa9b4927ec11286f8d back in 2016.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
Acked-by: Antonio Gomes <antoniospg100@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24573>

11 months agoegl: bump extension string length
Eric Engestrom [Fri, 18 Aug 2023 17:13:49 +0000 (18:13 +0100)]
egl: bump extension string length

We've actually been over the 1000 char limit for a while, but we didn't
have a driver in CI that enabled enough extensions to notice it.

If all currently supported extensions are enabled, we need 1441 chars.
Let's bump the string to 2048 to have a little bit of margin.

Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24781>

11 months agoagx: Lower fquantize2f16
Alyssa Rosenzweig [Thu, 10 Aug 2023 17:45:27 +0000 (13:45 -0400)]
agx: Lower fquantize2f16

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24616>

11 months agonir: Lower fquantize2f16
Alyssa Rosenzweig [Thu, 10 Aug 2023 18:12:37 +0000 (14:12 -0400)]
nir: Lower fquantize2f16

Passes dEQP-VK.spirv_assembly.*opquantize*.

Unlike the DXIL lowering, this should correctly handle NaNs. (I belive Dozen has
a bug here that is masked by running constant folding early and poor CTS
coverage.) It is also faster than the DXIL lowering for hardware that supports
f2f16 conversions natively. It is not as good as a backend implementation that
could flush-to-zero in hardware... but for a debug instruction it should be more
than good enough.

It might be slightly better to multiply with 0.0 to get the appropriate zero,
but NIR really likes optimizing that out ...

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24616>

11 months agogtest: backport ansi color fix
David Heidelberg [Tue, 25 Jul 2023 22:58:06 +0000 (00:58 +0200)]
gtest: backport ansi color fix

Fixes ubsan runs for Mesa3D.

Adds prevents from returning
nullptr by choosing default color.

Upstream PR: https://github.com/google/googletest/pull/4322

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

11 months agoci/freedreno: reuse freedreno_gl_file_list instead of re-definining it
Eric Engestrom [Fri, 18 Aug 2023 16:54:07 +0000 (17:54 +0100)]
ci/freedreno: reuse freedreno_gl_file_list instead of re-definining it

Fixes: 9d442b459a43264c2899 ("ci/freedreno: handle disabling farm properly for each FD/Collabora farm")
Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24779>

11 months agor300: add dEQP baseline for RV370 with forced swtcl
Pavel Ondračka [Thu, 17 Aug 2023 16:07:58 +0000 (18:07 +0200)]
r300: add dEQP baseline for RV370 with forced swtcl

Reviewed-by: Filip Gawin <filip.gawin@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24769>

11 months agor300: don't abort on flow control when using draw for vs
Pavel Ondračka [Thu, 17 Aug 2023 16:01:28 +0000 (18:01 +0200)]
r300: don't abort on flow control when using draw for vs

It can handle it just fine. Around 250 dEQPs go from Skip to Pass.

Fixes: 1021e2b946b18739b65b575b0770e6158ba05592
Reviewed-by: Filip Gawin <filip.gawin@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24769>

11 months agor600: better tracking for vertex buffer emission
Mike Blumenkrantz [Thu, 17 Aug 2023 15:22:12 +0000 (11:22 -0400)]
r600: better tracking for vertex buffer emission

Fixes: 76725452 (gallium: move vertex stride to CSO)

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

11 months agor600: store the mask of buffers used by a vertex state
Mike Blumenkrantz [Thu, 17 Aug 2023 13:38:13 +0000 (09:38 -0400)]
r600: store the mask of buffers used by a vertex state

Fixes: 76725452 (gallium: move vertex stride to CSO)

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

11 months agoradeonsi/vcn: Fix leaking fences in decode
David Rosca [Mon, 14 Aug 2023 18:31:58 +0000 (20:31 +0200)]
radeonsi/vcn: Fix leaking fences in decode

Unref fence used in destroy.

Don't store the fence reference in picture->fence, instead
keep it in the driver. Because only the last fence will
now be valid, check the fence pointer in get_decoder_fence.

Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24677>

11 months agonir: Use nir_shader_intrinsic_pass() a few places
Faith Ekstrand [Thu, 17 Aug 2023 22:47:42 +0000 (17:47 -0500)]
nir: Use nir_shader_intrinsic_pass() a few places

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24760>

11 months agonir: Fix metadata in nir_lower_is_helper_invocation
Faith Ekstrand [Thu, 17 Aug 2023 22:51:15 +0000 (17:51 -0500)]
nir: Fix metadata in nir_lower_is_helper_invocation

It does not preserve everything.  It adds and removes instructions and
even adds a variable.

Fixes: f17b41ab4f01 ("nir: add lowering pass for helperInvocationEXT()")
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24760>

11 months agonir: Add nir_shader_intrinsics_pass
Alyssa Rosenzweig [Thu, 3 Aug 2023 20:02:12 +0000 (16:02 -0400)]
nir: Add nir_shader_intrinsics_pass

Like instructions_pass but specialized to intrinsics. More ergnomic for this
extremely common case, and possibly a bit faster by avoiding the extra function
call on non-intrinsics.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24760>

11 months agolavapipe: Advertise AMDX_shader_enqueue
Konstantin Seurer [Tue, 1 Aug 2023 12:38:19 +0000 (14:38 +0200)]
lavapipe: Advertise AMDX_shader_enqueue

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

11 months agolavapipe: Implement AMDX_shader_enqueue commands
Konstantin Seurer [Fri, 4 Aug 2023 13:34:15 +0000 (15:34 +0200)]
lavapipe: Implement AMDX_shader_enqueue commands

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

11 months agolavapipe: Implement exec graph pipelines
Konstantin Seurer [Tue, 1 Aug 2023 12:39:03 +0000 (14:39 +0200)]
lavapipe: Implement exec graph pipelines

Just a collection of compute shaders that can enqueue each other.

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

11 months agolavapipe: Add lvp_pipeline_type
Konstantin Seurer [Sun, 30 Jul 2023 11:06:57 +0000 (13:06 +0200)]
lavapipe: Add lvp_pipeline_type

A boolean is not enough to support exec graph pipelines.

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

11 months agospirv: Implement SPV_AMDX_shader_enqueue
Konstantin Seurer [Tue, 1 Aug 2023 12:37:28 +0000 (14:37 +0200)]
spirv: Implement SPV_AMDX_shader_enqueue

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

11 months agospirv: Update headers and grammer JSON
Konstantin Seurer [Sat, 29 Jul 2023 09:52:45 +0000 (11:52 +0200)]
spirv: Update headers and grammer JSON

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

11 months agonir: Add shader enqueue data structures and handling
Konstantin Seurer [Tue, 1 Aug 2023 12:35:21 +0000 (14:35 +0200)]
nir: Add shader enqueue data structures and handling

There are two new variable modes:
- nir_var_mem_node_payload
- nir_var_mem_node_payload_in

Also add a few more intrinsics and some shader info.

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

11 months agovulkan Add enqueue entrypoint for CmdDispatchGraphAMDX
Konstantin Seurer [Tue, 1 Aug 2023 15:33:34 +0000 (17:33 +0200)]
vulkan Add enqueue entrypoint for CmdDispatchGraphAMDX

The generyted one doesn't copy deep enough.

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

11 months agovulkan: Allow beta extensions for physical device properties
Konstantin Seurer [Mon, 14 Aug 2023 16:26:49 +0000 (18:26 +0200)]
vulkan: Allow beta extensions for physical device properties

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

11 months agovulkan: Allow beta extensions for physical device features
Konstantin Seurer [Sun, 30 Jul 2023 11:15:18 +0000 (13:15 +0200)]
vulkan: Allow beta extensions for physical device features

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

11 months agobin: Update spirv sources
Konstantin Seurer [Sat, 29 Jul 2023 09:51:51 +0000 (11:51 +0200)]
bin: Update spirv sources

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

11 months agoradeonsi: modify algorithm of skipping holes of sparse bo
Julia Zhang [Mon, 7 Aug 2023 03:07:41 +0000 (11:07 +0800)]
radeonsi: modify algorithm of skipping holes of sparse bo

Modify current algorithm of skipping holes of sparse bo to cover the
following using situations:
1. The whole sparse buffer is uncommitted.
2. More than one page that in the tail of sparse buffer are uncommitted.

Signed-off-by: Julia Zhang <julia.zhang@amd.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24535>

11 months agoradeonsi: limit CP DMA to skip holes in sparse bo
Flora Cui [Tue, 11 Apr 2023 07:04:02 +0000 (15:04 +0800)]
radeonsi: limit CP DMA to skip holes in sparse bo

CP DMA on gfx9 can't handle the hole in sparse buffer. The fix skip
sparse bo hole so that arb_sparse_buffer-buffer-data &&
arb_sparse_buffer-commit pass

Signed-off-by: Flora Cui <flora.cui@amd.com>
Signed-off-by: Julia Zhang <julia.zhang@amd.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24535>

11 months agoanv: emitting 3DSTATE_PRIMITIVE_REPLICATION is required on Gen12+
Rohan Garg [Tue, 27 Jun 2023 10:17:17 +0000 (12:17 +0200)]
anv: emitting 3DSTATE_PRIMITIVE_REPLICATION is required on Gen12+

This change helps fix the following tests on future platforms:
  - func.multiview
  - dEQP-VK.fragment_shading_rate.renderpass2.monolithic.multiviewsrlayered.dynamic.attachment.noshaderrate.keep.replace.1x1.samples1.vs
  - anything else that uses multiview

Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-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/24746>

11 months agodri: Use RGB internal formats for RGBX formats
Sviatoslav Peleshko [Mon, 7 Aug 2023 15:46:07 +0000 (18:46 +0300)]
dri: Use RGB internal formats for RGBX formats

These formats do not contain alpha channel, so their internal formats
should reflect that.

Fixes: bf576772 ("dri_util: add driImageFormatToSizedInternalGLFormat function")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9429
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24580>

11 months agoci/freedreno: another batch of Adreno 530 flakes
David Heidelberg [Fri, 18 Aug 2023 10:20:06 +0000 (12:20 +0200)]
ci/freedreno: another batch of Adreno 530 flakes

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

11 months agoradv: stop copying if VS or TES uses the InvocationID built-in
Samuel Pitoiset [Wed, 9 Aug 2023 15:44:54 +0000 (17:44 +0200)]
radv: stop copying if VS or TES uses the InvocationID built-in

It's only allowed in TCS or GS which means the src shader stage
value is always FALSE.

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

11 months agoradv: simplify declaring VS specific input SGPRs
Samuel Pitoiset [Thu, 10 Aug 2023 07:24:24 +0000 (09:24 +0200)]
radv: simplify declaring VS specific input SGPRs

stage/previous_stage are actually useless.

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

11 months agoradv: remove unused param from radv_pipeline_init_multisample_state()
Samuel Pitoiset [Thu, 10 Aug 2023 12:21:50 +0000 (14:21 +0200)]
radv: remove unused param from radv_pipeline_init_multisample_state()

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

11 months agoradv: remove radv_cmd_buffer::cached_vertex_formats
Samuel Pitoiset [Fri, 18 Aug 2023 08:23:28 +0000 (10:23 +0200)]
radv: remove radv_cmd_buffer::cached_vertex_formats

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

11 months agoradv: fix emitting TCS epilogs for GFX6-9
Samuel Pitoiset [Thu, 17 Aug 2023 10:05:18 +0000 (12:05 +0200)]
radv: fix emitting TCS epilogs for GFX6-9

The number of SGPRs need to be adjusted.

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

11 months agoradv: add missing comment about TCS_OFFCHIP_LAYOUT_LSHS_VERTEX_STRIDE
Samuel Pitoiset [Mon, 14 Aug 2023 08:39:57 +0000 (10:39 +0200)]
radv: add missing comment about TCS_OFFCHIP_LAYOUT_LSHS_VERTEX_STRIDE

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

11 months agoradv: reduce TCS_OFFCHIP_LAYOUT_NUM_PATCHES to 6-bits
Samuel Pitoiset [Mon, 14 Aug 2023 08:05:31 +0000 (10:05 +0200)]
radv: reduce TCS_OFFCHIP_LAYOUT_NUM_PATCHES to 6-bits

RADV clamps the number of tess patches to 40.

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

11 months agonir: Drop nir_push_if_src()
Faith Ekstrand [Wed, 16 Aug 2023 16:40:41 +0000 (11:40 -0500)]
nir: Drop nir_push_if_src()

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

11 months agonir: Drop nir_instr_rewrite_src()
Faith Ekstrand [Thu, 17 Aug 2023 21:44:38 +0000 (16:44 -0500)]
nir: Drop nir_instr_rewrite_src()

Replace all its remaining users with nir_src_rewrite().

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

11 months agonir: Drop most uses if nir_instr_rewrite_src()
Faith Ekstrand [Thu, 17 Aug 2023 21:27:15 +0000 (16:27 -0500)]
nir: Drop most uses if nir_instr_rewrite_src()

Generated by the following semantic patch:

    @@
    expression I, S, D;
    @@

    -nir_instr_rewrite_src(I, S, nir_src_for_ssa(D));
    +nir_src_rewrite(S, D);

Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24729>

11 months agonir: Drop nir_instr_rewrite_src_ssa()
Faith Ekstrand [Thu, 17 Aug 2023 20:46:50 +0000 (15:46 -0500)]
nir: Drop nir_instr_rewrite_src_ssa()

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

11 months agonir: Drop most uses of nir_instr_rewrite_src_ssa()
Faith Ekstrand [Thu, 17 Aug 2023 20:44:47 +0000 (15:44 -0500)]
nir: Drop most uses of nir_instr_rewrite_src_ssa()

Generated with the following semantic patch:

    @@
    expression I, S, D;
    @@

    -nir_instr_rewrite_src_ssa(I, S, D);
    +nir_src_rewrite(S, D);

Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24729>

11 months agonir: Drop nir_if_rewrite_condition()
Faith Ekstrand [Thu, 17 Aug 2023 20:41:41 +0000 (15:41 -0500)]
nir: Drop nir_if_rewrite_condition()

Use nir_src_rewrite() instead.  In a couple of cases, we can even drop a
switch on whether or not it's an if source.

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

11 months agonir: Add and use a nir_instr_init_src() helper
Faith Ekstrand [Thu, 17 Aug 2023 21:16:10 +0000 (16:16 -0500)]
nir: Add and use a nir_instr_init_src() helper

This helper exists for a very tiny set of use-cases but it's better to
have the helper live in nir.c than hand-roll it elsewhere.

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

11 months agonir: Add a nir_instr_clear_src() helper and use it
Faith Ekstrand [Wed, 16 Aug 2023 16:16:00 +0000 (11:16 -0500)]
nir: Add a nir_instr_clear_src() helper and use it

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

11 months agonir/opt_undef: Don't rewrite a bcsel to mov
Faith Ekstrand [Thu, 17 Aug 2023 21:38:09 +0000 (16:38 -0500)]
nir/opt_undef: Don't rewrite a bcsel to mov

Technically, it's possible because bcsel has more sources than mov.
However, it's not worth the pain of trying to get it right.

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

11 months agonir: Take a nir_def * in nir_phi_instr_add_src()
Faith Ekstrand [Thu, 17 Aug 2023 20:26:32 +0000 (15:26 -0500)]
nir: Take a nir_def * in nir_phi_instr_add_src()

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

11 months agonir: Take a nir_def * in nir_tex_instr_add_src()
Faith Ekstrand [Wed, 16 Aug 2023 15:44:46 +0000 (10:44 -0500)]
nir: Take a nir_def * in nir_tex_instr_add_src()

NIR bits were hand-typed.  Driver updates done through the following
semantic patch:

    @@
    expression T, ST, D;
    @@

    -nir_tex_instr_add_src(T, ST, nir_src_for_ssa(D));
    +nir_tex_instr_add_src(T, ST, D);

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

11 months agoci/etnaviv: update ci expectation
Christian Gmeiner [Mon, 24 Jul 2023 08:30:44 +0000 (10:30 +0200)]
ci/etnaviv: update ci expectation

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24751>

11 months agonv50: limit max code uploads to 0x8000
Karol Herbst [Thu, 17 Aug 2023 17:11:52 +0000 (19:11 +0200)]
nv50: limit max code uploads to 0x8000

I have no idea why a bigger size doesn't work, the hardware doesn't
complain, but it turns out that uploading big shaders still causes issues
with the old limit. *shrug*

Fixes: 7f63d2ebdbc ("nv50: fix code uploads bigger than 0x10000 bytes")
Signed-off-by: Karol Herbst <git@karolherbst.de>
Reviewed-by: M Henning <drawoc@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24758>

11 months agoiris,crocus: drop unnecessary DEBUG_NO_CCS/NO_HIZ checks
Sagar Ghuge [Wed, 16 Aug 2023 18:49:03 +0000 (11:49 -0700)]
iris,crocus: drop unnecessary DEBUG_NO_CCS/NO_HIZ checks

Now isl_surf_supports_ccs helper handles DEBUG_NO_CCS check and
isl_surf_get_hiz_surf handles DEBUG_NO_HIZ, so we don't
need to check it everywhere.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24731>

11 months agoanv,hasvk: drop unnecessary DEBUG_NO_CCS/NO_HIZ checks
Sagar Ghuge [Wed, 16 Aug 2023 17:11:29 +0000 (10:11 -0700)]
anv,hasvk: drop unnecessary DEBUG_NO_CCS/NO_HIZ checks

Now isl_surf_supports_ccs helper handles DEBUG_NO_CCS check and
isl_surf_get_hiz_surf handles DEBUG_NO_HIZ, so we don't
need to check it everywhere.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24731>

11 months agointel/isl: Enable INTEL_DEBUG=noccs/nohiz in ISL helpers
Sagar Ghuge [Wed, 16 Aug 2023 18:40:11 +0000 (11:40 -0700)]
intel/isl: Enable INTEL_DEBUG=noccs/nohiz in ISL helpers

Let's enable INTEL_DEBUG=noccs in isl_surf_supports_ccs helper and
INTEL_DEBUG=nohiz in isl_surf_get_hiz_surf helper.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24731>

11 months agodisk_cache: Disable the "List" test for RO disk cache.
Emma Anholt [Thu, 17 Aug 2023 16:06:19 +0000 (09:06 -0700)]
disk_cache: Disable the "List" test for RO disk cache.

It uses a poll function that waits for a second hoping for another thread
to catch up, which is not a reliable way to do synchronization.  The test
has been spuriously failing merges on a regular basis recently.

This is issue #9222, which I'm leaving open until the author can fix the test.

Fixes: 3b69b67545b6 ("util/fossilize_db: add runtime RO foz db loading via FOZ_DBS_DYNAMIC_LIST")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24755>

11 months agozink: Fix one addicional case when running a compositor
Igor Torrente [Thu, 10 Aug 2023 16:27:46 +0000 (13:27 -0300)]
zink: Fix one addicional case when running a compositor

Covers the case where the `dri2_init_screen` calls
`pipe_loader_create_screen_vk` directly and not sets
the device major and minor.

Signed-off-by: Igor Torrente <igor.torrente@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24678>

11 months agointel/compiler: Respect NIR_DEBUG_PRINT_INTERNAL for DEBUG_OPTIMIZER
Kenneth Graunke [Mon, 14 Aug 2023 23:59:17 +0000 (16:59 -0700)]
intel/compiler: Respect NIR_DEBUG_PRINT_INTERNAL for DEBUG_OPTIMIZER

If the NIR_DEBUG_PRINT_INTERNAL flag is not set, don't print debugging
information for internal shaders in INTEL_DEBUG=optimizer dumps.

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

11 months agoci/turnip: Add a660 VK coverage.
Emma Anholt [Thu, 4 May 2023 21:09:56 +0000 (14:09 -0700)]
ci/turnip: Add a660 VK coverage.

1/2 run pre-merge, and a half-hour full run for nightly.  Test status
looks very stable so far.

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

11 months agoanv: refactor batch_set_preemption to use batch_emit_pipe_control
Tapani Pälli [Tue, 15 Aug 2023 09:20:14 +0000 (12:20 +0300)]
anv: refactor batch_set_preemption to use batch_emit_pipe_control

This makes it easier to hook workarounds for this pipe control.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24690>

11 months agoradeonsi: don't use threadID.yz/blockID.yz for compute_blit if they're always 0
Marek Olšák [Mon, 7 Aug 2023 02:15:42 +0000 (22:15 -0400)]
radeonsi: don't use threadID.yz/blockID.yz for compute_blit if they're always 0

This can improve performance because fewer VGPRs and SGPRs need to be
initialized.

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

11 months agoradeonsi: don't use threadID.yz/blockID.yz for copy_image if those are always 0
Marek Olšák [Mon, 7 Aug 2023 02:15:42 +0000 (22:15 -0400)]
radeonsi: don't use threadID.yz/blockID.yz for copy_image if those are always 0

This can improve performance because fewer VGPRs and SGPRs need to be
initialized.

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

11 months agoradeonsi: don't abort for descriptor failures, let the winsys handle it
Marek Olšák [Mon, 7 Aug 2023 02:05:56 +0000 (22:05 -0400)]
radeonsi: don't abort for descriptor failures, let the winsys handle it

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

11 months agoradeon_winsys: add a ctx_set_sw_reset_status callback
Marek Olšák [Mon, 7 Aug 2023 02:04:06 +0000 (22:04 -0400)]
radeon_winsys: add a ctx_set_sw_reset_status callback

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

11 months agowinsys/amdgpu: rework how SW reset status is generated and reported
Marek Olšák [Mon, 7 Aug 2023 01:37:32 +0000 (21:37 -0400)]
winsys/amdgpu: rework how SW reset status is generated and reported

This adds a new helper amdgpu_ctx_set_sw_reset_status that sets the SW
status. The logic of which CS is reported as rejected is also changed
slightly, i.e. other contexts no longer affect the current context.

The helper will be exposed to radeonsi to allow reporting non-recoverable
allocation failures and skipped draws.

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

11 months agoradeon_winsys: move allow_context_lost from cs_create to ctx_create
Marek Olšák [Mon, 7 Aug 2023 00:38:37 +0000 (20:38 -0400)]
radeon_winsys: move allow_context_lost from cs_create to ctx_create

to apply it to all command streams of each context.

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

11 months agoradeonsi: set PIPE_CONTEXT_LOSE_CONTEXT_ON_RESET on aux_context explicitly
Marek Olšák [Mon, 7 Aug 2023 00:30:43 +0000 (20:30 -0400)]
radeonsi: set PIPE_CONTEXT_LOSE_CONTEXT_ON_RESET on aux_context explicitly

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

11 months agoradeonsi: rewrite how occlusion query precision is determined for performance
Marek Olšák [Thu, 27 Jul 2023 05:09:47 +0000 (01:09 -0400)]
radeonsi: rewrite how occlusion query precision is determined for performance

The precision of occlusion queries is determined from active queries.
Then the register programming is determined from the precision and other
states.

This has the effect that we no longer set PERFECT_ZPASS_COUNTS
for PIPE_QUERY_OCCLUSION_PREDICATE in some cases, resulting in higher
performance.

This also disables conservative occlusion queries for gfx11 because it's
not recommended with late Z, but detecting late Z vs early Z would be
more complicated, so just never use it, which results in better performance
with late Z.

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

11 months agoradeonsi: enable shader culling by default because it helps Viewperf
Marek Olšák [Wed, 19 Jul 2023 20:22:22 +0000 (16:22 -0400)]
radeonsi: enable shader culling by default because it helps Viewperf

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

11 months agoradeonsi: use num_patches_per_workgroup directly in si_get_ia_multi_vgt_param
Marek Olšák [Sun, 16 Jul 2023 21:48:51 +0000 (17:48 -0400)]
radeonsi: use num_patches_per_workgroup directly in si_get_ia_multi_vgt_param

We don't need to pass it via parameters.

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

11 months agoradeonsi: move GE_CNTL emission from si_draw into si_emit_vgt_pipeline_state
Marek Olšák [Sun, 16 Jul 2023 21:46:12 +0000 (17:46 -0400)]
radeonsi: move GE_CNTL emission from si_draw into si_emit_vgt_pipeline_state

It doesn't depend on pipe_draw_info since pipe_context::set_patch_vertices
was added.

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

11 months agoradeonsi/ci: update gfx11 failures
Marek Olšák [Sun, 16 Jul 2023 21:28:40 +0000 (17:28 -0400)]
radeonsi/ci: update gfx11 failures

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

11 months agoradeonsi: convert si_gfx_resources_add_all_to_bo_list to a state atom
Marek Olšák [Sun, 16 Jul 2023 18:23:29 +0000 (14:23 -0400)]
radeonsi: convert si_gfx_resources_add_all_to_bo_list to a state atom

We can do this as part of the state emit loop instead of having a separate
call in si_draw.

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

11 months agoradeonsi: merge si_upload_*_descriptors into si_emit_*_shader_pointers
Marek Olšák [Sun, 16 Jul 2023 18:10:20 +0000 (14:10 -0400)]
radeonsi: merge si_upload_*_descriptors into si_emit_*_shader_pointers

This removes calling si_upload_graphics_shader_descriptors from si_draw
by moving the uploading into si_emit_graphics_shader_pointers.

Similar for compute.

si_upload_shader_descriptors used to set sctx->shader_pointers_dirty to
pass the mask to the emit function. Now, shader_pointers_dirty is both set
and consumed in si_emit_graphics_shader_pointers and si_emit_compute_-
shader_pointers, so the mask is passed via a local variable.

All places that set descriptors_dirty must now also dirty
the gfx_shader_pointers state for the descriptors to be uploaded.

All places that set bindless_descriptors_dirty must do the same and also
make the cache_flush state dirty because si_emit_graphics_shader_pointers
can now set cache flush flags (through si_upload_bindless_descriptors).

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

11 months agoradeonsi: rename shader_pointers state -> gfx_shader_pointers
Marek Olšák [Sun, 16 Jul 2023 17:20:01 +0000 (13:20 -0400)]
radeonsi: rename shader_pointers state -> gfx_shader_pointers

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

11 months agoradeonsi: abort when failing to upload descriptors instead of skipping draws
Marek Olšák [Sun, 16 Jul 2023 16:30:42 +0000 (12:30 -0400)]
radeonsi: abort when failing to upload descriptors instead of skipping draws

This removes a jump from si_draw, and it's a prerequisite for the next
change, which will move uploading descriptors into a state emit function.

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

11 months agoradeonsi: remove render condition logic from si_draw by reordering atoms
Marek Olšák [Sun, 16 Jul 2023 14:47:57 +0000 (10:47 -0400)]
radeonsi: remove render condition logic from si_draw by reordering atoms

If we reorder state atoms to emit the render condition after cache flushes,
it will automatically give us the behavior we want in si_draw.

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

11 months agoradeonsi: handle deferred cache flushes as a state (si_atom)
Marek Olšák [Sun, 16 Jul 2023 14:38:20 +0000 (10:38 -0400)]
radeonsi: handle deferred cache flushes as a state (si_atom)

This allows us to remove a little bit of code from si_draw, and enable
removing more code in the future.

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

11 months agoradeonsi: add a simple version of si_pm4_emit_state for non-shader states
Marek Olšák [Sun, 16 Jul 2023 13:46:15 +0000 (09:46 -0400)]
radeonsi: add a simple version of si_pm4_emit_state for non-shader states

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

11 months agoradeonsi: merge pm4 state and atom emit loops into one
Marek Olšák [Sun, 16 Jul 2023 12:38:17 +0000 (08:38 -0400)]
radeonsi: merge pm4 state and atom emit loops into one

This merges both loops in si_draw by tracking which pm4 states are dirty
using the state atom mechanism used for other states. pm4 states now have
to set their own emit function.

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

11 months agoradeonsi: move code around si_pm4_emit_state into si_pm4_emit_state
Marek Olšák [Sun, 16 Jul 2023 11:42:50 +0000 (07:42 -0400)]
radeonsi: move code around si_pm4_emit_state into si_pm4_emit_state

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

11 months agoradeonsi: split direct pm4 emission from si_pm4_emit
Marek Olšák [Sun, 16 Jul 2023 11:40:42 +0000 (07:40 -0400)]
radeonsi: split direct pm4 emission from si_pm4_emit

si_pm4_emit_state will be changed.

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