Samuel Pitoiset
d4bce9508b
radv: use common GetBufferMemoryRequirements2()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22047 >
2023-03-22 07:50:04 +00:00
Alyssa Rosenzweig
968c5c6334
radv: Use umod_imm
...
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22010 >
2023-03-22 06:18:18 +00:00
David Heidelberg
7dcd02bd32
aco: drop leftover variable
...
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8652
Fixes: 44fdd2ebcb ("aco: end reduce tmp after control flow, when used within control flow")
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22011 >
2023-03-22 03:39:56 +00:00
Samuel Pitoiset
cb5701eed9
radv: implement VK_KHR_map_memory2
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22032 >
2023-03-21 23:08:03 +00:00
Samuel Pitoiset
cd59db8c46
radv: pass radv_shader to radv_shader_need_indirect_descriptor_sets()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:13 +00:00
Samuel Pitoiset
0d95660a03
radv: pass radv_ray_tracing_pipeline to radv_rt_pipeline_compile()
...
The base.base is redundant but this will allow us to move the shaders
array out of radv_pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:13 +00:00
Samuel Pitoiset
88137cd710
radv: rework dumping shaders when a GPU hang is reported
...
Preliminary work for moving the shaders array outside of radv_pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:13 +00:00
Samuel Pitoiset
444c5887c2
radv: pass radv_shader to radv_dump_shader_stats()
...
Preliminary work for moving the shaders array outside of radv_pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:13 +00:00
Samuel Pitoiset
0514c015e6
radv: use a separate compute path in radv_flush_constants()
...
radv_get_shader() will be a radv_graphics_pipeline only function.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:12 +00:00
Samuel Pitoiset
e7bbd610b8
radv: pass shader/base_reg to radv_emit_userdata_address()
...
Preliminary work for moving the shaders array outside of radv_pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:12 +00:00
Samuel Pitoiset
1e3cac8d5e
radv: pass shader/base_reg to radv_emit_inline_push_consts()
...
Preliminary work for moving the shaders array outside of radv_pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:12 +00:00
Samuel Pitoiset
c2e71729af
radv: pass shader/base_reg to radv_emit_descriptor_pointers()
...
Preliminary work for moving the shaders array outside of radv_pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:12 +00:00
Samuel Pitoiset
d7c5b6fb94
radv: replace radv_lookup_user_sgpr() by radv_get_user_sgpr()
...
radv_get_user_sgpr() no longer relies on radv_pipeline which is
another step for moving the shaders array outside of it.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:12 +00:00
Samuel Pitoiset
4066e3a951
radv: stop using radv_get_shader_shader() for task shaders
...
radv_get_shader() should only be used for VS or TES, no need to add
another indirection for task shaders. While we are at it, rename
compute_shader to task_shader.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21878 >
2023-03-21 20:36:12 +00:00
Timur Kristóf
d044eeb658
ac/nir/ngg: Rename repacked variables to clarify their name.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
5b50b9631c
ac/nir/ngg: Create separate variable for repacked rel_patch_id.
...
This should be handled separately from the other repacked
variables, because it doesn't use a dword.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
30ce47cc00
ac/nir/ngg: Remove some superfluous variables.
...
These mostly existed because of the long name of the state variable
and are not really necessary.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
c22f9442f6
ac/nir/ngg: Rename state variables to "s".
...
It was a bad idea to give them a long name, let's correct it.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
0068dbee96
ac/nir/ngg: Move divergence analysis call to analyze_shader_before_culling.
...
It actually belongs there.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
a0a341f644
ac/nir/ngg: Split some functions out of save_reusable_variables.
...
To make the function a little easier to read and understand.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
091dffdfc9
ac/nir/ngg: Rename saved_uniform to reusable_nondeferred_variable.
...
We are planning to reuse more than just uniforms later,
hence let's clarify the name of these.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Timur Kristóf
c904c7dbf1
ac/nir/ngg: Remove usused lds_es enum values.
...
These were meant to explain the LDS layout, but
the actual LDS usage is better explained by:
ngg_nogs_get_culling_pervertex_lds_size().
Also add some comments there.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21995 >
2023-03-21 15:47:32 +00:00
Pierre-Eric Pelloux-Prayer
3f272fd15e
ac/llvm: fix build with LLVM 17
...
This builds with LLVM 12 -> 17 and a running a simple app seems to work.
I couldn't test LLVM 11 because meson fails with:
Looking for a fallback subproject for the dependency llvm (modules:
bitwriter, engine, mcdisassembler, mcjit, core, executionengine,
scalaropts, transformutils, instcombine, amdgpu, bitreader, ipo, native)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8297
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22021 >
2023-03-21 15:05:25 +00:00
Samuel Pitoiset
5082b6b034
radv: add support for caching PS epilogs
...
For PS epilogs created at link time because libraries are still not
cached.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
228afe1a2f
radv: make radv_shader_part_create() non-static
...
It will be used when creating shaders from the cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
83c20b95dd
radv: allow to return the PS epilog binary to the pipeline
...
To add it to the shaders cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
eba315d2bf
radv: upload prologs/epilogs as part of radv_shader_part_create()
...
Don't need to duplicate this code.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
aa15d64949
radv: store the total radv_shader_part_binary size
...
Similar to radv_shader. This will be used for the shaders cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:59 +00:00
Samuel Pitoiset
aec9fd394f
radv: store spi_shader_col_format to radv_shader_part_binary
...
For PS epilogs in the cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:58 +00:00
Samuel Pitoiset
a455e0c99f
radv: stop storing the binary as part of radv_shader_part
...
It's unnecessary to keep a pointer to the binary.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:58 +00:00
Samuel Pitoiset
2803b786f0
radv: remove set but never used num_preserved_sgprs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897 >
2023-03-21 13:53:58 +00:00
Samuel Pitoiset
f2aa0e80a0
radv: enable fullyCoveredFragmentShaderInputVariable on GFX9+
...
For vkd3d-proton Tier 3.
It's passing CTS and vkd3d-proton tests.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8311
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
8e84251cc7
radv: implement fullyCoveredFragmentShaderInputVariable
...
1 means INNER_COVERAGE.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
ebbb0d3f1b
radv: enable SAMPLE_COVERAGE_ENA if the fully covered built-in is used
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Samuel Pitoiset
2a02f567aa
radv: lower nir_intrinsic_load_fully_covered
...
The sample coverage VGPR input would be the inner coverage and 0 means
it's uncovered.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21497 >
2023-03-21 08:44:09 +00:00
Benjamin Cheng
e57caf9893
radv: initialize cmd_buffer upload list earlier
...
When cs allocation fails in radv_create_cmd_buffer,
radv_destroy_cmd_buffer is called before returning
VK_ERROR_OUT_OF_HOST_MEMORY. At that point, the upload list is not
initalized yet, so SIGSEGV will occur when trying to iterate through the
upload bo list. Initialize the upload list earlier to avoid this.
Signed-off-by: Benjamin Cheng <ben@bcheng.me>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22016 >
2023-03-21 08:06:24 +00:00
Lang Yu
19b89c8077
amd/common: fix a typo
...
Fixes: 35f053ba8c ("radv: Fix corrupted mipmap copies on GFX9+")
Signed-off-by: Lang Yu <lang.yu@amd.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22000 >
2023-03-20 20:30:32 +00:00
Konstantin Seurer
deb537de3c
radv/rt: Handle load_constant instructions when inlining shaders
...
Fixes the following tests:
dEQP-VK.ray_query.builtin.rayqueryterminate.ahit.aabbs,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.ahit.triangles,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.call.aabbs,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.call.triangles,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.chit.aabbs,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.chit.triangles,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.miss.aabbs,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.miss.triangles,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.rgen.aabbs,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.rgen.triangles,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.sect.aabbs,Fail
dEQP-VK.ray_query.builtin.rayqueryterminate.sect.triangles,Fail
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8647
Fixes: fda262f ("radv/rt: move Ray Tracing shader creation into separate file")
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22002 >
2023-03-20 19:04:34 +00:00
Samuel Pitoiset
d750ad19fd
radv: fix NGG streamout with VS and GPL on GFX11
...
With GPL it's not possible to know the primitive topology when
compiling the pre-rasterization stages. For NGG, we use the maximum
number of vertices per prim and rely on the hardware to ignore the
extra bits for points/lines.
Though, this can't work for NGG streamout because the number of
vertices per prim is used to compute a streamout offset. The only
way to solve this is to pass the number of vertices per prim through
a new user SGPR.
This fixes a bunch of streamout tests with Zink/RADV on GFX11.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21833 >
2023-03-20 17:47:03 +00:00
Samuel Pitoiset
0badfd8b20
radv: add helpers for destroying various pipeline types
...
Much cleaner than having a single function for everything.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21894 >
2023-03-20 13:56:32 +00:00
Samuel Pitoiset
abfdc06b01
radv: rename RADV_PIPELINE_LIBRARY to RADV_PIPELINE_RAY_TRACING_LIB
...
This seems more consistent with graphics pipeline libraries and it
avoids any confusion.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21894 >
2023-03-20 13:56:32 +00:00
Oleksii Bozhenko
bbde684ca0
ci: Uprev Piglit
...
Signed-off-by: Oleksii Bozhenko <oleksii.bozhenko@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21810 >
2023-03-20 04:19:23 +00:00
Konstantin Seurer
0f18bb4076
radv: Fix inserting stack_size into the cache
...
Fixes: 3e03fe4 ("radv/rt: move stack_sizes into radv_ray_tracing_module")
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21969 >
2023-03-18 14:57:51 +00:00
Konstantin Seurer
3887f64dc3
radv: Fix loading stack_size from the cache
...
Fixes: 3e03fe4 ("radv/rt: move stack_sizes into radv_ray_tracing_module")
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21969 >
2023-03-18 14:57:51 +00:00
Tatsuyuki Ishi
22d6556a4b
radv: Fix missing wait of GS copy shader upload for dmashaders.
...
Fixes: 0cde42a506 ("radv: Wait for shader uploads asynchronously.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21985 >
2023-03-18 03:04:15 +00:00
Marek Olšák
6eddc6dd5a
ac/nir: use plural correctly in the ac_nir_export_parameters name
...
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21920 >
2023-03-17 23:58:28 +00:00
Marek Olšák
3626bc2daa
ac/nir: don't emit duplicated parameter exports
...
Can you spot the problem?
exp param0 v6, v5, v5, v5
exp param1 v7, off, off, off
exp param1 v7, off, off, off
radeonsi uses ac_nir_optimize_outputs to eliminate output stores with
identical SSA defs (i.e. duplicated), which then causes 2 outputs to
map to the same parameter export.
This is a regression. The old LLVM code was correctly emitting each
export only once. vs_output_param_mask was supposed to be used for
this instead of vs_output_param_offset.
Fixes: 80506be31b - ac/nir/ngg,radv,radeonsi: nogs use ac_nir_export_(position|parameter)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21920 >
2023-03-17 23:58:28 +00:00
Martin Roukala (né Peres)
d3c1cc9261
radv/ci: update VanGogh's expectations
...
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21983 >
2023-03-17 22:27:01 +00:00
Rhys Perry
596f2ef361
aco: set needs_flat_scr=true for RT
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Fixes: 39c828cb9f ("aco: remove aco::rt_stack variable")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21961 >
2023-03-17 16:55:57 +00:00
Rhys Perry
184cf1cb79
aco/gfx11: fix RT prolog scratch initialization
...
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Fixes: 6446b79168 ("aco: implement select_rt_prolog()")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21961 >
2023-03-17 16:55:57 +00:00