From cb8a0d2be1a50e2aa1cb82a33535f68d278ed8ca Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 20 Feb 2014 16:57:05 +0800 Subject: [PATCH] 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. --- src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c | 5 ++++- src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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); } -- 2.30.2