Samuel Pitoiset
03d2bd6042
radv: ensure to retain NIR shaders for GPL libs found in the cache
...
Even if we are able to get the assembly from the shaders cache for
graphics pipeline libraries, we still need to retain NIR shaders in
case the LTO pipelines won't be find in the cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22264 >
2023-04-04 14:47:39 +00:00
Samuel Pitoiset
5e62d8d1bd
radv: add VkGraphicsPipelineLibraryFlag to the graphics pipeline key
...
This is to generate a different key for a library created with
FRAGMENT_SHADER_BIT and no FS (ie. it would generate a noop FS) and
a library created with FRAGMENT_OUTPUT_INTERFACE with no CB attachments.
Otherwise, the same key would be generated and this would corrupt
the cache.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22264 >
2023-04-04 14:47:39 +00:00
Samuel Pitoiset
47c0820dc7
radv: remove dead code in radv_pipeline_get_nir()
...
We either import the NIR or the assembly, so this was never reached.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22264 >
2023-04-04 14:47:39 +00:00
Samuel Pitoiset
f8558d1fb5
radv: configure PA_SC_MODE_CNTL_1 during cmdbuf recording
...
Two graphics pipeline parameters need to be copied to the cmdbuf
state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22218 >
2023-03-31 16:07:11 +00:00
Samuel Pitoiset
66da73e863
radv: set PS_ITER_SAMPLE(1) for sample shading during cmdbuf recording
...
This shouldn't be configured in the pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22218 >
2023-03-31 16:07:11 +00:00
Samuel Pitoiset
56b98bb36d
radv: add dynamic support for rectangles enable/mode
...
This is in VK_EXT_discard_rectangles version 2.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21360 >
2023-03-31 07:59:18 +00:00
Samuel Pitoiset
bc39fa9500
radv: rework emitting inner coverage when a fragment shader is bound
...
To stop relying on the pipeline. The state is now flagged when a new
fragment shader with a different inner coverage setting is bound.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22194 >
2023-03-30 11:43:06 +00:00
Samuel Pitoiset
5231643900
radv: remove radv_graphics_pipeline::vb_desc_alloc_size
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22192 >
2023-03-30 11:21:19 +00:00
Samuel Pitoiset
b2ac40e734
radv: remove radv_graphics_pipeline::vb_desc_usage_mask
...
Use the VS shader info instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22192 >
2023-03-30 11:21:19 +00:00
Samuel Pitoiset
c7784f1409
radv: remove radv_graphics_pipeline::can_use_simple_input
...
Use the VS shader info instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22192 >
2023-03-30 11:21:19 +00:00
Samuel Pitoiset
53b2b30d0b
radv: remove radv_graphics_pipeline::next_vertex_stage
...
Use the active stages bitfield instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22192 >
2023-03-30 11:21:18 +00:00
Samuel Pitoiset
f224e9f1a5
radv: remove radv_graphics_pipeline::last_vertex_attrib_bit
...
Use the VS shader info instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22192 >
2023-03-30 11:21:18 +00:00
Samuel Pitoiset
99bca4cb50
radv: remove radv_graphics_pipeline::use_per_attribute_vb_descs
...
Use the VS shader info instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22192 >
2023-03-30 11:21:18 +00:00
Samuel Pitoiset
d147cf5a56
radv: use serialized NIR for graphics libs with the RETAIN flag
...
Cloning NIR shaders consumes too much RAM and this can easily explode
in memory for games that create a ton of graphics libraries. Using
serialized NIR shaders help considerably.
This reduces RAM usage in dota2 with GPL from 3GiB to 400MiB.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22143 >
2023-03-30 09:02:20 +00:00
Timur Kristóf
c0692dbfab
radv: Move I/O lowering functions into a new file.
...
Also ran clang-format on the affected code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21971 >
2023-03-30 05:59:13 +00:00
Timur Kristóf
90bf9ed759
radv: Move radv_nir_export_multiview to new file.
...
Also ran clang-format on the affected code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21971 >
2023-03-30 05:59:13 +00:00
Timur Kristóf
685dcecb57
radv: Move radv_nir_lower_viewport_to_zero to new file.
...
Also ran clang-format on the affected code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21971 >
2023-03-30 05:59:13 +00:00
Timur Kristóf
67de4b54fe
radv: Move radv_nir_lower_view_index to new file.
...
Also ran clang-format on the affected code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21971 >
2023-03-30 05:59:13 +00:00
Timur Kristóf
87e7dfb5f8
radv: Move radv_nir_lower_fs_intrinsics to new file.
...
Also ran clang-format on the affected code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21971 >
2023-03-30 05:59:12 +00:00
Timur Kristóf
1978eaf5b2
radv: Move radv_nir_* to a new folder.
...
Also ran clang-format on the affected code.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21971 >
2023-03-30 05:59:12 +00:00
Samuel Pitoiset
0e81ec98ce
radv: move user_data_0 to the shader info pass
...
Using the next stage is enough to determine the base reg.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22128 >
2023-03-29 10:18:24 +00:00
Samuel Pitoiset
dd855c7772
radv: determine and store the next graphics stage to radv_shader_info
...
This will be useful in many cases.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22128 >
2023-03-29 10:18:24 +00:00
Samuel Pitoiset
0fbe0c4d1b
radv: stop using last_vgt_api_stage_{locs} during cmdbuf recording
...
Use the last VGT shader instead.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22128 >
2023-03-29 10:18:24 +00:00
Samuel Pitoiset
59a2a4f87f
radv: pass a shaders array to radv_get_shader()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22128 >
2023-03-29 10:18:24 +00:00
Samuel Pitoiset
84faaca38a
radv: stop using the pipeline for emitting shaders
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
8f9b0088ab
radv: pass the ES shader to radv_pipeline_emit_hw_ngg()
...
This allows to remove the radv_pipeline dependency.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
69da185793
radv: use the ES type to apply a workaround for NGG on GFX10
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
73ac2a22ec
radv: use the shader info stage to simplify emitting NGG shaders
...
Instead of relying on the pipeline.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
09d713ee53
radv: stop using the pipeline for emitting PS inputs
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
168f282908
radv: add radv_get_last_vgt_shader() helper
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
5c3c80be45
radv: emit the GS copy shader outside of radv_pipeline_emit_hw_gs()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
d071e36851
radv: stop using get_vs_output_info() when emitting VS/NGG shaders
...
It's always the current shader outinfo struct.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22095 >
2023-03-29 02:20:50 +00:00
Samuel Pitoiset
e61d68ac8a
radv: move {esgs,gsvs}_ring_size to radv_legacy_gs_info
...
To update the ring info when a geometry shader is bound.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22134 >
2023-03-27 18:54:50 +00:00
Samuel Pitoiset
c1c8aa49c8
radv: rename gfx9_gs_info to radv_legacy_gs_info
...
This was misleading because it's also needed on GFX6-8.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22134 >
2023-03-27 18:54:50 +00:00
Samuel Pitoiset
66fec16238
radv: add DI_PT_RECTLIST to si_conv_prim_to_gs_out()
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22105 >
2023-03-27 17:29:02 +00:00
Samuel Pitoiset
8f6998ad8a
radv: separate the sample shading state between FS and graphics pipeline
...
Sample shading can be enabled inside the fragment shader and also
per-pipeline. Separate both cases to be able to enable sample shading
by only binding a FS.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22110 >
2023-03-27 09:29:12 +00:00
Samuel Pitoiset
774e055823
radv: move uses_user_sample_locations to radv_multisample_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22110 >
2023-03-27 09:29:11 +00:00
Samuel Pitoiset
4dc40c3b64
radv: move radv_meta_* to a new folder
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22046 >
2023-03-27 06:27:49 +00:00
Daniel Schürmann
56b6ca411f
radv/rt: Fix VK_KHR_pipeline_executable_properties
...
We don't provide executable properties for the prolog shader.
Fixes: f123d65e9f
('radv/rt: use prolog for raytracing shaders')
Fixes: dEQP-VK.pipeline.monolithic.shader_module_identifier.pipeline_from_id.ray_tracing_libs.*
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22111 >
2023-03-24 19:50:46 +00:00
Daniel Schürmann
3806cd83f2
radv: skip pipeline caching with RADV_DEBUG=shaders
...
in order to create reproducible cache entries.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22029 >
2023-03-24 19:03:29 +00:00
Daniel Schürmann
5051980ff8
radv: remove radv_create_gs_copy_shader()
...
We can replace the call with radv_shader_nir_to_asm().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22029 >
2023-03-24 19:03:29 +00:00
Samuel Pitoiset
879ddf9720
radv: rework binding shaders to cmdbuf by introducing new helpers
...
For future work.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22101 >
2023-03-24 16:21:49 +00:00
Samuel Pitoiset
af1bc7f4ce
radv: remove radv_pipeline::device completely
...
This is unecessary and this prevents using a ton of functions without
a radv_pipeline object.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22090 >
2023-03-24 13:48:40 +00:00
Samuel Pitoiset
d07c81d87e
radv: move cs_regalloc_hang_bug to radv_shader_info
...
This is more like a shader property.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22102 >
2023-03-24 12:43:51 +00:00
Timur Kristóf
500f3e0bde
radv: Use PRIM_ATTR for PS inputs on GFX11.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21409 >
2023-03-23 11:49:35 +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
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
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
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
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