nir: Add an info bit for uses_sample_qualifier
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -182,6 +182,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;
|
||||
|
@@ -1743,6 +1743,11 @@ typedef struct nir_shader_info {
|
||||
struct {
|
||||
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.
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user