Commit graph

181483 commits

Author SHA1 Message Date
Connor Abbott
ca03e6ab3f tu: Make filling out tu_program_state not depend on the pipeline
We will need to fill it out at draw time for shader objects.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25679>
2023-12-05 20:38:28 +00:00
Connor Abbott
88db736472 tu: Rework dynamic offset handling
With shader objects, we won't have the pipeline layout available. This
means that the current way we implement dynamic offset descriptors in
combination with fast-linking and independent descriptor sets, where we
use the pipeline layout when fast-linking that has pre-computed offsets
for each descriptor set, won't work. Instead we need to piece together
the sizes of the descriptors in each descriptor set from the shaders.
This is already effectively what we do when we stitch together the
pipeline layout when fast-linking, but we need to make it work with just
the shaders.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25679>
2023-12-05 20:38:28 +00:00
Connor Abbott
af691ec8e4 tu: Don't use pipeline layout to emit shared const enable
It won't exist when we emit this at draw time for shader objects.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25679>
2023-12-05 20:38:27 +00:00
Faith Ekstrand
785290836b nak: Add a barrier propagation pass
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
a595535074 nak: Force RA to allocate bar_in/out to the same register
OpBreak and OpBSsy aren't very SSA friendly as they require bar_in and
bar_out to be assigned the same register.  We need to encure that RA
knows about this restriction.  For now, we just special-case these two
instructions.  In the future we may want a more generic mechanism for
this but it's not worth it for just two instructions.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
eda940c855 nak: Make barriers SSA-friendly
The NIR intrinsics now take and return a barrier whenever one is
modified instead of modifying in-place.  In NAK, we give the internal
instructions the same treatment and convert everything to use barrier
SSA values and RegRefs.  In nak_from_nir, we move all barriers to/from
GPRs.  We'll clean up the massive pile of OpBMov later.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
71813afa7a nak: Take num_barriers from RA
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
dca65f62c8 nak: Add support for spilling barriers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
7cd9680554 nak: Add back OpBMov with better semantics
It now takes a regular Src and Dst and we handle both GPR -> Bar vs.
Bar -> GPR forms in the emit code.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
40c96ff6ea nak: Add a barrier register file
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
618723428a nak: Fix scheduling for control barriers
OpBar and OpBSync both stall the thread until other threads get to that
point.  These instructions must have .yld set.  Also, warp barrier ops
don't support the usual instruction barrier mechanism so they should be
marked as having a fixed latency.  It's unclear if the barrier file is
internally scoreboarded or if warp barrier ops just stall the whole
thread.  In either case, this seems necessary.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
45686ec0ba nak: Replace OpBMov with OpBClear
This is all we're using it for right now and an op that simply clears
has far more obvious semantics than something which reads from and then
clears its source.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Faith Ekstrand
3348446422 nak: Simplify Src::is_predicate()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26463>
2023-12-05 18:59:40 +00:00
Samuel Pitoiset
13dcbdcdf3 radv: make sure to reset the stipple line state when it's disabled
In a scenario like:
CmdBindPipeline(stipple line enabled)
CmdDraw()
CmdBindPipeline(stipple line disabled)
CmdDraw()

The second draw wasn't resetting the stipple line state and this might
have caused issues, though it's uncovered by VK CTS.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26429>
2023-12-05 18:29:30 +00:00
Samuel Pitoiset
e88973fd02 radv: change the reset stipple pattern mode for adjacent lines
Ported from RadeonSI. This isn't covered by VK CTS.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26429>
2023-12-05 18:29:29 +00:00
Samuel Pitoiset
16d5ffc3ee radv: update the reset stipple pattern mode
PAL recently changed the mode. This doesn't fix anything known.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26429>
2023-12-05 18:29:29 +00:00
Samuel Pitoiset
949fdc9a73 radv: advertise VK_EXT_depth_clamp_zero_one
RADV already implements this behavior, so enabling this extension is
a no-op.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26443>
2023-12-05 18:10:31 +00:00
Lionel Landwerlin
8d6c059bd2 intel/tools: 32bit compile fixes
Fixes: 03712579b0 ("intel/tools: add hang_replay tool")
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26514>
2023-12-05 17:45:18 +00:00
Rhys Perry
7a37a39fe0 aco: simplify v_mul_* labelling slightly
This was from before VALU_instruction existed.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445>
2023-12-05 16:56:58 +00:00
Rhys Perry
468ee8b80c aco: implement 16-bit fsat on GFX8
GFX8 doesn't have v_med3_f16.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445>
2023-12-05 16:56:58 +00:00
Rhys Perry
de51a21e26 aco: implement 16-bit derivatives
These are used by radeonsi.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445>
2023-12-05 16:56:58 +00:00
Rhys Perry
997a0884a5 aco: implement 16-bit fsign on GFX8
GFX8 doesn't have v_med3_i16.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445>
2023-12-05 16:56:58 +00:00
Rhys Perry
b7725b072b aco: flush denormals for 16-bit fmin/fmax on GFX8
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26445>
2023-12-05 16:56:57 +00:00
Yonggang Luo
a9a2eabea8 glsl: move glsl_get_gl_type into glsl/linker_util.h
glsl_get_gl_type only accessed in src/compiler/glsl files, do not expose it
in libcompiler

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25879>
2023-12-05 16:16:55 +00:00
Boris Brezillon
1d4583759a panfrost: Restrict job descriptor emission to JM hardware
CSF hardware issue jobs through command stream instructions.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356>
2023-12-05 15:55:21 +00:00
Boris Brezillon
54e0086abe panfrost: Restrict job chain helpers to JM hardware
Jobs are issued through command stream instructions on CSF hardware.
Don't expose the job chain helpers in that case.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356>
2023-12-05 15:55:21 +00:00
Boris Brezillon
1481883a6e panfrost: Make pan_afbc_compression_mode() per-gen
With the introduction of v10, we need this function to have a
per-gen name to avoid duplicates. While at it, move it to pan_texture.c
since the prototype is already defined in pan_texture.h.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356>
2023-12-05 15:55:21 +00:00
Boris Brezillon
e144347140 panfrost: Rename pan_cs.{c,h} into pan_desc.{c,h}
Pre v10 Mali GPU were describing GPU jobs as a chain of job descriptors,
but new generations moved to a command stream based approach. The
pan_cs.{h,c} name was chosen based on the assumption this job chain
would replace the command stream we have on other GPUs, things will
become a lot more confusing now that we have a real command stream.

Let's rename these files before it happens. Given all the helpers in
there are either emitting descriptors, and calculating values to be
put in such descriptors, pan_desc.{c,h} sounds like an acceptable
name.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356>
2023-12-05 15:55:21 +00:00
Boris Brezillon
dc087a3184 panfrost: s/pan_scoreboard/pan_jc/
What pan_scoreboard manipulates is a job chain, how dependencies
between jobs is implemented is an implementation detail, and shouldn't
leak through the name.

Let's rename pan_scoreboard.h pan_jc.h, and prefix the functions
accordingly.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26356>
2023-12-05 15:55:21 +00:00
Boris Brezillon
692a4b1804 panfrost: Don't leak NIR compute shaders
We never steal the NIR program or free it explicitly, and the state
tracker expects drivers to take ownership of the program object. Since
panfrost doesn't need to keep the original NIR shader around for
compute, let's just free it before returning.

Fixes: 40372bd720 ("panfrost: Implement a disk cache")
Cc: stable
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26424>
2023-12-05 15:29:28 +00:00
Karol Herbst
b470bd7359 rusticl/gl: make GLX support optional
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26394>
2023-12-05 14:44:52 +00:00
Karol Herbst
494fd5d068 rusticl: add x11 dependency
This is needed by `glx.h` pulling in `X11/Xlib.h`

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10221
Fixes: df0623e51a ("rusticl, meson: Add gl/egl/glx bindings")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26394>
2023-12-05 14:44:52 +00:00
Samuel Pitoiset
338319741c radv: add DGC support for mesh shader only
This only implements mesh shaders with DGC because task shaders are
really tricky. I will address them later.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890>
2023-12-05 14:17:39 +00:00
Samuel Pitoiset
eb3e1bdfe6 radv: only initialize the VTX base SGPR if non-zero with DGC
Otherwise, its value is incorrect.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890>
2023-12-05 14:17:39 +00:00
Samuel Pitoiset
1deedc70db radv: only initialize the VBO reg if VBOs are bound with DGC
With mesh shader there is no VBO at all.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890>
2023-12-05 14:17:39 +00:00
Samuel Pitoiset
400cfa0eba radv: remove never used binds_state for DGC
This has been removed a while ago.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25890>
2023-12-05 14:17:39 +00:00
Mario Kleiner
1700c6af6f v3d: add B10G10R10[X2/A2]_UNORM to format table.
Enables 10 bpc / color depth 30 bit support under XOrg
with X11/GLX/OpenGL.

Successfully tested with RaspberryPi OS 11,
running X-Server 1.20, and also with Weston,
on a RaspberryPi 400 on top of current Mesa 24.0-devel.

Alejandro Piñeiro also performed a GLES CTS run
with successful result, citing him:
"Full GLES 31 CTS finished with 0 failres. So all ok"

Note that this commit was originally developed and
successfully tested by myself against Mesa 23.1-devel
from February 2023, and therefore should apply and work
cleanly against recent Mesa stable branches. One could
see this commit as a trivial compatibility fix against
X-Server 1.20 / modesetting-ddx 1.20, which is why I'm
also nominating this commit for the current 23.3 stable
branch, and also the 23.2 stable branch, so it may make
it into RaspberryPi OS 12. Thanks for the consideration.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Backport-to: 23.2
Backport-to: 23.3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26472>
2023-12-05 13:56:23 +00:00
Eric Engestrom
48324e3734 radeonsi/ci: update vangogh piglit expectations
Looking good there, Vangogh!

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26466>
2023-12-05 13:34:32 +00:00
Martin Roukala (né Peres)
91076fd390 amd/ci: reduce Renoir's concurrency to 16
It seems like when we increased the number of tests per shard, we
started overcommitting the Renoir runner, leading to load averages
higher than the 16 CPU threads could handle, while also running at
75-96% memory usage.

By dropping the concurrency to 16, we should be able to reduce this
memory usage while also reducing the execution time.

Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26501>
2023-12-05 12:45:44 +00:00
Caio Oliveira
d9565a0e66 intel/compiler: Remove the linking step in intel_clc
A previous patch already removed individual compilation of the inputs,
by simply concatenating the files. This patch removes the linking of
the remaining single object that's compiled.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458>
2023-12-05 11:48:25 +00:00
Caio Oliveira
d9e49ce194 intel/compiler: Fix memory leaks in intel_clc
Avoids failures when using Address Sanitizer.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458>
2023-12-05 11:48:25 +00:00
Caio Oliveira
db9111bb87 intel/compiler: Use single variable instead of dynarray
A previous change concatenated multiple SPIR-V inputs to be
compiled together, so we have a single clc_binary to work on.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458>
2023-12-05 11:48:25 +00:00
Caio Oliveira
73276c1ece intel/compiler: Refactor program exit in intel_clc
Move the clean up code (at the moment just ralloc_ctx) into
a single place at the end.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26458>
2023-12-05 11:48:25 +00:00
Faith Ekstrand
1d10de539c nvk: Implement VK_EXT_shader_image_atomic_int64
The compiler work is done but we still need to advertise formats and
deal with clears.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9647
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246>
2023-12-05 11:24:51 +00:00
Faith Ekstrand
0ad77cbf98 nvk: Don't disable non-texturable formats
We're about to add int64 formats and those aren't texturable but you can
use them as storage images.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246>
2023-12-05 11:24:51 +00:00
Faith Ekstrand
7f1dc665ef nil: Add R64_SINT and R64_UINT formats
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246>
2023-12-05 11:24:51 +00:00
Faith Ekstrand
c190c54c30 nak: Handle 64-bit image atomics
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246>
2023-12-05 11:24:51 +00:00
Faith Ekstrand
62ff051139 nak: Lower 64-bit image load/store
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246>
2023-12-05 11:24:51 +00:00
Faith Ekstrand
1e2f9ab771 nak/nir: Trim image load/stores based on format
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246>
2023-12-05 11:24:51 +00:00
Faith Ekstrand
9b60a1c00e nvk: Advertise VK_KHR_shader_atomic_int64
Everything should be mostly wired up. Shared atomics don't seem to work,
though, for some reason.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9603
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26246>
2023-12-05 11:24:51 +00:00