i965: Allocate space in the binding table for non-coherent FB fetch.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 1 Jul 2016 20:46:40 +0000 (13:46 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Fri, 26 Aug 2016 01:36:06 +0000 (18:36 -0700)
commit08705badfe136e1782e10472104323d861185357
treedafd3c28bdf7edb1ae626774b608a5b6590fa248
parent40b23ad57e8da0fd7af21e81ad52d615f9b492ed
i965: Allocate space in the binding table for non-coherent FB fetch.

Unfortunately due to the inconsistent meaning of some surface state
structure fields, we cannot re-use the same binding table entries for
sampling from and rendering into the same set of render buffers, so we
need to allocate a separate binding table block specifically for
render target reads if the non-coherent path is in use.

The slight noise is due to the change of
brw_assign_common_binding_table_offsets to return the next available
binding table index rather than void.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_compiler.h
src/mesa/drivers/dri/i965/brw_shader.cpp
src/mesa/drivers/dri/i965/brw_shader.h
src/mesa/drivers/dri/i965/brw_wm.c