diff options
author | Jordan Justen <[email protected]> | 2013-07-09 14:25:11 -0700 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2013-08-04 11:52:37 -0700 |
commit | 0e6be2e67b409d1542fd02e7c0f454676fc04587 (patch) | |
tree | 798022c975450829abc693de019bdc464d8fe6f5 | |
parent | 8edb79f1ef95581c20ed0c3dc49aabe99d7f072a (diff) |
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 <[email protected]>
Reviewed-by: Paul Berry <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_misc_state.c | 19 |
1 files changed, 14 insertions, 5 deletions
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; |