From: Chia-I Wu Date: Thu, 20 Feb 2014 08:57:05 +0000 (+0800) Subject: ilo: fix for stencil only rectlist ops X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cb8a0d2be1a50e2aa1cb82a33535f68d278ed8ca;p=mesa.git ilo: fix for stencil only rectlist ops 3DSTATE_STENCIL_BUFFER inherits some states from 3DSTATE_DEPTH_BUFFER. We need to emit both even the surface is stencil only. --- diff --git a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c index f7cd0d21192..59623bc0ce4 100644 --- a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c +++ b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c @@ -1571,10 +1571,13 @@ gen6_rectlist_wm_depth(struct ilo_3d_pipeline *p, { gen6_wa_pipe_control_wm_depth_flush(p); - if (blitter->uses & ILO_BLITTER_USE_FB_DEPTH) { + if (blitter->uses & (ILO_BLITTER_USE_FB_DEPTH | + ILO_BLITTER_USE_FB_STENCIL)) { gen6_emit_3DSTATE_DEPTH_BUFFER(p->dev, &blitter->fb.dst.u.zs, p->cp); + } + if (blitter->uses & ILO_BLITTER_USE_FB_DEPTH) { gen6_emit_3DSTATE_HIER_DEPTH_BUFFER(p->dev, &blitter->fb.dst.u.zs, p->cp); } diff --git a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c index b34589277fb..a1c85197cba 100644 --- a/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c +++ b/src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c @@ -756,10 +756,13 @@ gen7_rectlist_wm_depth(struct ilo_3d_pipeline *p, { gen7_wa_pipe_control_wm_depth_stall(p, true); - if (blitter->uses & ILO_BLITTER_USE_FB_DEPTH) { + if (blitter->uses & (ILO_BLITTER_USE_FB_DEPTH | + ILO_BLITTER_USE_FB_STENCIL)) { gen6_emit_3DSTATE_DEPTH_BUFFER(p->dev, &blitter->fb.dst.u.zs, p->cp); + } + if (blitter->uses & ILO_BLITTER_USE_FB_DEPTH) { gen6_emit_3DSTATE_HIER_DEPTH_BUFFER(p->dev, &blitter->fb.dst.u.zs, p->cp); }