mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
i965: Don't emit SURFACE_STATEs for gather workarounds on Broadwell.
As far as I can tell, Broadwell doesn't need any of the SURFACE_STATE workarounds for textureGather() bugs, so there's no need to emit a second set of identical copies. To keep things simple, just point the gather surface index base to the same place as the texture surface index base. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Cc: "10.2" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
2442d3553f
commit
f6a99d1167
2 changed files with 15 additions and 8 deletions
|
|
@ -763,8 +763,13 @@ backend_visitor::assign_common_binding_table_offsets(uint32_t next_binding_table
|
|||
}
|
||||
|
||||
if (prog->UsesGather) {
|
||||
stage_prog_data->binding_table.gather_texture_start = next_binding_table_offset;
|
||||
next_binding_table_offset += num_textures;
|
||||
if (brw->gen >= 8) {
|
||||
stage_prog_data->binding_table.gather_texture_start =
|
||||
stage_prog_data->binding_table.texture_start;
|
||||
} else {
|
||||
stage_prog_data->binding_table.gather_texture_start = next_binding_table_offset;
|
||||
next_binding_table_offset += num_textures;
|
||||
}
|
||||
} else {
|
||||
stage_prog_data->binding_table.gather_texture_start = 0xd0d0d0d0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -829,12 +829,14 @@ brw_update_texture_surfaces(struct brw_context *brw)
|
|||
/* emit alternate set of surface state for gather. this
|
||||
* allows the surface format to be overriden for only the
|
||||
* gather4 messages. */
|
||||
if (vs && vs->UsesGather)
|
||||
update_stage_texture_surfaces(brw, vs, &brw->vs.base, true);
|
||||
if (gs && gs->UsesGather)
|
||||
update_stage_texture_surfaces(brw, gs, &brw->gs.base, true);
|
||||
if (fs && fs->UsesGather)
|
||||
update_stage_texture_surfaces(brw, fs, &brw->wm.base, true);
|
||||
if (brw->gen < 8) {
|
||||
if (vs && vs->UsesGather)
|
||||
update_stage_texture_surfaces(brw, vs, &brw->vs.base, true);
|
||||
if (gs && gs->UsesGather)
|
||||
update_stage_texture_surfaces(brw, gs, &brw->gs.base, true);
|
||||
if (fs && fs->UsesGather)
|
||||
update_stage_texture_surfaces(brw, fs, &brw->wm.base, true);
|
||||
}
|
||||
|
||||
brw->state.dirty.brw |= BRW_NEW_SURFACES;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue