summaryrefslogtreecommitdiff
path: root/src/amd/vulkan/radv_shader_info.c
AgeCommit message (Collapse)AuthorFilesLines
2022-01-19mesa/*: use an internal enum for tessellation primitive types.Dave Airlie1-1/+1
To avoid dragging gl.h into places it has no business being, defined tessellation primitive mode to an enum. This has a lot of fallout all over the place. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14605>
2022-01-12radv: Use 16-bits to store push constant indices.Bas Nieuwenhuizen1-1/+1
Otherwise things horrible go wrong when we get 256 bytes of push constants. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14485>
2022-01-05ac: move ac_exp_param.h to ac_nir.hMarek Olšák1-1/+1
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14266>
2022-01-04radv: Note when a mesh shader writes the primitive shading rate.Timur Kristóf1-2/+8
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14193>
2021-12-31radv: Add support for per-primitive mesh shader outputs.Timur Kristóf1-11/+43
Generic per-primitive outputs: They work similarly to other NGG outputs. In the ISA they are param export instructions that are executed on the primitive threads. These per-primitive params must be sorted last among both mesh shader outputs and pixel shader inputs. PS can read these inputs using the same old VINTRP instructions. They use the same amount of LDS space as per-vertex PS inputs. Special per-primitive outputs: The VRS rate x, y, viewport and layer are special per-primitive outputs which must go to the second channel of the primitive export instruction, which is enabled by EN_PRIM_PAYLOAD. If the PS wants to read these, they must also be exported as a generic param. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>
2021-12-31radv: Cleanup VS output param assignment.Timur Kristóf1-39/+41
Makes the code a little cleaner, and makes it easier to add per-primitive PS inputs. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>
2021-12-31radv: Add mesh shader specific info.Timur Kristóf1-0/+5
Use the same old outinfo structure as other NGG shaders. Additionally, store the output primitive type. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13580>
2021-12-03radv: Use util_widen_mask.Timur Kristóf1-10/+1
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/14005>
2021-10-18radv: fix OpImageQuerySamples with non-zero descriptor setSamuel Pitoiset1-1/+2
The descriptor set was always 0 because it wasn't gathered by the shader info pass. This fixes CPU crashes with arb_shader_texture_image_samples-builtin-image and Zink. Cc: 21.3 mesa-stable Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13411>
2021-10-13radv: implement dynamic vertex input state using vertex shader prologsRhys Perry1-1/+12
This doesn't actually use the functionality or implement prolog compilation yet. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11717>
2021-10-12radv: stop gathering output GS info for vertex shadersSamuel Pitoiset1-2/+0
This has no effect. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13243>
2021-10-12radv: rename needs_multiview_view_index to uses_view_indexSamuel Pitoiset1-1/+1
To avoid confusion with radv_pipeline_key::has_multiview_view_index. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13243>
2021-10-12radv: remove no-op about the view index in the shader info passSamuel Pitoiset1-2/+0
The view index is always lowered to map the layer ID for fragment shaders. This was never reached. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13243>
2021-10-12radv,aco: remove nir_intrinsic_load_layer_idSamuel Pitoiset1-4/+0
This was never used because the layer ID isn't a system value. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13243>
2021-10-08radv,aco: compute and store the SPI PS input in radv_shader_infoSamuel Pitoiset1-0/+2
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13192>
2021-10-08radv: gather more information about PS in the shader info passSamuel Pitoiset1-11/+48
To compute the PS SPI inputs. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13192>
2021-10-04radv: get the float controls execution mode from NIR for LLVMSamuel Pitoiset1-2/+0
No need to duplicate it. Though, I think it was already broken for merged shaders, but it doesn't matter. No CTS regressions anyways with LLVM. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12989>
2021-10-01radv: determine the VS output parameters in the shader info passSamuel Pitoiset1-7/+74
This can be determined earlier instead of duplicating code in both compiler backends. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13119>
2021-09-29radv: remove radv_shader_variant_key completelySamuel Pitoiset1-1/+1
Die radv_shader_variant_key, die! Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13085>
2021-09-29radv: stop using vs_common_out.{as_es/as_ls/as_ngg*} shader keysSamuel Pitoiset1-15/+7
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13085>
2021-09-29radv: pass the pipeline key to the shader info passSamuel Pitoiset1-5/+6
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13085>
2021-09-29radv: remove vs_common_out:export_clip_distsSamuel Pitoiset1-18/+0
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13085>
2021-09-28radv: remove vs_common_out:export_prim_idSamuel Pitoiset1-13/+0
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062>
2021-09-28radv: remove unnecessary init of outinfo.export_prim_id for GSSamuel Pitoiset1-3/+0
When a geometry shader is present, not writing the gl_PrimitiveID is undefined, so this is unnecessary. Note that this was never reached on <= GFX8 because vs_common_out.export_prim_id from the GS key was always FALSE. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062>
2021-09-28radv: remove unnecessary radv_shader_info:{vs,tes}.export_prim_idSamuel Pitoiset1-2/+0
Use the VS outputinfo struct instead. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13062>
2021-09-28radv: remove unnecessary vs_common_out.export_layer_idSamuel Pitoiset1-17/+0
Same as the viewport index, the driver will emit 0 for the PS input in this case. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13061>
2021-09-28radv: remove unnecessary vs_common_out.export_viewport_indexSamuel Pitoiset1-17/+0
This was only used when the FS needs the viewport index if it's not exported by the previous stage. Though, this is actually useless because the driver will emit 0 for the PS input in this case. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13061>
2021-09-24radv: add export_clip_dists for VS and TES to radv_shader_infoSamuel Pitoiset1-0/+17
To be able to remove radv_vs_out_key entirely. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13028>
2021-09-21radv: Add support for ray launch size.Bas Nieuwenhuizen1-0/+3
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12592>
2021-07-27radv: implement VK_EXT_shader_atomic_float2Samuel Pitoiset1-1/+9
Some floating atomic instructions are not available on GFX8-9. No LLVM support. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12060>
2021-06-08nir: Move workgroup_size and workgroup_variable_size into common shader_infoCaio Marcelo de Oliveira Filho1-1/+1
Move it out the "cs" sub-struct, since these will be used for other shader stages in the future. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11225>
2021-06-07nir: Rename WORK_GROUP (and similar) to WORKGROUPCaio Marcelo de Oliveira Filho1-3/+3
Be consistent with other usages in Vulkan and SPIR-V, and the recently added workgroup_size field. Acked-by: Emma Anholt <emma@anholt.net> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11190>
2021-06-07compiler: Rename local_size to workgroup_sizeCaio Marcelo de Oliveira Filho1-1/+1
Acked-by: Emma Anholt <emma@anholt.net> Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Acked-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11190>
2021-05-18radv: Add sbt descriptors user SGPR input.Bas Nieuwenhuizen1-0/+3
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9767>
2021-05-10radv,aco: use per-attribute vertex descriptors for robustnessRhys Perry1-5/+14
We have to use a different num_records for each attribute to correctly implement robust buffer access. fossil-db (GFX10.3, robustBufferAccess enabled): Totals from 60059 (41.06% of 146267) affected shaders: VGPRs: 2169040 -> 2169024 (-0.00%); split: -0.02%, +0.02% CodeSize: 79473128 -> 81156016 (+2.12%); split: -0.00%, +2.12% MaxWaves: 1635360 -> 1635258 (-0.01%); split: +0.00%, -0.01% Instrs: 15559040 -> 15793205 (+1.51%); split: -0.01%, +1.52% Latency: 90954792 -> 91308768 (+0.39%); split: -0.30%, +0.69% InvThroughput: 14937873 -> 14958761 (+0.14%); split: -0.04%, +0.18% VClause: 444280 -> 412074 (-7.25%); split: -9.22%, +1.97% SClause: 588545 -> 644141 (+9.45%); split: -0.54%, +9.99% Copies: 1010395 -> 1011232 (+0.08%); split: -0.44%, +0.53% Branches: 274279 -> 274282 (+0.00%); split: -0.00%, +0.00% PreSGPRs: 1431171 -> 1405056 (-1.82%); split: -2.89%, +1.07% PreVGPRs: 1575253 -> 1575259 (+0.00%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7871>
2021-04-10radv: Format.Bas Nieuwenhuizen1-612/+585
Using find ./src/amd/vulkan -regex '.*/.*\.\(c\|h\|cpp\)' | xargs -P8 -n1 clang-format --style=file -i Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10091>
2021-03-31radv: track whether gl_BaseInstance is usedMike Blumenkrantz1-1/+6
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8788>
2021-03-22radv: determine if a pipeline is candidate for flat shadingSamuel Pitoiset1-0/+14
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9515>
2021-03-22radv: gather if the FS uses perspective or linear interpolationsSamuel Pitoiset1-1/+21
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9515>
2021-03-22radv: restore previous MRT CB_SHADER_MASK logicSamuel Pitoiset1-29/+0
It was moved to the shader info pass to compute MRTs from the shader outputs to fix some CTS failures but this is actually unnecessary. The CTS failures were actually CTS bugs. This reverts 70cc80805ce ("radv: compute CB_SHADER_MASK from the fragment shader outputs") and 76ee45d3a88 ("radv: adjust CB_SHADER_MASK for dual-source blending in the shader info pass"). Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9703>
2021-01-06nir,spirv: add sparse image loadsRhys Perry1-0/+1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7774>
2020-12-14radv: implement VK_KHR_fragment_shading_rateSamuel Pitoiset1-0/+6
Only supported on GFX10.3+. Attachment Fragment Shading Rate is for later. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7837>
2020-12-07radv: fix using FS sample shading if the linker optimized inputs awaySamuel Pitoiset1-12/+1
During NIR linking, constant varyings might be moved to the next stage and the sample qualifier removed. shader_info::uses_sample_shading remembers if the sample qualifier was used before optimizations. No fossils-db changes on Sienna Cichlid. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7892>
2020-10-12radv: remove one leftover TODO in the shader info passSamuel Pitoiset1-3/+0
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7022>
2020-10-12radv/llvm: reduce LDS size for tess by using NIR IO assigned locationsSamuel Pitoiset1-47/+2
To match ACO. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7022>
2020-10-12radv/llvm: reduce the ESGS itemsize by using NIR IO assigned locationsSamuel Pitoiset1-22/+5
There is no longer gaps in the ESGS ring. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7022>
2020-10-12radv/llvm: switch to NIR IO assigned locationsSamuel Pitoiset1-1/+1
To match ACO. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7022>
2020-10-05radv: remove dead deref code in the shader info passSamuel Pitoiset1-157/+0
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6931>
2020-10-05radv: remove unused gs.writes_memory in the shader info passSamuel Pitoiset1-2/+0
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6931>
2020-10-05radv/llvm: gather VS input usage mask from load_inputSamuel Pitoiset1-0/+22
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6912>