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_blorp.cpp | |
parent | 08ef1dde1b7129463e8b603fd35df86646995232 (diff) |
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_blorp.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_blorp.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_blorp.cpp b/src/mesa/drivers/dri/i965/gen7_blorp.cpp index 2ab7c5787e1..9ce1a758399 100644 --- a/src/mesa/drivers/dri/i965/gen7_blorp.cpp +++ b/src/mesa/drivers/dri/i965/gen7_blorp.cpp @@ -665,6 +665,7 @@ gen7_blorp_emit_depth_stencil_config(struct brw_context *brw, uint8_t mocs = brw->is_haswell ? GEN7_MOCS_L3 : 0; uint32_t surftype; unsigned int depth = MAX2(params->depth.mt->logical_depth0, 1); + unsigned int min_array_element; GLenum gl_target = params->depth.mt->target; unsigned int lod; @@ -689,6 +690,12 @@ gen7_blorp_emit_depth_stencil_config(struct brw_context *brw, break; } + min_array_element = params->depth.layer; + if (params->depth.mt->num_samples > 1) { + /* Convert physical layer to logical layer. */ + min_array_element /= params->depth.mt->num_samples; + } + lod = params->depth.level - params->depth.mt->first_level; /* 3DSTATE_DEPTH_BUFFER */ |