aco: implement nir_intrinsic_load_vrs_rates_amd
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 25 Jan 2022 07:56:30 +0000 (08:56 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 16 Feb 2022 07:11:19 +0000 (08:11 +0100)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14713>

src/amd/compiler/aco_instruction_selection.cpp
src/amd/compiler/aco_instruction_selection_setup.cpp

index b6de2c7..85b4408 100644 (file)
@@ -9029,6 +9029,11 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr)
       ctx->arg_temps[ctx->args->ac.tes_patch_id.arg_index] = get_ssa_temp(ctx, instr->src[3].ssa);
       break;
    }
+   case nir_intrinsic_load_force_vrs_rates_amd: {
+      bld.copy(Definition(get_ssa_temp(ctx, &instr->dest.ssa)),
+               get_arg(ctx, ctx->args->ac.force_vrs_rates));
+      break;
+   }
    default:
       isel_err(&instr->instr, "Unimplemented intrinsic instr");
       abort();
index 7cfd616..4ffbad7 100644 (file)
@@ -626,7 +626,8 @@ init_context(isel_context* ctx, nir_shader* shader)
                case nir_intrinsic_load_viewport_x_scale:
                case nir_intrinsic_load_viewport_y_scale:
                case nir_intrinsic_load_viewport_x_offset:
-               case nir_intrinsic_load_viewport_y_offset: type = RegType::sgpr; break;
+               case nir_intrinsic_load_viewport_y_offset:
+               case nir_intrinsic_load_force_vrs_rates_amd: type = RegType::sgpr; break;
                case nir_intrinsic_load_sample_id:
                case nir_intrinsic_load_sample_mask_in:
                case nir_intrinsic_load_input: