i965: Don't set vp_outputs_written in the WM program key on Gen6+.

It's only used by on pre-Sandybridge hardware.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Kenneth Graunke 2012-08-13 23:59:09 -07:00
parent 87cdefed40
commit b6b1fc1261
2 changed files with 10 additions and 5 deletions

View file

@ -2155,17 +2155,21 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
key.iz_lookup |= IZ_DEPTH_WRITE_ENABLE_BIT;
}
key.vp_outputs_written |= BITFIELD64_BIT(FRAG_ATTRIB_WPOS);
if (intel->gen < 6)
key.vp_outputs_written |= BITFIELD64_BIT(FRAG_ATTRIB_WPOS);
for (int i = 0; i < FRAG_ATTRIB_MAX; i++) {
if (!(fp->Base.InputsRead & BITFIELD64_BIT(i)))
continue;
key.proj_attrib_mask |= 1 << i;
int vp_index = _mesa_vert_result_to_frag_attrib((gl_vert_result) i);
if (intel->gen < 6) {
int vp_index = _mesa_vert_result_to_frag_attrib((gl_vert_result) i);
if (vp_index >= 0)
key.vp_outputs_written |= BITFIELD64_BIT(vp_index);
if (vp_index >= 0)
key.vp_outputs_written |= BITFIELD64_BIT(vp_index);
}
}
key.clamp_fragment_color = true;

View file

@ -636,7 +636,8 @@ static void brw_wm_populate_key( struct brw_context *brw,
key->sample_alpha_to_coverage = ctx->Multisample.SampleAlphaToCoverage;
/* CACHE_NEW_VS_PROG */
key->vp_outputs_written = brw->vs.prog_data->outputs_written;
if (intel->gen < 6)
key->vp_outputs_written = brw->vs.prog_data->outputs_written;
/* The unique fragment program ID */
key->program_string_id = fp->id;