diff options
author | Francisco Jerez <[email protected]> | 2016-07-19 20:30:24 -0700 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2016-08-24 13:28:31 -0700 |
commit | 2018371692d9ea57805989b0390b833e785881bf (patch) | |
tree | 3fde19bc0d74c3e2c80b84972b722f0a69ca9716 /src/compiler/glsl | |
parent | 711213fb7226f25a7da4962aa7526d7265d38356 (diff) |
glsl: Keep track of the set of fragment outputs read by a GL program.
This is the set of shader outputs whose initial value is provided to
the shader by some external means when the shader is executed, rather
than computed by the shader itself.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/compiler/glsl')
-rw-r--r-- | src/compiler/glsl/ir_set_program_inouts.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler/glsl/ir_set_program_inouts.cpp b/src/compiler/glsl/ir_set_program_inouts.cpp index a6475b519e4..fcfbcd48c93 100644 --- a/src/compiler/glsl/ir_set_program_inouts.cpp +++ b/src/compiler/glsl/ir_set_program_inouts.cpp @@ -139,6 +139,8 @@ mark(struct gl_program *prog, ir_variable *var, int offset, int len, prog->PatchOutputsWritten |= bitfield; else if (!var->data.read_only) prog->OutputsWritten |= bitfield; + if (var->data.fb_fetch_output) + prog->OutputsRead |= bitfield; } } } @@ -444,6 +446,7 @@ do_set_program_inouts(exec_list *instructions, struct gl_program *prog, prog->InputsRead = 0; prog->OutputsWritten = 0; + prog->OutputsRead = 0; prog->PatchInputsRead = 0; prog->PatchOutputsWritten = 0; prog->SystemValuesRead = 0; |