On Mon, Sep 12, 2016 at 3:50 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > The Vulkan driver sets 3DSTATE_DRAWING_RECTANGLE once to MAX_INT x MAX_INT > at the GPU initialization time and never sets it again. The GL driver sets > it every time the framebuffer changes. Originally, blorp set it to the > size of the drawing area but meant we had to set it back in the Vulkan > driver. Instead, we can easily just do that in the GL driver's blorp_exec > implementation and not set it in blorp core. > > Signed-off-by: Jason Ekstrand <ja...@jlekstrand.net> > --- > src/intel/blorp/blorp_genX_exec.h | 5 ----- > src/intel/vulkan/genX_blorp_exec.c | 15 --------------- > src/mesa/drivers/dri/i965/genX_blorp_exec.c | 5 +++++ > 3 files changed, 5 insertions(+), 20 deletions(-) > > diff --git a/src/intel/blorp/blorp_genX_exec.h > b/src/intel/blorp/blorp_genX_exec.h > index aff59e1..eb4a5b9 100644 > --- a/src/intel/blorp/blorp_genX_exec.h > +++ b/src/intel/blorp/blorp_genX_exec.h > @@ -1216,11 +1216,6 @@ blorp_exec(struct blorp_batch *batch, const struct > blorp_params *params) > clear.DepthClearValue = params->depth.clear_color.u32[0]; > } > > - blorp_emit(batch, GENX(3DSTATE_DRAWING_RECTANGLE), rect) { > - rect.ClippedDrawingRectangleXMax = MAX2(params->x1, params->x0) - 1; > - rect.ClippedDrawingRectangleYMax = MAX2(params->y1, params->y0) - 1; > - } > - > blorp_emit(batch, GENX(3DPRIMITIVE), prim) { > prim.VertexAccessType = SEQUENTIAL; > prim.PrimitiveTopologyType = _3DPRIM_RECTLIST; > diff --git a/src/intel/vulkan/genX_blorp_exec.c > b/src/intel/vulkan/genX_blorp_exec.c > index a3ad97a..5ddbb7d 100644 > --- a/src/intel/vulkan/genX_blorp_exec.c > +++ b/src/intel/vulkan/genX_blorp_exec.c > @@ -203,21 +203,6 @@ genX(blorp_exec)(struct blorp_batch *batch, > > blorp_exec(batch, params); > > - /* BLORP sets DRAWING_RECTANGLE but we always want it set to the maximum. > - * Since we set it once at driver init and never again, we have to set it > - * back after invoking blorp. > - * > - * TODO: BLORP should assume a max drawing rectangle > - */ > - blorp_emit(batch, GENX(3DSTATE_DRAWING_RECTANGLE), rect) { > - rect.ClippedDrawingRectangleYMin = 0; > - rect.ClippedDrawingRectangleXMin = 0; > - rect.ClippedDrawingRectangleYMax = UINT16_MAX; > - rect.ClippedDrawingRectangleXMax = UINT16_MAX; > - rect.DrawingRectangleOriginY = 0; > - rect.DrawingRectangleOriginX = 0; > - } > - > cmd_buffer->state.vb_dirty = ~0; > cmd_buffer->state.dirty = ~0; > cmd_buffer->state.push_constants_dirty = ~0; > diff --git a/src/mesa/drivers/dri/i965/genX_blorp_exec.c > b/src/mesa/drivers/dri/i965/genX_blorp_exec.c > index 8cd5a62..edcd896 100644 > --- a/src/mesa/drivers/dri/i965/genX_blorp_exec.c > +++ b/src/mesa/drivers/dri/i965/genX_blorp_exec.c > @@ -206,6 +206,11 @@ retry: > > brw_emit_depth_stall_flushes(brw); > > + blorp_emit(batch, GENX(3DSTATE_DRAWING_RECTANGLE), rect) { > + rect.ClippedDrawingRectangleXMax = MAX2(params->x1, params->x0) - 1; > + rect.ClippedDrawingRectangleYMax = MAX2(params->y1, params->y0) - 1; > + } > + > blorp_exec(batch, params); > > /* Make sure we didn't wrap the batch unintentionally, and make sure we > -- > 2.5.0.400.gff86faf > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Reviewed-by: Anuj Phogat <anuj.pho...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev