summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2016-07-19 20:30:24 -0700
committerFrancisco Jerez <[email protected]>2016-08-24 13:28:31 -0700
commit2018371692d9ea57805989b0390b833e785881bf (patch)
tree3fde19bc0d74c3e2c80b84972b722f0a69ca9716 /src/compiler/glsl
parent711213fb7226f25a7da4962aa7526d7265d38356 (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.cpp3
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;