Mesa (main): radv: use shader_info::inputs_read/outputs_written for FS IO
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Apr 14 14:35:57 UTC 2022
Module: Mesa
Branch: main
Commit: feaaf4ac7a608966ee1f6d7aacabe533826c8035
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=feaaf4ac7a608966ee1f6d7aacabe533826c8035
Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date: Fri Mar 11 08:54:11 2022 +0100
radv: use shader_info::inputs_read/outputs_written for FS IO
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15343>
---
src/amd/vulkan/radv_shader_info.c | 43 +++++++--------------------------------
1 file changed, 7 insertions(+), 36 deletions(-)
diff --git a/src/amd/vulkan/radv_shader_info.c b/src/amd/vulkan/radv_shader_info.c
index c2b806c2530..b403a45d0a6 100644
--- a/src/amd/vulkan/radv_shader_info.c
+++ b/src/amd/vulkan/radv_shader_info.c
@@ -336,22 +336,10 @@ gather_info_input_decl_ps(const nir_shader *nir, const nir_variable *var,
int idx = var->data.location;
switch (idx) {
- case VARYING_SLOT_PNTC:
- info->ps.has_pcoord = true;
- break;
- case VARYING_SLOT_PRIMITIVE_ID:
- info->ps.prim_id_input = true;
- break;
- case VARYING_SLOT_LAYER:
- info->ps.layer_input = true;
- break;
case VARYING_SLOT_CLIP_DIST0:
case VARYING_SLOT_CLIP_DIST1:
info->ps.num_input_clips_culls += attrib_count;
break;
- case VARYING_SLOT_VIEWPORT:
- info->ps.viewport_index_input = true;
- break;
default:
break;
}
@@ -396,27 +384,6 @@ gather_info_input_decl(const nir_shader *nir, const nir_variable *var,
}
}
-static void
-gather_info_output_decl_ps(const nir_shader *nir, const nir_variable *var,
- struct radv_shader_info *info)
-{
- int idx = var->data.location;
-
- switch (idx) {
- case FRAG_RESULT_DEPTH:
- info->ps.writes_z = true;
- break;
- case FRAG_RESULT_STENCIL:
- info->ps.writes_stencil = true;
- break;
- case FRAG_RESULT_SAMPLE_MASK:
- info->ps.writes_sample_mask = true;
- break;
- default:
- break;
- }
-}
-
static void
gather_info_output_decl_gs(const nir_shader *nir, const nir_variable *var,
struct radv_shader_info *info)
@@ -463,9 +430,6 @@ gather_info_output_decl(const nir_shader *nir, const nir_variable *var,
struct radv_vs_output_info *vs_info = get_vs_output_info(nir, info);
switch (nir->info.stage) {
- case MESA_SHADER_FRAGMENT:
- gather_info_output_decl_ps(nir, var, info);
- break;
case MESA_SHADER_VERTEX:
break;
case MESA_SHADER_GEOMETRY:
@@ -687,6 +651,13 @@ radv_nir_shader_info_pass(struct radv_device *device, const struct nir_shader *n
info->ps.depth_layout = nir->info.fs.depth_layout;
info->ps.uses_sample_shading = nir->info.fs.uses_sample_shading;
info->ps.writes_memory = nir->info.writes_memory;
+ info->ps.has_pcoord = nir->info.inputs_read & VARYING_BIT_PNTC;
+ info->ps.prim_id_input = nir->info.inputs_read & VARYING_BIT_PRIMITIVE_ID;
+ info->ps.layer_input = nir->info.inputs_read & VARYING_BIT_LAYER;
+ info->ps.viewport_index_input = nir->info.inputs_read & VARYING_BIT_VIEWPORT;
+ info->ps.writes_z = nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_DEPTH);
+ info->ps.writes_stencil = nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_STENCIL);
+ info->ps.writes_sample_mask = nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_SAMPLE_MASK);
break;
case MESA_SHADER_GEOMETRY:
info->gs.vertices_in = nir->info.gs.vertices_in;
More information about the mesa-commit
mailing list