diff options
author | Jesse Natalie <jenatali@microsoft.com> | 2022-01-04 08:39:26 -0800 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-01-26 01:31:35 +0000 |
commit | 8524d047831115deb7e7b057fdef40992c6fc0c5 (patch) | |
tree | ac979f81a8c9e57a9f4cfc96325e3a24a24f6800 | |
parent | a39881b7881712e3857d70e5f06369dc3eedb06f (diff) |
microsoft/compiler: Handle load_output in the HS stage as reading a previously written patch constant
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Bill Kristiansen <billkris@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14399>
-rw-r--r-- | src/microsoft/compiler/nir_to_dxil.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/microsoft/compiler/nir_to_dxil.c b/src/microsoft/compiler/nir_to_dxil.c index d725a721095..37accd40253 100644 --- a/src/microsoft/compiler/nir_to_dxil.c +++ b/src/microsoft/compiler/nir_to_dxil.c @@ -3063,8 +3063,10 @@ emit_load_input_via_intrinsic(struct ntd_context *ctx, nir_intrinsic_instr *intr attr_at_vertex = var && var->data.interpolation == INTERP_MODE_FLAT; } - bool is_patch_constant = ctx->mod.shader_kind == DXIL_DOMAIN_SHADER && - intr->intrinsic == nir_intrinsic_load_input; + bool is_patch_constant = (ctx->mod.shader_kind == DXIL_DOMAIN_SHADER && + intr->intrinsic == nir_intrinsic_load_input) || + (ctx->mod.shader_kind == DXIL_HULL_SHADER && + intr->intrinsic == nir_intrinsic_load_output); bool is_output_control_point = intr->intrinsic == nir_intrinsic_load_per_vertex_output; unsigned opcode_val; @@ -4093,6 +4095,7 @@ emit_intrinsic(struct ntd_context *ctx, nir_intrinsic_instr *intr) return emit_get_ssbo_size(ctx, intr); case nir_intrinsic_load_input: case nir_intrinsic_load_per_vertex_input: + case nir_intrinsic_load_output: case nir_intrinsic_load_per_vertex_output: return emit_load_input_via_intrinsic(ctx, intr); case nir_intrinsic_store_output: |