On Tue, May 16, 2017 at 03:45:20PM -0700, Jason Ekstrand wrote: > --- > src/intel/blorp/blorp_genX_exec.h | 56 > ++++++++++++++++++++++----------------- > 1 file changed, 31 insertions(+), 25 deletions(-) > > diff --git a/src/intel/blorp/blorp_genX_exec.h > b/src/intel/blorp/blorp_genX_exec.h > index 9e61f69..0bb4b9a 100644 > --- a/src/intel/blorp/blorp_genX_exec.h > +++ b/src/intel/blorp/blorp_genX_exec.h > @@ -1316,33 +1316,14 @@ blorp_emit_viewport_state(struct blorp_batch *batch, > #endif > } > > - > -/** > - * \brief Execute a blit or render pass operation. > - * > - * To execute the operation, this function manually constructs and emits a > - * batch to draw a rectangle primitive. The batchbuffer is flushed before > - * constructing and after emitting the batch. > - * > - * This function alters no GL state. > - */ > static void > -blorp_exec(struct blorp_batch *batch, const struct blorp_params *params) > +blorp_emit_pipeline(struct blorp_batch *batch, > + const struct blorp_params *params) > { > uint32_t blend_state_offset = 0; > - uint32_t color_calc_state_offset = 0; > + uint32_t color_calc_state_offset; > uint32_t depth_stencil_state_offset; > > -#if GEN_GEN >= 8 > - if (params->hiz_op != BLORP_HIZ_OP_NONE) { > - blorp_emit_gen8_hiz_op(batch, params); > - return; > - } > -#endif > - > - blorp_emit_vertex_buffers(batch, params); > - blorp_emit_vertex_elements(batch, params); > - > emit_urb_config(batch, params); > > if (params->wm_prog_data) { > @@ -1351,7 +1332,7 @@ blorp_exec(struct blorp_batch *batch, const struct > blorp_params *params) > color_calc_state_offset = blorp_emit_color_calc_state(batch, params); > depth_stencil_state_offset = blorp_emit_depth_stencil_state(batch, > params); > > -#if GEN_GEN <= 6 > +#if GEN_GEN == 6 > /* 3DSTATE_CC_STATE_POINTERS > * > * The pointer offsets are relative to > @@ -1385,8 +1366,6 @@ blorp_exec(struct blorp_batch *batch, const struct > blorp_params *params) > blorp_emit(batch, GENX(3DSTATE_CONSTANT_GS), gs); > blorp_emit(batch, GENX(3DSTATE_CONSTANT_PS), ps); > > - blorp_emit_surface_states(batch, params); > - > if (params->src.enabled) > blorp_emit_sampler_state(batch, params); > > @@ -1423,6 +1402,33 @@ blorp_exec(struct blorp_batch *batch, const struct > blorp_params *params) > blorp_emit_ps_config(batch, params); > > blorp_emit_viewport_state(batch, params); > +} > + > +/** > + * \brief Execute a blit or render pass operation. > + * > + * To execute the operation, this function manually constructs and emits a > + * batch to draw a rectangle primitive. The batchbuffer is flushed before > + * constructing and after emitting the batch. > + * > + * This function alters no GL state. > + */ > +static void > +blorp_exec(struct blorp_batch *batch, const struct blorp_params *params) > +{ > +#if GEN_GEN >= 8 > + if (params->hiz_op != BLORP_HIZ_OP_NONE) { > + blorp_emit_gen8_hiz_op(batch, params); > + return; > + } > +#endif > + > + blorp_emit_vertex_buffers(batch, params); > + blorp_emit_vertex_elements(batch, params); > + > + blorp_emit_pipeline(batch, params); > + > + blorp_emit_surface_states(batch, params);
I thought binding table had to be earlier but I can't actually see any reason why. Well, jenkins would scream if it had to be. > > if (!(batch->flags & BLORP_BATCH_NO_EMIT_DEPTH_STENCIL)) > blorp_emit_depth_stencil_config(batch, params); > -- > 2.5.0.400.gff86faf > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev