summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/glsl/ir_set_program_inouts.cpp3
-rw-r--r--src/mesa/main/mtypes.h1
2 files changed, 4 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;
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 965de5dc8b4..d0ceda9ed25 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1907,6 +1907,7 @@ struct gl_program
GLbitfield64 InputsRead; /**< Bitmask of which input regs are read */
GLbitfield64 DoubleInputsRead; /**< Bitmask of which input regs are read and are doubles */
GLbitfield64 OutputsWritten; /**< Bitmask of which output regs are written */
+ GLbitfield64 OutputsRead; /**< Bitmask of which output regs are read */
GLbitfield PatchInputsRead; /**< VAR[0..31] usage for patch inputs (user-defined only) */
GLbitfield PatchOutputsWritten; /**< VAR[0..31] usage for patch outputs (user-defined only) */
GLbitfield SystemValuesRead; /**< Bitmask of SYSTEM_VALUE_x inputs used */