[Mesa-dev] [PATCH] i965/gen6: Fix GPU hang when using stencil buffer without depth
Chad Versace
chad.versace at linux.intel.com
Wed Nov 23 10:11:54 PST 2011
Set the "Tiled Surface" bit in 3DSTATE_DEPTH_BUFFER. From the BSpec:
[DevGT+]: This field must be set to TRUE.
Fixes GPU hangs on following the Piglit tests:
hiz-stencil-test-fbo-d0-s8
hiz-stencil-read-fbo-d0-s8
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
---
src/mesa/drivers/dri/i965/brw_misc_state.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index 17da460..d5c66a4 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -278,6 +278,9 @@ static void emit_depthbuffer(struct brw_context *brw)
*
* [DevGT]: This field must be set to the same value (enabled or
* disabled) as Hierarchical Depth Buffer Enable
+ *
+ * The tiled bit must be set. See Section 3DSTATE_DEPTH_BUFFER,
+ * Bit 1.27 "Tiled Surface".
*/
struct intel_region *region = stencil_irb->mt->region;
@@ -290,6 +293,7 @@ static void emit_depthbuffer(struct brw_context *brw)
(1 << 21) | /* separate stencil enable */
(1 << 22) | /* hiz enable */
(BRW_TILEWALK_YMAJOR << 26) |
+ (1 << 27) | /* tiled surface */
(BRW_SURFACE_2D << 29));
OUT_BATCH(0);
OUT_BATCH(((region->width - 1) << 6) |
--
1.7.7.1
More information about the mesa-dev
mailing list