diff options
author | Chia-I Wu <[email protected]> | 2014-02-20 16:57:05 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2014-02-22 22:45:13 +0800 |
commit | cb8a0d2be1a50e2aa1cb82a33535f68d278ed8ca (patch) | |
tree | af958a11fde4a6d2f1103fa79bfc136b4bd93d95 | |
parent | 409add30b367df1ac3d2675a20324229be8e7832 (diff) |
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.
-rw-r--r-- | src/gallium/drivers/ilo/ilo_3d_pipeline_gen6.c | 5 | ||||
-rw-r--r-- | 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); } |