[Mesa-stable] [Mesa-dev] [PATCH 13/15] Revert "mesa: Make GL_TEXTURE_CUBE_MAP valid in FramebufferTextureLayer"
Fredrik Höglund
fredrik at kde.org
Tue May 19 13:41:45 PDT 2015
On Tuesday 19 May 2015, Ian Romanick wrote:
> On 05/19/2015 09:22 AM, Fredrik Höglund wrote:
> > On Monday 18 May 2015, Ian Romanick wrote:
> >> From: Ian Romanick <ian.d.romanick at intel.com>
> >>
> >> This reverts commit 03420eac0c53280beae5f72783e52950fd1e3fba.
> >
> > Did you mean to revert this commit?
>
> I did, but that may have been in error. I saw that it depended on
> gl_extensions::ARB_direct_state_access and gave it the ax. After
> looking a little closer, I think there are some issues with the original
> patch. I think the only change necessary is to vold the
> GL_TEXTURE_CUBE_MAP case (in the second hunk) in with the "true" cases.
> I think I'll also add some comments explaining why it and
> GL_TEXTURE_CUBE_MAP_ARRAY don't need additional version or extension checks.
But GL_TEXTURE_CUBE_MAP is not supposed to be valid
in the compatibility profile.
> I'm quite concerned that reverting this patch did not affect any piglit
> tests. I think we need a test for both the DSA version using
> GL_TEXTURE_CUBE_MAP and the non-DSA version using GL_TEXTURE_CUBE_MAP
> when DSA is available.
That's because no one has reviewed the piglit test I posted,
so it's still sitting on the mailing list. It tests both the DSA and
the non-DSA version.
> >> Cc: "10.6" <mesa-stable at lists.freedesktop.org>
> >> ---
> >> src/mesa/main/fbobject.c | 36 +++++-------------------------------
> >> 1 file changed, 5 insertions(+), 31 deletions(-)
> >>
> >> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
> >> index 5b8c52a..ce1c0a6 100644
> >> --- a/src/mesa/main/fbobject.c
> >> +++ b/src/mesa/main/fbobject.c
> >> @@ -2704,9 +2704,9 @@ static bool
> >> check_texture_target(struct gl_context *ctx, GLenum target,
> >> const char *caller)
> >> {
> >> - /* We're being called by glFramebufferTextureLayer().
> >> - * The only legal texture types for that function are 3D,
> >> - * cube-map, and 1D/2D/cube-map array textures.
> >> + /* We're being called by glFramebufferTextureLayer() and
> >> + * textarget is not used. The only legal texture types for
> >> + * that function are 3D and 1D/2D arrays textures.
> >> */
> >> switch (target) {
> >> case GL_TEXTURE_3D:
> >> @@ -2715,11 +2715,6 @@ check_texture_target(struct gl_context *ctx, GLenum target,
> >> case GL_TEXTURE_CUBE_MAP_ARRAY:
> >> case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
> >> return true;
> >> - case GL_TEXTURE_CUBE_MAP:
> >> - /* This target is valid in TextureLayer when ARB_direct_state_access
> >> - * or OpenGL 4.5 is supported.
> >> - */
> >> - return ctx->Extensions.ARB_direct_state_access;
> >> }
> >>
> >> _mesa_error(ctx, GL_INVALID_OPERATION,
> >> @@ -2852,13 +2847,6 @@ check_layer(struct gl_context *ctx, GLenum target, GLint layer,
> >> return false;
> >> }
> >> }
> >> - else if (target == GL_TEXTURE_CUBE_MAP) {
> >> - if (layer >= 6) {
> >> - _mesa_error(ctx, GL_INVALID_VALUE,
> >> - "%s(layer %u >= 6)", caller, layer);
> >> - return false;
> >> - }
> >> - }
> >>
> >> return true;
> >> }
> >> @@ -3047,7 +3035,6 @@ _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment,
> >> GET_CURRENT_CONTEXT(ctx);
> >> struct gl_framebuffer *fb;
> >> struct gl_texture_object *texObj;
> >> - GLenum textarget = 0;
> >>
> >> const char *func = "glFramebufferTextureLayer";
> >>
> >> @@ -3073,15 +3060,9 @@ _mesa_FramebufferTextureLayer(GLenum target, GLenum attachment,
> >>
> >> if (!check_level(ctx, texObj->Target, level, func))
> >> return;
> >> -
> >> - if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
> >> - assert(layer >= 0 && layer < 6);
> >> - textarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X + layer;
> >> - layer = 0;
> >> - }
> >> }
> >>
> >> - _mesa_framebuffer_texture(ctx, fb, attachment, texObj, textarget, level,
> >> + _mesa_framebuffer_texture(ctx, fb, attachment, texObj, 0, level,
> >> layer, GL_FALSE, func);
> >> }
> >>
> >> @@ -3093,7 +3074,6 @@ _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment,
> >> GET_CURRENT_CONTEXT(ctx);
> >> struct gl_framebuffer *fb;
> >> struct gl_texture_object *texObj;
> >> - GLenum textarget = 0;
> >>
> >> const char *func = "glNamedFramebufferTextureLayer";
> >>
> >> @@ -3115,15 +3095,9 @@ _mesa_NamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment,
> >>
> >> if (!check_level(ctx, texObj->Target, level, func))
> >> return;
> >> -
> >> - if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
> >> - assert(layer >= 0 && layer < 6);
> >> - textarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X + layer;
> >> - layer = 0;
> >> - }
> >> }
> >>
> >> - _mesa_framebuffer_texture(ctx, fb, attachment, texObj, textarget, level,
> >> + _mesa_framebuffer_texture(ctx, fb, attachment, texObj, 0, level,
> >> layer, GL_FALSE, func);
> >> }
> >>
>
>
More information about the mesa-stable
mailing list