i965/gen6: Fix GPU hang when using stencil buffer without depth
Enable the bit 3DSTATE_DEPTH_BUFFER.Tiled_Surface. From the Sandybridge PRM, Volume 2, Part 1, Section 7.5.5.1.1 3DSTATE_DEPTH_BUFFER, Bit 1.27 Tiled Surface: [DevGT+]: This field must be set to TRUE. Fixes GPU hangs on the following Piglit tests: hiz-stencil-test-fbo-d0-s8 hiz-stencil-read-fbo-d0-s8 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
This commit is contained in:
@@ -278,6 +278,10 @@ static void emit_depthbuffer(struct brw_context *brw)
|
|||||||
*
|
*
|
||||||
* [DevGT]: This field must be set to the same value (enabled or
|
* [DevGT]: This field must be set to the same value (enabled or
|
||||||
* disabled) as Hierarchical Depth Buffer Enable
|
* disabled) as Hierarchical Depth Buffer Enable
|
||||||
|
*
|
||||||
|
* The tiled bit must be set. From the Sandybridge PRM, Volume 2, Part 1,
|
||||||
|
* Section 7.5.5.1.1 3DSTATE_DEPTH_BUFFER, Bit 1.27 Tiled Surface:
|
||||||
|
* [DevGT+]: This field must be set to TRUE.
|
||||||
*/
|
*/
|
||||||
struct intel_region *region = stencil_irb->mt->region;
|
struct intel_region *region = stencil_irb->mt->region;
|
||||||
|
|
||||||
@@ -290,6 +294,7 @@ static void emit_depthbuffer(struct brw_context *brw)
|
|||||||
(1 << 21) | /* separate stencil enable */
|
(1 << 21) | /* separate stencil enable */
|
||||||
(1 << 22) | /* hiz enable */
|
(1 << 22) | /* hiz enable */
|
||||||
(BRW_TILEWALK_YMAJOR << 26) |
|
(BRW_TILEWALK_YMAJOR << 26) |
|
||||||
|
(1 << 27) | /* tiled surface */
|
||||||
(BRW_SURFACE_2D << 29));
|
(BRW_SURFACE_2D << 29));
|
||||||
OUT_BATCH(0);
|
OUT_BATCH(0);
|
||||||
OUT_BATCH(((region->width - 1) << 6) |
|
OUT_BATCH(((region->width - 1) << 6) |
|
||||||
|
Reference in New Issue
Block a user