Qiang Yu
531acf548a
ac/llvm: move ac_fixup_ls_hs_input_vgprs to amd common
...
To be shared with radeonsi.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22045 >
2023-04-03 01:35:06 +00:00
Qiang Yu
297f97a42b
ac/llvm: vs_rel_patch_id can also be fixed up
...
It's currently used when LS store output to LDS.
The LS/HS bug fix seems does not affect this case.
But we'd better treat it as other fixed args.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22045 >
2023-04-03 01:35:06 +00:00
Qiang Yu
003d84b660
ac/nir: add ac_nir_load_arg_at_offset
...
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22045 >
2023-04-03 01:35:06 +00:00
Timur Kristóf
4de9a4b2b8
ac/nir: When task->mesh dispatch Y or Z are 0, also set X to 0.
...
AMD recommends doing this to speed up the CP when it processes
the draw ring entries. LLPC also does this.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22211 >
2023-04-01 14:46:50 +00:00
Timur Kristóf
4683b21399
ac/nir: Store only lowest 8 bits for task draw ring DWORD3.
...
When writing the draw ready bit, don't write the high 24 bits
of DWORD3, because that is used by the HW for something else
according to LLPC.
Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22211 >
2023-04-01 14:46:50 +00:00
Rhys Perry
6974e5479c
aco: fix nir_var_shader_out barriers for task shaders
...
These will be used in a future commit.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22211 >
2023-04-01 14:46:50 +00:00
Rhys Perry
0f60c18f29
aco: don't optimize s_or_b64(v_cmp_u_f32(a, b), cmp(a, a))
...
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/22214 >
2023-03-31 19:41:54 +00:00
Konstantin Seurer
7b837531e8
radv/ci: Update ray tracing pipeline fail/skip lists
...
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22018 >
2023-03-31 19:05:17 +00:00
Samuel Pitoiset
e98aded527
radv: fix binding raytracing/compute pipelines
...
If a compute pipeline is bound after a raytracing pipeline, the
computes shader slot (aka RT prolog) will be overwritten.
To fix this, move the RT prolog outside of the compute shader slot.
Fixes: d109362a3d ("radv: copy bound shaders to the cmdbuf state")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22235 >
2023-03-31 18:29:05 +00:00
Samuel Pitoiset
56493a5f8a
radv: add the raygen shader BO to the cmdbuf list
...
Found by inspection.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22235 >
2023-03-31 18:29:05 +00:00
Timur Kristóf
115958b6f0
ac/nir/ngg: Slightly improve attribute ring offset calculation.
...
Inspired by Nicolai Hähnle's commit in LLPC.
Instead of using a SALU instruction to add to the scalar
offset, rely on the buffer swizzling and use constant offset.
Fossil DB stats on GFX1100:
Totals from 47910 (35.51% of 134913) affected shaders:
CodeSize: 87927612 -> 86968136 (-1.09%)
Instrs: 17584007 -> 17440094 (-0.82%)
Latency: 97232173 -> 97126311 (-0.11%)
InvThroughput: 9904586 -> 9905288 (+0.01%); split: -0.02%, +0.02%
VClause: 544430 -> 542566 (-0.34%)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22227 >
2023-03-31 17:02:17 +00:00
Timur Kristóf
61003e3600
radv: Use radv_get_shader to get vertex shader when binding pipeline.
...
The shaders[MESA_SHADER_VERTEX] can be NULL for merged shaders.
Fixes: b2ac40e734
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8749
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/22229 >
2023-03-31 16:42: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
b750fe4c6a
radv: copy db_render_control to the cmdbuf state
...
This register is only used for meta operations.
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
Faith Ekstrand
b16cfe23ef
vulkan,anv,hasvk,radv: Unify Android hardware buffer creation
...
Reviewed-by: Lina Versace <lina@kiwitree.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Faith Ekstrand
d75f797246
radv: Set vk_image.ahardware_buffer_format
...
Reviewed-by: Lina Versace <lina@kiwitree.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Faith Ekstrand
41f88be282
vulkan,anv,hasvk,radv: Add a common vk_image_usage_to_ahb_usage helper
...
Reviewed-by: Lina Versace <lina@kiwitree.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22038 >
2023-03-31 14:57:03 +00:00
Friedrich Vock
b8ee90188b
radv: Work around use-after-free compiler errors
...
Fixes: 4dafb69d ("radv/rt: defer library_pipeline allocation")
Tested-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21981 >
2023-03-31 08:52:16 +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
552f877b2d
radv: fix sample shading when a new fragment shader is bound
...
Sample shading can be enabled from the pipeline and from the fragment
shader, in that case we need to re-emit some states.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22215 >
2023-03-31 07:09:15 +00:00
Konstantin Seurer
f6147051e2
radv: Stop counting user SGPRS separately
...
Renames radv_declare_shader_args to declare_shader_args and runs it
twice to first gather the user SGPR count without push constants and
descriptor sets.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22119 >
2023-03-30 21:52:03 +00:00
Konstantin Seurer
0c915ba501
radv: Set user SGPR locations when declaring args
...
Merge shader arg declaration with setting up the user data locations.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22119 >
2023-03-30 21:52:03 +00:00
Samuel Pitoiset
373c6346f5
radv: add push constant state to the cmdbuf state
...
Push constants are handled per bind point internally. Using a separate
structure in the cmdbuf state would allow us to update it easily
without relying on bound pipelines.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22209 >
2023-03-30 20:41:23 +00:00
Samuel Pitoiset
a0baefa033
radv: copy need_indirect_descriptor_sets to radv_cmd_state
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22209 >
2023-03-30 20:41:23 +00:00
Samuel Pitoiset
eeefe18f05
radv: add a helper to convert a VkPipelineBindPoint
...
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22209 >
2023-03-30 20:41:23 +00:00
Konstantin Seurer
816f434efc
radv/rq: Rematerialize inv_dir before proceed
...
Helps with register pressure.
Quake II RTX:
Totals from 7 (14.29% of 49) affected shaders:
VGPRs: 688 -> 672 (-2.33%)
CodeSize: 167496 -> 167560 (+0.04%); split: -0.01%, +0.05%
MaxWaves: 70 -> 72 (+2.86%)
Instrs: 31716 -> 31760 (+0.14%); split: -0.02%, +0.16%
Latency: 385343 -> 386040 (+0.18%); split: -0.01%, +0.19%
InvThroughput: 78878 -> 78045 (-1.06%); split: -1.22%, +0.17%
VClause: 596 -> 600 (+0.67%)
Copies: 4774 -> 4747 (-0.57%); split: -0.98%, +0.42%
PreVGPRs: 617 -> 592 (-4.05%)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20469 >
2023-03-30 18:15:11 +00:00
Samuel Pitoiset
15f1d5cc8f
radv: copy ia_multi_vgt_param to the cmdbuf state
...
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
0daffade14
radv: copy uses_{drawid,baseinstance} to the cmdbuf state
...
As well as the vertex user sgpr info. This also needs to be copied
for merged shaders (ie. VS+TCS).
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
8fd915098d
radv: copy rast_prim to the cmdbuf state
...
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
6ee8d33ef4
radv: add a helper that returns the current rasterized primitive
...
For tess/geom/mesh the rasterized primitive is part of the shader
info and primitive topology should be ignored.
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
b0a007583d
radv: copy custom blend mode to the cmdbuf state
...
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
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
2b1a0c0a29
radv: adjust vb_desc_usage_mask for dynamic VS inputs in the info pass
...
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
d87c813da1
aco: remove unused aco_shader_info::vb_desc_usage_mask
...
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
93e4382438
radv, ac/nir: Move sin/cos lowering to a common pass.
...
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
1e2a5858f4
radv: Move radv_nir_lower_intrinsics_early 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
838defc5eb
radv: Move radv_nir_lower_primitive_shading_rate 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