From: Eric Anholt Date: Tue, 8 Apr 2014 20:34:39 +0000 (-0700) Subject: meta: Add support for CUBE_MAP_ARRAY to generatemipmap. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=70961c032fab53ae30a25b95445eae5aaf8c2068;p=mesa.git meta: Add support for CUBE_MAP_ARRAY to generatemipmap. I added support to bind_fbo_image in the process of building meta CopyTexSubImage, and found that it broke generatemipmap because previously we would just throw a GL error there and then end up with an incomplete FBO and fallback. Reviewed-by: Ian Romanick Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index 6dc71c9d542..12d6f65d206 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -110,6 +110,7 @@ _mesa_meta_bind_fbo_image(struct gl_texture_image *texImage, GLuint layer) break; case GL_TEXTURE_1D_ARRAY: case GL_TEXTURE_2D_ARRAY: + case GL_TEXTURE_CUBE_MAP_ARRAY: case GL_TEXTURE_3D: _mesa_FramebufferTextureLayer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, @@ -2457,6 +2458,9 @@ _mesa_meta_setup_texture_coords(GLenum faceTarget, GLuint i; GLfloat r; + if (faceTarget == GL_TEXTURE_CUBE_MAP_ARRAY) + faceTarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X + slice % 6; + /* Currently all texture targets want the W component to be 1.0. */ coords0[3] = 1.0F; diff --git a/src/mesa/drivers/common/meta_generate_mipmap.c b/src/mesa/drivers/common/meta_generate_mipmap.c index deff6904ab7..db469745d12 100644 --- a/src/mesa/drivers/common/meta_generate_mipmap.c +++ b/src/mesa/drivers/common/meta_generate_mipmap.c @@ -189,7 +189,7 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum target, */ if (use_glsl_version) { _mesa_meta_setup_vertex_objects(&mipmap->VAO, &mipmap->VBO, true, - 2, 3, 0); + 2, 4, 0); _mesa_meta_setup_blit_shader(ctx, target, &mipmap->shaders); } else { _mesa_meta_setup_ff_tnl_for_blit(&mipmap->VAO, &mipmap->VBO, 3);