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;
|
(struct gl_fragment_program *)sh->Program;
|
||||||
|
|
||||||
shader->info.fs.uses_discard = fp->UsesKill;
|
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.early_fragment_tests = sh->EarlyFragmentTests;
|
||||||
shader->info.fs.depth_layout = fp->FragDepthLayout;
|
shader->info.fs.depth_layout = fp->FragDepthLayout;
|
||||||
break;
|
break;
|
||||||
|
@@ -1743,6 +1743,11 @@ typedef struct nir_shader_info {
|
|||||||
struct {
|
struct {
|
||||||
bool uses_discard;
|
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
|
* Whether early fragment tests are enabled as defined by
|
||||||
* ARB_shader_image_load_store.
|
* 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_FRAGMENT ||
|
||||||
shader->stage == MESA_SHADER_COMPUTE);
|
shader->stage == MESA_SHADER_COMPUTE);
|
||||||
|
|
||||||
|
bool uses_sample_qualifier = false;
|
||||||
shader->info.inputs_read = 0;
|
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);
|
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 */
|
/* TODO: Some day we may need to add stream support to NIR */
|
||||||
shader->info.outputs_written = 0;
|
shader->info.outputs_written = 0;
|
||||||
|
Reference in New Issue
Block a user