Lionel Landwerlin
f8af4b597e
vulkan/runtime: store flags on descriptor set layouts
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33799 >
2025-02-27 13:26:58 +02:00
Lionel Landwerlin
009ef67c8d
vulkan/runtime: pass robustness state to preprocess vfunc
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33792 >
2025-02-27 10:01:16 +02:00
Alyssa Rosenzweig
9a58a8257e
treewide: Switch to nir_progress
...
Via the Coccinelle patch at the end of the commit message, followed by
sed -ie 's/progress = progress | /progress |=/g' $(git grep -l 'progress = prog')
ninja -C ~/mesa/build clang-format
cd ~/mesa/src/compiler/nir && clang-format -i *.c
agxfmt
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
-return prog;
+return nir_progress(prog, impl, metadata);
@@
expression prog_expr, impl, metadata;
@@
-if (prog_expr) {
-nir_metadata_preserve(impl, metadata);
-return true;
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-return false;
-}
+bool progress = prog_expr;
+return nir_progress(progress, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-nir_metadata_preserve(impl, prog ? (metadata) : nir_metadata_all);
-return prog;
+return nir_progress(prog, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-nir_metadata_preserve(impl, prog ? (metadata) : nir_metadata_all);
+nir_progress(prog, impl, metadata);
@@
expression impl, metadata;
@@
-nir_metadata_preserve(impl, metadata);
-return true;
+return nir_progress(true, impl, metadata);
@@
expression impl;
@@
-nir_metadata_preserve(impl, nir_metadata_all);
-return false;
+return nir_no_progress(impl);
@@
identifier other_prog, prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
-other_prog |= prog;
+other_prog = other_prog | nir_progress(prog, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+nir_progress(prog, impl, metadata);
@@
identifier other_prog, prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-other_prog = true;
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+other_prog = other_prog | nir_progress(prog, impl, metadata);
@@
expression prog_expr, impl, metadata;
identifier prog;
@@
-if (prog_expr) {
-nir_metadata_preserve(impl, metadata);
-prog = true;
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+bool impl_progress = prog_expr;
+prog = prog | nir_progress(impl_progress, impl, metadata);
@@
identifier other_prog, prog;
expression impl, metadata;
@@
-if (prog) {
-other_prog = true;
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+other_prog = other_prog | nir_progress(prog, impl, metadata);
@@
expression prog_expr, impl, metadata;
identifier prog;
@@
-if (prog_expr) {
-prog = true;
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+bool impl_progress = prog_expr;
+prog = prog | nir_progress(impl_progress, impl, metadata);
@@
expression prog_expr, impl, metadata;
@@
-if (prog_expr) {
-nir_metadata_preserve(impl, metadata);
-} else {
-nir_metadata_preserve(impl, nir_metadata_all);
-}
+bool impl_progress = prog_expr;
+nir_progress(impl_progress, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-nir_metadata_preserve(impl, metadata);
-prog = true;
+prog = nir_progress(true, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-}
-return prog;
+return nir_progress(prog, impl, metadata);
@@
identifier prog;
expression impl, metadata;
@@
-if (prog) {
-nir_metadata_preserve(impl, metadata);
-}
+nir_progress(prog, impl, metadata);
@@
expression impl;
@@
-nir_metadata_preserve(impl, nir_metadata_all);
+nir_no_progress(impl);
@@
expression impl, metadata;
@@
-nir_metadata_preserve(impl, metadata);
+nir_progress(true, impl, metadata);
squashme! sed -ie 's/progress = progress | /progress |=/g' $(git grep -l 'progress = prog')
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33722 >
2025-02-26 15:19:53 +00:00
Alyssa Rosenzweig
298788bfde
asahi: clang-format
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33722 >
2025-02-26 15:19:52 +00:00
Alyssa Rosenzweig
c0beb79145
hk: drop silly
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33743 >
2025-02-26 00:03:52 +00:00
Alyssa Rosenzweig
1100c2328a
asahi: rename wip modifier
...
this is gpu-tiled, not twiddled.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33743 >
2025-02-26 00:03:52 +00:00
Alyssa Rosenzweig
42bc9f6400
ail: split compression up
...
this better describes the hw.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33743 >
2025-02-26 00:03:52 +00:00
Alyssa Rosenzweig
99e346ef15
ail: rename twiddled -> gpu tiled
...
got the names flipped >_<
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33743 >
2025-02-26 00:03:52 +00:00
Xaver Hugl
4b663d561b
vulkan/wsi: implement support for VK_EXT_hdr_metadata on Wayland
...
Signed-off-by: Xaver Hugl <xaver.hugl@kde.org>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Sebastian Wick <sebastian.wick@redhat.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32038 >
2025-02-25 21:24:11 +00:00
Alyssa Rosenzweig
2504e7951b
treewide: use nir_shader_tex_pass
...
Adapted the Coccinelle rules from the nir_shader_intrinsics_pass commit a while
ago, which was buggy then and buggy now, so then I fixed stuff up manually
(including formatting).
Via Coccinelle patch:
@def@
typedef bool;
typedef nir_builder;
typedef nir_instr;
typedef nir_def;
identifier fn, instr, intr, x, builder, data;
@@
static fn(nir_builder* builder,
-nir_instr *instr,
+nir_tex_instr *intr,
...)
{
(
- if (instr->type != nir_instr_type_tex)
- return false;
- nir_tex_instr *intr = nir_instr_as_tex(instr);
|
- nir_tex_instr *intr = nir_instr_as_tex(instr);
- if (instr->type != nir_instr_type_tex)
- return false;
)
<...
(
-instr->x
+intr->instr.x
|
-instr
+&intr->instr
)
...>
}
@pass depends on def@
identifier def.fn;
expression shader, progress;
@@
(
-nir_shader_instructions_pass(shader, fn,
+nir_shader_tex_pass(shader, fn,
...)
|
-NIR_PASS_V(shader, nir_shader_instructions_pass, fn,
+NIR_PASS_V(shader, nir_shader_tex_pass, fn,
...)
|
-NIR_PASS(progress, shader, nir_shader_instructions_pass, fn,
+NIR_PASS(progress, shader, nir_shader_tex_pass, fn,
...)
)
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> [v3d]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33672 >
2025-02-24 19:33:26 +00:00
Timur Kristóf
2ebb3c3e37
hk: Don't use deprecated NIR_PASS_V macro anymore.
...
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33609 >
2025-02-22 08:54:39 +01:00
Alyssa Rosenzweig
e34443205f
asahi: support sparse in virtgpu
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
175b3bd4b1
agx: handle sparse buffer images
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
3f1082877a
hk: ban sparse RGB32
...
dumb corner.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
583978a8ee
agx: handle rgb32 residency queries
...
so silly.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
839b01bd2d
hk: fake min/max filtering for proton
...
this gets us to fl12_0.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
383a3065b8
asahi: fix null deref in error path
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
580aff179c
libagx: use 64-bit multiply for image atomic calculation
...
lets use the hw address mode. oops!
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
5a122768b7
hk: do not clamp txf for copy shaders
...
save a few instrs.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
0a43be6d4f
agx: fix botched address fuses
...
identified in
dEQP-VK.robustness.robustness2.push.notemplate.rgba32f.unroll.nonvolatile.sampled_image.no_fmt_qual.img.samples_1.2d.comp.
owwie.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
b589285468
agx: assert shift bounds
...
would've saved me a lot of dbg trouble..
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
de424846f0
asahi: drop trivial depends
...
meson can infer since these are inputs.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
5d1f69e250
asahi,libagx,hk: don't set custom_target names
...
Per meson docs:
This posarg is optional since 0.60.0. It defaults to the basename of the first output.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
7f5271e42d
hk: perf debug sparse binding
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
e84c5b3a07
libagx: vectorize tess level loads
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
5046dd48b6
libagx: fix ia_primitives with tessellation
...
fixes new CTS
dEQP-VK.query_pool.statistics_query*input_assembly_primitives.*_patch_list_*
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
2eb5040ca8
hk: pass cmdbuf to perf_debug
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
debdb26167
hk: accelerate buffer copies with CL
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
be18473d33
hk: assert more
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
dc111c128c
hk: pass cmdbuf, not control stream, into precomp dispatch
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
29d80221db
hk: ensure space with the dispatch
...
cleaner.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
ed7d11e389
agx: fix uniform atomic opts
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
6c3d7a2821
asahi: drop cargo culted disk cache disable
...
we don't have a disk cache to disable with clc.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:29 +00:00
Alyssa Rosenzweig
678134add5
hk: implement sparse
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
3e7297a297
hk: ban sparse host-image-copy
...
WTF?
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
739807944d
agx: implement sparse residency queries
...
hw matches NIR well - just an extra destination on the texture instruction.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
93bccc0914
asahi: support unbinding VA in agx_va_free
...
useful for more sparse-y things.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
c02235124f
asahi: assert page alignment in vm_bind
...
kernel should check but it's easier to debug on the userspace side.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
d0a7bff906
ail: unit test ail_get_twiddled_block_B
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
b842a7732d
ail: add ail_get_twiddled_block_B helper
...
this is useful for sparse updates.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
78ca483940
ail: add ail_bytes_to_pages helper
...
this happens a bunch with sparse
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
56cd20ddea
ail: expose ail_get_max_tile_size
...
useful for sparse block size calculation
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
8e20875651
ail: extract a blocksize helper
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
aebecb2886
ail: move helpers to layout.h for sharing
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
7d27fd84d5
ail: report miptail stride
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
2cac211946
ail: report mip_tail_first_lod for sparse
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
09cd1bf000
ail: unit test sparse_table_size_B
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
bc448fe88b
ail: model sparse page tables
...
see the docs previously added for the aux image layout described here.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
ca60908bf1
asahi: add sparse block XML
...
this xml (and the sparse page table structure itself) was r/e'd blackbox since
that was easier than writing tests, lol. but it seems to work.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00
Alyssa Rosenzweig
c7f7496da1
asahi: identify image mode enum
...
this controls sparse.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33682 >
2025-02-22 02:24:28 +00:00