Mesa (master): i965: Fix fast depth clear values on Broadwell.

Kenneth Graunke kwg at kemper.freedesktop.org
Sat Feb 8 03:35:07 UTC 2014


Module: Mesa
Branch: master
Commit: 8e0a0e4d30be142235c2b2439fe82935b8c67888
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e0a0e4d30be142235c2b2439fe82935b8c67888

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri Feb  7 13:56:27 2014 -0800

i965: Fix fast depth clear values on Broadwell.

Broadwell's 3DSTATE_CLEAR_PARAMS packet expects a floating point value
regardless of format.  This means we need to stop converting it to
UNORM.

Storing the value as float would make sense, but since we already have a
uint32_t field, this patch continues shoehorning it into that.  In a
sense, this makes mt->depth_clear_value the DWord you emit in the
packet, rather than the clear value itself.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/mesa/drivers/dri/i965/brw_clear.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_clear.c b/src/mesa/drivers/dri/i965/brw_clear.c
index 953e9ba..523fca2 100644
--- a/src/mesa/drivers/dri/i965/brw_clear.c
+++ b/src/mesa/drivers/dri/i965/brw_clear.c
@@ -160,7 +160,10 @@ brw_fast_clear_depth(struct gl_context *ctx)
       /* FALLTHROUGH */
 
    default:
-      depth_clear_value = fb->_DepthMax * ctx->Depth.Clear;
+      if (brw->gen >= 8)
+         depth_clear_value = float_as_int(ctx->Depth.Clear);
+      else
+         depth_clear_value = fb->_DepthMax * ctx->Depth.Clear;
       break;
    }
 




More information about the mesa-commit mailing list