[Mesa-dev] [PATCH 01/28] nir: Add an info bit for uses_sample_qualifier
Jason Ekstrand
jason at jlekstrand.net
Tue May 10 23:16:21 UTC 2016
---
src/compiler/nir/glsl_to_nir.cpp | 1 +
src/compiler/nir/nir.h | 5 +++++
src/compiler/nir/nir_gather_info.c | 8 +++++++-
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/compiler/nir/glsl_to_nir.cpp b/src/compiler/nir/glsl_to_nir.cpp
index e3fa623..4e50d5c 100644
--- a/src/compiler/nir/glsl_to_nir.cpp
+++ b/src/compiler/nir/glsl_to_nir.cpp
@@ -184,6 +184,7 @@ glsl_to_nir(const struct gl_shader_program *shader_prog,
(struct gl_fragment_program *)sh->Program;
shader->info.fs.uses_discard = fp->UsesKill;
+ shader->info.fs.uses_sample_qualifier = fp->IsSample != 0;
shader->info.fs.early_fragment_tests = sh->EarlyFragmentTests;
shader->info.fs.depth_layout = fp->FragDepthLayout;
break;
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 8a616d4..4b70a45 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -1743,6 +1743,11 @@ typedef struct nir_shader_info {
bool uses_discard;
/**
+ * Whether any inputs are declared with the "sample" qualifier.
+ */
+ bool uses_sample_qualifier;
+
+ /**
* Whether early fragment tests are enabled as defined by
* ARB_shader_image_load_store.
*/
diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c
index d45b1a2..89a6302 100644
--- a/src/compiler/nir/nir_gather_info.c
+++ b/src/compiler/nir/nir_gather_info.c
@@ -125,9 +125,15 @@ nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint)
shader->stage == MESA_SHADER_FRAGMENT ||
shader->stage == MESA_SHADER_COMPUTE);
+ bool uses_sample_qualifier = false;
shader->info.inputs_read = 0;
- foreach_list_typed(nir_variable, var, node, &shader->inputs)
+ foreach_list_typed(nir_variable, var, node, &shader->inputs) {
shader->info.inputs_read |= get_io_mask(var, shader->stage);
+ uses_sample_qualifier |= var->data.sample;
+ }
+
+ if (shader->stage == MESA_SHADER_FRAGMENT)
+ shader->info.fs.uses_sample_qualifier = uses_sample_qualifier;
/* TODO: Some day we may need to add stream support to NIR */
shader->info.outputs_written = 0;
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list