diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2013-07-09 15:24:56 -0700 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2013-08-04 11:52:37 -0700 |
commit | a23cfb86489af20ddc1f67395b1552560001f0d0 (patch) | |
tree | 14b1b7b14399220a71c83a4d38f97b0b6b6702a9 /src/mesa/drivers/dri/i965/gen7_misc_state.c | |
parent | 08ef1dde1b7129463e8b603fd35df86646995232 (diff) | |
download | external_mesa3d-a23cfb86489af20ddc1f67395b1552560001f0d0.zip external_mesa3d-a23cfb86489af20ddc1f67395b1552560001f0d0.tar.gz external_mesa3d-a23cfb86489af20ddc1f67395b1552560001f0d0.tar.bz2 |
gen7 depth surface: calculate minimum array element being rendered
In layered rendering this will be 0. Otherwise it will be the
selected slice.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/gen7_misc_state.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_misc_state.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_misc_state.c b/src/mesa/drivers/dri/i965/gen7_misc_state.c index acbf79d..e9167b7 100644 --- a/src/mesa/drivers/dri/i965/gen7_misc_state.c +++ b/src/mesa/drivers/dri/i965/gen7_misc_state.c @@ -45,6 +45,7 @@ gen7_emit_depth_stencil_hiz(struct brw_context *brw, struct gl_framebuffer *fb = ctx->DrawBuffer; uint32_t surftype; unsigned int depth = 1; + unsigned int min_array_element; GLenum gl_target = GL_TEXTURE_2D; unsigned int lod; const struct intel_renderbuffer *irb = NULL; @@ -79,6 +80,15 @@ gen7_emit_depth_stencil_hiz(struct brw_context *brw, break; } + if (fb->Layered || !irb) { + min_array_element = 0; + } else if (irb->mt->num_samples > 1) { + /* Convert physical layer to logical layer. */ + min_array_element = irb->mt_layer / irb->mt->num_samples; + } else { + min_array_element = irb->mt_layer; + } + lod = irb ? irb->mt_level - irb->mt->first_level : 0; /* _NEW_DEPTH, _NEW_STENCIL, _NEW_BUFFERS */ |