Mesa (main): microsoft/compiler: Set the SampleFrequency runtime metadata

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 25 20:29:25 UTC 2021


Module: Mesa
Branch: main
Commit: 74a24f4f1c8b0f97adc0d3e1ea8c909f5d8bb6f4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=74a24f4f1c8b0f97adc0d3e1ea8c909f5d8bb6f4

Author: Michael Tang <tangm at microsoft.com>
Date:   Mon Aug 23 18:53:28 2021 -0700

microsoft/compiler: Set the SampleFrequency runtime metadata

Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12513>

---

 src/microsoft/compiler/dxil_module.h    | 1 +
 src/microsoft/compiler/dxil_signature.c | 5 +++++
 src/microsoft/compiler/nir_to_dxil.c    | 6 +++---
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/microsoft/compiler/dxil_module.h b/src/microsoft/compiler/dxil_module.h
index e5698600eb7..217087dda19 100644
--- a/src/microsoft/compiler/dxil_module.h
+++ b/src/microsoft/compiler/dxil_module.h
@@ -159,6 +159,7 @@ struct dxil_features {
 struct dxil_shader_info {
    unsigned has_out_position:1;
    unsigned has_out_depth:1;
+   unsigned has_per_sample_input:1;
 };
 
 struct dxil_module {
diff --git a/src/microsoft/compiler/dxil_signature.c b/src/microsoft/compiler/dxil_signature.c
index 895ec30a848..61f16ba4f7a 100644
--- a/src/microsoft/compiler/dxil_signature.c
+++ b/src/microsoft/compiler/dxil_signature.c
@@ -492,6 +492,11 @@ get_input_signature_group(struct dxil_module *mod, const struct dxil_mdnode **in
       mod->num_psv_inputs = MAX2(mod->num_psv_inputs,
                                  semantic.start_row + semantic.rows);
 
+      mod->info.has_per_sample_input |=
+         semantic.kind == DXIL_SEM_SAMPLE_INDEX ||
+         semantic.interpolation == DXIL_INTERP_LINEAR_SAMPLE ||
+         semantic.interpolation == DXIL_INTERP_LINEAR_NOPERSPECTIVE_SAMPLE;
+
       ++num_inputs;
       assert(num_inputs < VARYING_SLOT_MAX);
    }
diff --git a/src/microsoft/compiler/nir_to_dxil.c b/src/microsoft/compiler/nir_to_dxil.c
index 972000171ef..3601c8290e5 100644
--- a/src/microsoft/compiler/nir_to_dxil.c
+++ b/src/microsoft/compiler/nir_to_dxil.c
@@ -4711,9 +4711,9 @@ void dxil_fill_validation_state(struct ntd_context *ctx,
       break;
    case DXIL_PIXEL_SHADER:
       /* TODO: handle depth outputs */
-      state->state.psv0.ps.depth_output =  ctx->mod.info.has_out_depth;
-      /* just guessing */
-      state->state.psv0.ps.sample_frequency = 0;
+      state->state.psv0.ps.depth_output = ctx->mod.info.has_out_depth;
+      state->state.psv0.ps.sample_frequency =
+         ctx->mod.info.has_per_sample_input;
       break;
    case DXIL_COMPUTE_SHADER:
       break;



More information about the mesa-commit mailing list