[Mesa-dev] [PATCH] i965: compute the right number of array layers use base layer
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Fri Sep 7 14:59:13 UTC 2018
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107856
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index 42af41aca32..6419876437e 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -1499,14 +1499,14 @@ update_buffer_image_param(struct brw_context *brw,
static unsigned
get_image_num_layers(const struct intel_mipmap_tree *mt, GLenum target,
- unsigned level)
+ unsigned level, unsigned layer)
{
if (target == GL_TEXTURE_CUBE_MAP)
return 6;
return target == GL_TEXTURE_3D ?
minify(mt->surf.logical_level0_px.depth, level) :
- mt->surf.logical_level0_px.array_len;
+ minify(mt->surf.logical_level0_px.array_len, layer);
}
static void
@@ -1540,7 +1540,9 @@ update_image_surface(struct brw_context *brw,
struct intel_texture_object *intel_obj = intel_texture_object(obj);
struct intel_mipmap_tree *mt = intel_obj->mt;
const unsigned num_layers = u->Layered ?
- get_image_num_layers(mt, obj->Target, u->Level) : 1;
+ get_image_num_layers(mt, obj->Target,
+ obj->MinLevel + u->Level,
+ obj->MinLayer + u->_Layer) : 1;
struct isl_view view = {
.format = format,
--
2.19.0.rc1
More information about the mesa-dev
mailing list