On Sat, Oct 22, 2016 at 10:31:39PM -0700, Jason Ekstrand wrote: > At least on Sky Lake, after emitting 3DSTATE_CONSTANT_*, you are required > to re-emit the 3DSTATE_BINDING_TABLE_POINTERS packet for the corresponding > stage. If you don't, double-buffering may fail and you may get the wrong > constants. It turns out that you need to do this even if you have no push > constants to speak of or else the next 3DSTATE_CONSTANT packet you emit for > that stage may not work correctly.
Reviewed-by: Topi Pohjolainen <[email protected]> > > Signed-off-by: Jason Ekstrand <[email protected]> > --- > src/intel/blorp/blorp_genX_exec.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/src/intel/blorp/blorp_genX_exec.h > b/src/intel/blorp/blorp_genX_exec.h > index d17c661..b05914e 100644 > --- a/src/intel/blorp/blorp_genX_exec.h > +++ b/src/intel/blorp/blorp_genX_exec.h > @@ -1136,6 +1136,11 @@ blorp_emit_surface_states(struct blorp_batch *batch, > } > > #if GEN_GEN >= 7 > + blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS_VS), bt); > + blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS_HS), bt); > + blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS_DS), bt); > + blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS_GS), bt); > + > blorp_emit(batch, GENX(3DSTATE_BINDING_TABLE_POINTERS_PS), bt) { > bt.PointertoPSBindingTable = bind_offset; > } > -- > 2.5.0.400.gff86faf > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
