glsl: Calculate bitset of secondary outputs written in ir_set_program_inouts.

Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Francisco Jerez
2016-08-23 11:15:57 -07:00
parent c011d7d900
commit cb4b38af41
2 changed files with 8 additions and 2 deletions

View File

@@ -135,10 +135,14 @@ mark(struct gl_program *prog, ir_variable *var, int offset, int len,
prog->SystemValuesRead |= bitfield;
} else {
assert(var->data.mode == ir_var_shader_out);
if (is_patch_generic)
if (is_patch_generic) {
prog->PatchOutputsWritten |= bitfield;
else if (!var->data.read_only)
} else if (!var->data.read_only) {
prog->OutputsWritten |= bitfield;
if (var->data.index > 0)
prog->SecondaryOutputsWritten |= bitfield;
}
if (var->data.fb_fetch_output)
prog->OutputsRead |= bitfield;
}
@@ -446,6 +450,7 @@ do_set_program_inouts(exec_list *instructions, struct gl_program *prog,
prog->InputsRead = 0;
prog->OutputsWritten = 0;
prog->SecondaryOutputsWritten = 0;
prog->OutputsRead = 0;
prog->PatchInputsRead = 0;
prog->PatchOutputsWritten = 0;