Module: Mesa Branch: master Commit: c213322b4126b2c17dc4b8cb458de2a0f17bbb02 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c213322b4126b2c17dc4b8cb458de2a0f17bbb02
Author: Kenneth Graunke <[email protected]> Date: Mon Jan 23 11:57:21 2017 -0800 i965: Fix fast depth clears for surfaces with a dimension of 16384. I hadn't bothered to set this bit because I figured it would just paper over us getting the rectangle wrong. But it turns out that there is a legitimate reason to use it, so let's do so. The alternative would be to chop up 16k clears to multiple 8k clears, which is pointlessly painful. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Nanley Chery <[email protected]> --- src/mesa/drivers/dri/i965/gen8_depth_state.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mesa/drivers/dri/i965/gen8_depth_state.c b/src/mesa/drivers/dri/i965/gen8_depth_state.c index ec29669..a7e6135 100644 --- a/src/mesa/drivers/dri/i965/gen8_depth_state.c +++ b/src/mesa/drivers/dri/i965/gen8_depth_state.c @@ -477,6 +477,18 @@ gen8_hiz_exec(struct brw_context *brw, struct intel_mipmap_tree *mt, break; case BLORP_HIZ_OP_DEPTH_CLEAR: dw1 |= GEN8_WM_HZ_DEPTH_CLEAR; + + /* The "Clear Rectangle X Max" (and Y Max) fields are exclusive, + * rather than inclusive, and limited to 16383. This means that + * for a 16384x16384 render target, we would miss the last row + * or column of pixels along the edge. + * + * To work around this, we have to set the "Full Surface Depth + * and Stencil Clear" bit. We can do this in all cases because + * we always clear the full rectangle anyway. We'll need to + * change this if we ever add scissored clear support. + */ + dw1 |= GEN8_WM_HZ_FULL_SURFACE_DEPTH_CLEAR; break; case BLORP_HIZ_OP_NONE: unreachable("Should not get here."); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
