From 8e0a0e4d30be142235c2b2439fe82935b8c67888 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Fri, 7 Feb 2014 13:56:27 -0800 Subject: [PATCH] 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 Reviewed-by: Eric Anholt --- 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 953e9bae14e..523fca2c1e8 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; } -- 2.30.2