summaryrefslogtreecommitdiffstats
path: root/src/intel/blorp
diff options
context:
space:
mode:
authorTopi Pohjolainen <topi.pohjolainen@intel.com>2016-08-26 18:37:09 +0300
committerTopi Pohjolainen <topi.pohjolainen@intel.com>2016-09-12 11:48:29 +0300
commit514afdce95e1c75a754412203425a8ac1282cd2d (patch)
treebe9aa822f73c26922e5a0b88921f834fa5a6bd52 /src/intel/blorp
parente597821ef2292fff42488d44917f3480cceb56ad (diff)
downloadexternal_mesa3d-514afdce95e1c75a754412203425a8ac1282cd2d.zip
external_mesa3d-514afdce95e1c75a754412203425a8ac1282cd2d.tar.gz
external_mesa3d-514afdce95e1c75a754412203425a8ac1282cd2d.tar.bz2
intel/blorp: Allow multiple layers
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/intel/blorp')
-rw-r--r--src/intel/blorp/blorp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c
index 4dbba01..17c1ff4 100644
--- a/src/intel/blorp/blorp.c
+++ b/src/intel/blorp/blorp.c
@@ -119,6 +119,9 @@ brw_blorp_surface_info_init(struct blorp_context *blorp,
},
};
+ info->view.array_len = MAX2(info->surf.logical_level0_px.depth,
+ info->surf.logical_level0_px.array_len);
+
if (!is_render_target &&
(info->surf.dim == ISL_SURF_DIM_3D ||
info->surf.msaa_layout == ISL_MSAA_LAYOUT_ARRAY)) {
@@ -128,12 +131,12 @@ brw_blorp_surface_info_init(struct blorp_context *blorp,
* guaranteed that we won't be doing any funny surface hacks.
*/
info->view.base_array_layer = 0;
- info->view.array_len = MAX2(info->surf.logical_level0_px.depth,
- info->surf.logical_level0_px.array_len);
info->z_offset = layer / layer_multiplier;
} else {
info->view.base_array_layer = layer / layer_multiplier;
- info->view.array_len = 1;
+
+ assert(info->view.array_len >= info->view.base_array_layer);
+ info->view.array_len -= info->view.base_array_layer;
info->z_offset = 0;
}
}