From 1686cf92a7c67b12ed90519e5cf6428eff4d9026 Mon Sep 17 00:00:00 2001 From: Lepton Wu Date: Fri, 20 Dec 2019 17:55:58 -0800 Subject: [PATCH] vrend: Fix wrong numlayers in vrend_make_view The old code is buggy and set numlayers to 1 for GL_TEXTURE_2D_ARRAY when creating the view. Just change to use array_size directly. This fixes such tests in CtsNativeHardwareTestCases: android.hardware.nativehardware.cts.AHardwareBufferNativeTests#MultipleLayers_ColorTest_MipmapComplete_GL_RGB10_A2 android.hardware.nativehardware.cts.AHardwareBufferNativeTests#MultipleLayers_ColorTest_MipmapComplete_GL_RGB8 android.hardware.nativehardware.cts.AHardwareBufferNativeTests#MultipleLayers_ColorTest_MipmapComplete_GL_RGBA16F android.hardware.nativehardware.cts.AHardwareBufferNativeTests#MultipleLayers_ColorTest_MipmapComplete_GL_RGBA8 android.hardware.nativehardware.cts.AHardwareBufferNativeTests#MultipleLayers_ColorTest_MipmapComplete_GL_SRGB8_ALPHA8_sRGB Reviewed-by: Gurchetan Singh Signed-off-by: Lepton Wu --- src/vrend_renderer.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c index 33da26b..28b14c4 100644 --- a/src/vrend_renderer.c +++ b/src/vrend_renderer.c @@ -8276,10 +8276,6 @@ static GLuint vrend_make_view(struct vrend_resource *res, enum virgl_formats for util_format_name(format), format != dst_fmt ? "(emulated)" : ""); - unsigned layers_factor = 1; - if (res->target == GL_TEXTURE_CUBE_MAP || res->target == GL_TEXTURE_CUBE_MAP_ARRAY) - layers_factor = 6; - if (vrend_state.use_gles) { assert(res->target != GL_TEXTURE_RECTANGLE_NV); assert(res->target != GL_TEXTURE_1D); @@ -8287,7 +8283,7 @@ static GLuint vrend_make_view(struct vrend_resource *res, enum virgl_formats for } glTextureView(view_id, res->target, res->id, fmt, 0, res->base.last_level + 1, - 0, layers_factor * res->base.depth0); + 0, res->base.array_size); return view_id; }