Iván Briano
35190aac91
anv: dirty descriptor state on CmdSetDescriptorBufferOffets
...
Calling vkCmdBindDescriptorBuffersEXT() does not invalidate previously
set descriptor sets. Move the state dirtying to
vkCmdSetDescriptorBufferOffets.
Fixes: ab7641b8dc ("anv: implement descriptor buffer binding")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36768 >
2025-08-14 07:05:31 +00:00
Iván Briano
382b8e3aa2
anv: check for pending_db_mode when dirtying descriptor mode
...
If an application switches back and forth between descriptor sets and
descriptor buffers before executing a draw/dispatch, we could end up in
a wrong state due to pending_db_mode not getting updated.
Fixes: ab7641b8dc ("anv: implement descriptor buffer binding")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36768 >
2025-08-14 07:05:31 +00:00
Lionel Landwerlin
44aaf88425
anv: rework gfx state emission (again)
...
Previously we had 2 stages :
runtime -> precomputed values -> packing/emission
With this change we use 3 stages :
runtime -> precomputed values -> packing -> emission
Now blorp & other changes to the pipeline should not retrigger
repacking of instructions.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36711 >
2025-08-11 11:14:53 +00:00
Lionel Landwerlin
ca0a509b6b
anv: move 3DSTATE_VFG emission to dynamic path
...
A bunch of fields are fixed and other depends on what stages are
bound.
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/36665 >
2025-08-08 14:07:01 +00:00
Lionel Landwerlin
5a8e295a97
anv: move 3DSTATE_CLIP emission to dynamic path
...
This instruction has a bunch of fixed fields and the rest depends on
the shader stages enabled. With the pipeline object going away, we
can't keep this on the pipeline.
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/36665 >
2025-08-08 14:07:00 +00:00
Lionel Landwerlin
c8305dfe0e
anv: move SBE emission to dynamic path
...
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/36665 >
2025-08-08 14:07:00 +00:00
Lionel Landwerlin
7b8a6af222
anv: move 3DSTATE_SF dynamic emission path
...
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/36665 >
2025-08-08 14:06:59 +00:00
Lionel Landwerlin
20721419e5
anv: move primitive_replication emission to dynamic path
...
The pipeline object going away, we won't have a place to keep this. We
can make the diff/emission efficient enough that it won't matter much.
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/36665 >
2025-08-08 14:06:58 +00:00
Lionel Landwerlin
6d863fda2d
anv/brw: move sample_shading_enable to wm_prog_data
...
The vulkan runtime doesn´t store this parameter in the dynamic state
(since it's not a dynamic state). Just capture it at compile time and
leave on the wm_prog_data.
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/36665 >
2025-08-08 14:06:58 +00:00
Lionel Landwerlin
f2696b441d
anv/brw: store min_sample_shading on wm_prog_data
...
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/36665 >
2025-08-08 14:06:57 +00:00
Lionel Landwerlin
652ef8f0c5
anv: fix source hash utrace prints
...
Right now we're just printing 0 values
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Fixes: 8966088cc5 ("anv: store gfx/compute bound shaders on command buffer state")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36663 >
2025-08-08 12:10:21 +00:00
Qiang Yu
196569b1a4
all: rename gl_shader_stage to mesa_shader_stage
...
It's not only for GL, change to a generic name.
Use command:
find . -type f -not -path '*/.git/*' -exec sed -i 's/\bgl_shader_stage\b/mesa_shader_stage/g' {} +
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Yonggang Luo <luoyonggang@gmail.com >
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36569 >
2025-08-06 10:28:40 +08:00
Lionel Landwerlin
8966088cc5
anv: store gfx/compute bound shaders on command buffer state
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36512 >
2025-08-01 11:35:08 +00:00
Lionel Landwerlin
18f234a8a2
anv: avoid looking at the pipeline to flush push descriptors
...
We do this at the cost of recomputing some values that where available
on the pipeline at vkCmdBindPipeline() time.
We can look at the shaders on graphics/compute which will work nicely
with the runtime.
The runtime doesn't have support for ray tracing pipelines so we keep
using them.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36512 >
2025-08-01 11:35:07 +00:00
Lionel Landwerlin
f28af4e7f2
anv: move URB programming to dynamic emission path
...
With the pipeline object going away, we have nowhere to store this.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36512 >
2025-08-01 11:35:07 +00:00
Lionel Landwerlin
240482f5f5
anv: break ANV_CMD_DIRTY_PIPELINE into each stage
...
Since the pipeline concept is going to go away into the runtime, this
gives us finer control over runtime flushing.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36512 >
2025-08-01 11:35:04 +00:00
Lionel Landwerlin
aa4c7283a1
anv: make anv_pipeline_sets_layout looks more like vk_pipeline_layout
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36512 >
2025-08-01 11:35:03 +00:00
Lionel Landwerlin
e8638b66bd
anv: reuse runtime flags field for descriptor set layout
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36512 >
2025-08-01 11:35:02 +00:00
Lionel Landwerlin
5f1cd42456
anv: move over to common descriptor set & pipeline layouts
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36512 >
2025-08-01 11:35:01 +00:00
Antonio Ospite
ddf2aa3a4d
build: avoid redefining unreachable() which is standard in C23
...
In the C23 standard unreachable() is now a predefined function-like
macro in <stddef.h>
See https://android.googlesource.com/platform/bionic/+/HEAD/docs/c23.md#is-now-a-predefined-function_like-macro-in
And this causes build errors when building for C23:
-----------------------------------------------------------------------
In file included from ../src/util/log.h:30,
from ../src/util/log.c:30:
../src/util/macros.h:123:9: warning: "unreachable" redefined
123 | #define unreachable(str) \
| ^~~~~~~~~~~
In file included from ../src/util/macros.h:31:
/usr/lib/gcc/x86_64-linux-gnu/14/include/stddef.h:456:9: note: this is the location of the previous definition
456 | #define unreachable() (__builtin_unreachable ())
| ^~~~~~~~~~~
-----------------------------------------------------------------------
So don't redefine it with the same name, but use the name UNREACHABLE()
to also signify it's a macro.
Using a different name also makes sense because the behavior of the
macro was extending the one of __builtin_unreachable() anyway, and it
also had a different signature, accepting one argument, compared to the
standard unreachable() with no arguments.
This change improves the chances of building mesa with the C23 standard,
which for instance is the default in recent AOSP versions.
All the instances of the macro, including the definition, were updated
with the following command line:
git grep -l '[^_]unreachable(' -- "src/**" | sort | uniq | \
while read file; \
do \
sed -e 's/\([^_]\)unreachable(/\1UNREACHABLE(/g' -i "$file"; \
done && \
sed -e 's/#undef unreachable/#undef UNREACHABLE/g' -i src/intel/isl/isl_aux_info.c
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36437 >
2025-07-31 17:49:42 +00:00
José Roberto de Souza
bdd20457ed
anv: Emit STATE_COMPUTE_MODE before COMPUTE_WALKER when new async compute limits are needed
...
Cc: stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com >
Signed-off-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35563 >
2025-06-23 18:57:25 +00:00
Caleb Callaway
111005066d
anv: Increase max VBs to 33 on Gen11+
...
Prior to Gen 11, we had to upload a bunch of SGVs
(FirstVertex, BaseVertex, BaseInstance, DrawID) via
3DSTATE_VERTEX_BUFFERS.
For Gen11+, we upload via 3DSTATE_SGVS_2 instead.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35376 >
2025-06-06 19:32:35 +00:00
Lionel Landwerlin
39f55541a3
anv: don't use pipeline layout at descriptor bind
...
An application is allowed to bind an empty descriptor set in a place
where a pipeline layout has no descriptor set layout. For example :
pipeline_layout_A :
set0 : NULL
set1 : descriptor_set_layout_A
vkCmdBindDescriptor :
set0 : descriptor_set_B (with layout bindingCount=0)
set1 : descriptor_set_C (compatible with descriptor_set_layout_A)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13227
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35125 >
2025-05-23 12:56:31 +00:00
Lionel Landwerlin
648d843813
anv: move xfb buffer storage to 64bit address + mocs
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33909 >
2025-03-12 09:37:50 +00:00
Lionel Landwerlin
3c0dcfeb0f
anv: move vertex buffer storage to 64bit address + mocs
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33909 >
2025-03-12 09:37:50 +00:00
Lionel Landwerlin
d254dc4eaf
anv: move index buffer entry point out of genX code
...
Take the opportunity to move to 64bit address + mocs.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33909 >
2025-03-12 09:37:50 +00:00
Lucas Fryzek
f01ad7c34c
anv: Implement VK_EXT_device_memory_report
...
Report device memory events for:
- command buffers
- pipelines
- descriptor sets and descriptor pools
- device memory
Co-authored-by: shenghualin <shenghua.lin@intel.com >
Co-authored-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33767 >
2025-03-04 15:24:39 +00:00
Lucas Fryzek
08483e9bfa
anv: Release correct bo for RT scratch
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33850 >
2025-03-03 20:13:38 +00:00
Lionel Landwerlin
456d691310
anv: move RT stage bits to main header
...
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/33550 >
2025-02-15 18:38:12 +02:00
Lionel Landwerlin
a85717f313
anv: enable vertex fetching component packing
...
DG2 a/b testing:
Borderlands3 -0.55%
Cyberpunk +0.38%
Superposition -0.67%
The shader stats mostly don't look like an improvement :
DG2 shader stats:
Blackops 3:
Totals from 265 (16.44% of 1612) affected shaders:
Instrs: 109055 -> 109080 (+0.02%); split: -0.01%, +0.04%
Cycle count: 6166549 -> 6021371 (-2.35%); split: -2.53%, +0.17%
Cyberpunk 2077:
Totals from 297 (23.50% of 1264) affected shaders:
Instrs: 197305 -> 197297 (-0.00%); split: -0.03%, +0.02%
Cycle count: 3374325 -> 3356562 (-0.53%); split: -1.23%, +0.70%
Fortnite:
Totals from 2090 (27.97% of 7471) affected shaders:
Instrs: 1777944 -> 1781070 (+0.18%); split: -0.01%, +0.18%
Cycle count: 25188758 -> 25162910 (-0.10%); split: -0.86%, +0.76%
Spill count: 1439 -> 1729 (+20.15%); split: -0.69%, +20.85%
Fill count: 1226 -> 1395 (+13.78%); split: -0.82%, +14.60%
Scratch Memory Size: 122880 -> 138240 (+12.50%); split: -1.67%, +14.17%
Hitman 3:
Totals from 490 (9.09% of 5392) affected shaders:
Instrs: 407489 -> 407486 (-0.00%); split: -0.00%, +0.00%
Cycle count: 1831149 -> 1831890 (+0.04%); split: -0.33%, +0.38%
Metro Exodus:
Totals from 4169 (9.68% of 43076) affected shaders:
Instrs: 817730 -> 817726 (-0.00%); split: -0.00%, +0.00%
Cycle count: 4646954 -> 4641559 (-0.12%); split: -0.61%, +0.50%
Xe2 shader stats :
Blackops 3:
Totals from 283 (19.46% of 1454) affected shaders:
Cycle count: 7662980 -> 7916316 (+3.31%); split: -0.38%, +3.69%
Cyberpunk 2077:
Totals from 329 (26.79% of 1228) affected shaders:
Instrs: 203312 -> 203327 (+0.01%); split: -0.01%, +0.02%
Cycle count: 4415812 -> 4434906 (+0.43%); split: -0.69%, +1.12%
Fortnite:
Totals from 1981 (30.18% of 6565) affected shaders:
Instrs: 1709583 -> 1711379 (+0.11%); split: -0.00%, +0.11%
Cycle count: 26882682 -> 26914014 (+0.12%); split: -0.66%, +0.78%
Spill count: 863 -> 1020 (+18.19%)
Fill count: 1195 -> 1271 (+6.36%)
Scratch Memory Size: 116736 -> 122880 (+5.26%)
Hitman 3:
Totals from 540 (10.56% of 5115) affected shaders:
Instrs: 478993 -> 478994 (+0.00%)
Cycle count: 3198740 -> 3198416 (-0.01%); split: -0.27%, +0.26%
Metro Exodus:
Totals from 4554 (12.28% of 37071) affected shaders:
Cycle count: 6460340 -> 6475666 (+0.24%); split: -0.38%, +0.62%
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32418 >
2025-02-13 14:36:15 +00:00
Lionel Landwerlin
a8b84e1898
anv: use A64 messages for push constants loads on Gfx12.5+
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32895 >
2025-02-05 09:56:04 +00:00
Lionel Landwerlin
0808125914
brw/anv: rework push constants for mesh/task shaders
...
Now using the same model as the compute shader.
As a result we temporarily disable the use of the Inline register for
providing push constants on Task & Mesh shaders. Since that register
is also available on the compute shader we'll try to find a way to use
the same mechanism for all 3 shaders in another MR and bring back that
optimization.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32895 >
2025-02-05 09:56:04 +00:00
Lionel Landwerlin
75e09c4ff3
anv: reuse helper for compute push constants
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32895 >
2025-02-05 09:56:03 +00:00
Lionel Landwerlin
6fb2d3b163
anv: limit the memcpy data for push constants
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32824 >
2025-01-02 16:48:04 +00:00
Sagar Ghuge
9002e52037
anv: Implement cmd_dispatch_unaligned callback
...
Rework: (Kevin)
- Calculate correct number of threads in GPGPU thread group based on
SIMD size.
- Instead of round up, just use the simple division and let the
remainder part handle groupCount < local_size_x.
- Drop indirect_unroll_off and fix the bug that we're not using is_unaligned_size_x
Co-authored-by: Kevin Chuang <kaiwenjon23@gmail.com >
Co-authored-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31588 >
2024-12-04 10:41:45 +00:00
Sagar Ghuge
0cab02ca9b
anv: Implement flush_buffer_write_cp callbck
...
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31588 >
2024-12-04 10:41:45 +00:00
Sagar Ghuge
b2cffdb1ed
anv: Implement write_buffer_cp callback
...
Rework: (Kevin)
- Fix pointer arithmatic calculation.
- Add assertion for a 4B alignment
Co-authored-by: Kevin Chuang <kaiwenjon23@gmail.com >
Co-authored-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31588 >
2024-12-04 10:41:45 +00:00
Lionel Landwerlin
6096586893
anv: rework Wa_18038825448 to track state on anv_gfx_dynamic_state
...
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/32372 >
2024-11-27 16:51:57 +00:00
Lionel Landwerlin
c36f7e42a7
anv: remove 3DSTATE_VF_STATISTICS from pipeline
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32329 >
2024-11-26 13:05:29 +00:00
Lionel Landwerlin
ce40a1e05b
anv: remove 3DSTATE_MULTISAMPLE from the pipeline
...
We can make this completely dynamic, there is no information from the
pipeline.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32329 >
2024-11-26 13:05:29 +00:00
Lionel Landwerlin
2b49249a4d
anv: remove 3DSTATE_RASTER from pipeline
...
At a pipeline level, we only put fixed values in this instruction.
Might has well put that in the final emission and avoid :
- store the instruction on the anv_graphics_pipeline
- diff the instructions between pipelines
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: José Roberto de Souza <jose.souza@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32329 >
2024-11-26 13:05:29 +00:00
Nanley Chery
93e42f9700
anv: Store fast-clear colors with the view swizzle
...
Prevents the next patch from failing CTS tests such as:
dEQP-VK.api.image_clearing.core.clear_color_image.*.b4g4r4a4*
Brings back the feature that was introduced in commit 46187bb54f
("anv: Swizzle fast-clear values"), but went unused in commit
721d0c3e77 ("anv,hasvk: Always use BLORP_BATCH_NO_UPDATE_CLEAR_COLOR").
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32187 >
2024-11-18 14:57:46 +00:00
Tapani Pälli
9429c0075b
anv: utilize ray query bo per queue for Wa_14022863161
...
Signed-off-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/31963 >
2024-11-13 04:54:32 +00:00
Nanley Chery
43bc4f4576
anv: Refactor clear color loading functions
...
Rename the functions and update the parameters in preparation for the
next patch.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31743 >
2024-10-28 17:43:21 +00:00
Dylan Baker
bf3b1d8ea9
anv: when handling descriptor sets, layout cannot be NULL if dynamic_offets are used
...
We have no cases where we intentionally pass a NULL layout when dynamic
offsets, and doing so would cause a null dereference. Le't asd an assert
for that.
CID: 1620447
Fixes: f39cd30f4f ("anv: Track all the descriptor sets")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31638 >
2024-10-16 19:54:07 +00:00
Sagar Ghuge
f39cd30f4f
anv: Track all the descriptor sets
...
During compute state save/restore, let's track all the descriptor sets.
Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30798 >
2024-09-26 06:56:21 +00:00
Sviatoslav Peleshko
1904fe1186
anv: Release correct BO in anv_cmd_buffer_set_ray_query_buffer
...
If p_atomic_cmpxchg doesn't set the ray_query_shadow_bos[bucket] to new_bo
allocated by this thread, it returns the bucket BO allocated by the other
thread and we use it. But due to a mistake, we also release that BO, not
the candidate just allocated by this thread and never used again.
Fixes: 5d3e4193 ("anv: enable ray queries")
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/30581 >
2024-08-27 08:26:08 +00:00
Sviatoslav Peleshko
442cc7996e
anv: Assert ray query BO actually exists
...
The crash will happen if the client tries to use ray queries without
enabling the KHR_ray_query extension. Add an assert to be able to catch
this sooner.
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/30581 >
2024-08-27 08:26:08 +00:00
Lionel Landwerlin
e10cbb59a5
anv: add assert to detect problematic instruction merges
...
We stick to a rule in the driver that each field is only set in a
single place in the driver. Therefore when merging instructions, we
should never have any bit set to 1 from both sides.
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/30684 >
2024-08-19 11:02:44 +00:00
Tapani Pälli
7a4020e129
anv: implement workaround for Wa_18038825448
...
Description states that we need to enable PS_EXTRA state
EnablePSdependencyonCPsizechange whenever PixelShaderIsPerCoarsePixel
state changes.
Signed-off-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/30475 >
2024-08-09 07:30:03 +03:00