i965: Upload binding tables in hw-generated binding table format.
authorAbdiel Janulgue <abdiel.janulgue@linux.intel.com>
Wed, 2 Oct 2013 13:37:20 +0000 (16:37 +0300)
committerAbdiel Janulgue <abdiel.janulgue@linux.intel.com>
Sat, 18 Jul 2015 13:16:59 +0000 (16:16 +0300)
commitfc65b6eb610f4b1e42930cae7594131fa9ea566e
treecaf9236a07157bae56472298979925f0a8227023
parent2133980bc7dff52bdeb142301184e464d113ce7c
i965: Upload binding tables in hw-generated binding table format.

When hardware-generated binding tables are enabled, use the hw-generated
binding table format when uploading binding table state.

Normally, the CS will will just consume the binding table pointer commands
as pipelined state. When the RS is enabled however, the RS flushes whatever
edited surface state entries of our on-chip binding table to the binding
table pool before passing the command on to the CS.

Note that the the binding table pointer offset is relative to the binding table
pool base address when resource streamer instead of the surface state base address.

v2: Fix possible buffer overflow when allocating a chunk out of the
    hw-binding table pool (Ken).
v3: Remove extra newline and add missing brace around if-statement (Matt).
v4: Fix broken INTEL_DEBUG=shader_time for hw-generated binding tables.
    Document PRM WaStateBindingTableOverfetch workaround.

Cc: kenneth@whitecape.org
Cc: mattst88@gmail.com
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
src/mesa/drivers/dri/i965/brw_binding_tables.c