i965: Upload 3DSTATE_BINDING_TABLE_POINTERS_HS when !TCS on Gen9+.
Gen9+ requires us to emit 3DSTATE_BINDING_TABLE_POINTERS_HS for the hull shader push constants to take effect. The passthrough TCS uses push constants for the default tessellation levels. So, when those change, we need to re-upload the binding table as well. Fixes five Piglit tests on Skylake: - spec/arb_tessellation_shader/vs-tes-vertex - spec/arb_tessellation_shader/vs-tes-tessinner-tessouter-inputs-quads - spec/arb_tessellation_shader/vs-tes-tessinner-tessouter-inputs-tris - spec/arb_tessellation_shader/tes-read-texture - spec/arb_tessellation_shader/tess_with_geometry Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
parent
f2c8913536
commit
aa6aa39a8f
|
@ -196,12 +196,12 @@ const struct brw_tracked_state brw_wm_binding_table = {
|
|||
.emit = brw_upload_wm_binding_table,
|
||||
};
|
||||
|
||||
/** Upload the TCS binding table (if TCS is active). */
|
||||
/** Upload the TCS binding table (if tessellation stages are active). */
|
||||
static void
|
||||
brw_tcs_upload_binding_table(struct brw_context *brw)
|
||||
{
|
||||
/* If there's no TCS, skip changing anything. */
|
||||
if (brw->tess_ctrl_program == NULL)
|
||||
/* Skip if the tessellation stages are disabled. */
|
||||
if (brw->tess_eval_program == NULL)
|
||||
return;
|
||||
|
||||
/* BRW_NEW_TCS_PROG_DATA */
|
||||
|
@ -216,6 +216,7 @@ const struct brw_tracked_state brw_tcs_binding_table = {
|
|||
.dirty = {
|
||||
.mesa = 0,
|
||||
.brw = BRW_NEW_BATCH |
|
||||
BRW_NEW_DEFAULT_TESS_LEVELS |
|
||||
BRW_NEW_SURFACES |
|
||||
BRW_NEW_TCS_CONSTBUF |
|
||||
BRW_NEW_TCS_PROG_DATA,
|
||||
|
|
Loading…
Reference in New Issue