From: Jordan Justen Date: Tue, 9 Jul 2013 21:25:11 +0000 (-0700) Subject: i965: init global state first in brw_workaround_depthstencil_alignment X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0e6be2e67b409d1542fd02e7c0f454676fc04587;p=mesa.git i965: init global state first in brw_workaround_depthstencil_alignment In a future pass this will allow us to exit-early from this routine to disable it for gen >= 7. Signed-off-by: Jordan Justen Reviewed-by: Paul Berry --- diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c index 0ab1e76b3ce..1e31ad8cc41 100644 --- a/src/mesa/drivers/dri/i965/brw_misc_state.c +++ b/src/mesa/drivers/dri/i965/brw_misc_state.c @@ -341,6 +341,20 @@ brw_workaround_depthstencil_alignment(struct brw_context *brw, if (depth_irb) depth_mt = depth_irb->mt; + /* Initialize brw->depthstencil to 'nop' workaround state. + */ + brw->depthstencil.tile_x = 0; + brw->depthstencil.tile_y = 0; + brw->depthstencil.depth_offset = 0; + brw->depthstencil.stencil_offset = 0; + brw->depthstencil.hiz_offset = 0; + brw->depthstencil.depth_mt = NULL; + brw->depthstencil.stencil_mt = NULL; + if (depth_irb) + brw->depthstencil.depth_mt = depth_mt; + if (stencil_irb) + brw->depthstencil.stencil_mt = get_stencil_miptree(stencil_irb); + /* Check if depth buffer is in depth/stencil format. If so, then it's only * safe to invalidate it if we're also clearing stencil, and both depth_irb * and stencil_irb point to the same miptree. @@ -515,11 +529,6 @@ brw_workaround_depthstencil_alignment(struct brw_context *brw, */ brw->depthstencil.tile_x = tile_x; brw->depthstencil.tile_y = tile_y; - brw->depthstencil.depth_offset = 0; - brw->depthstencil.stencil_offset = 0; - brw->depthstencil.hiz_offset = 0; - brw->depthstencil.depth_mt = NULL; - brw->depthstencil.stencil_mt = NULL; if (depth_irb) { depth_mt = depth_irb->mt; brw->depthstencil.depth_mt = depth_mt;