mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
i965: Always reserve binding table space for at least one render target.
In brw_update_renderbuffer_surfaces(), if there are no color draw buffers, we always set up a null render target at surface index 0 so we have something to use with the FB write marking the end of thread. However, when we recently began computing surface indexes dynamically, we failed to reserve space for it. This meant that the first texture would be assigned surface index 0, and our closing FB write would clobber the texture. Fixes Piglit's EXT_packed_depth_stencil/fbo-blit-d24s8 test on Gen4-5, which regressed as of commit4e5306453d("i965/fs: Dynamically set up the WM binding table offsets.") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70605 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Tested-by: lu hua <huax.lu@intel.com> Cc: "10.0" mesa-stable@lists.freedesktop.org (cherry picked from commitc4815f6cd6)
This commit is contained in:
parent
93dfd0522f
commit
44e38a878a
1 changed files with 4 additions and 1 deletions
|
|
@ -3192,8 +3192,11 @@ fs_visitor::assign_binding_table_offsets()
|
|||
{
|
||||
uint32_t next_binding_table_offset = 0;
|
||||
|
||||
/* If there are no color regions, we still perform an FB write to a null
|
||||
* renderbuffer, which we place at surface index 0.
|
||||
*/
|
||||
c->prog_data.binding_table.render_target_start = next_binding_table_offset;
|
||||
next_binding_table_offset += c->key.nr_color_regions;
|
||||
next_binding_table_offset += MAX2(c->key.nr_color_regions, 1);
|
||||
|
||||
assign_common_binding_table_offsets(next_binding_table_offset);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue