summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2014-02-20 16:57:05 +0800
committerChia-I Wu <olvaffe@gmail.com>2014-02-22 22:45:13 +0800
commitcb8a0d2be1a50e2aa1cb82a33535f68d278ed8ca (patch)
treeaf958a11fde4a6d2f1103fa79bfc136b4bd93d95
parent409add30b367df1ac3d2675a20324229be8e7832 (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.c5
-rw-r--r--src/gallium/drivers/ilo/ilo_3d_pipeline_gen7.c5
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);
}