[Mesa-dev] [PATCH 04/23] main: Tex[ture]Buffer[Range] functions now use _mesa_lookup_bufferobj_err.

Ian Romanick idr at freedesktop.org
Wed Feb 18 10:46:08 PST 2015


On 02/17/2015 08:03 AM, Martin Peres wrote:
> Hey,
> 
> Why not move these two patches before the one introducing BufferRange?
> 
> Also, I wouldn't mind seeing them squashed together since the previous
> patch
> alone does not change any behaviour.

I was going to suggest the same thing.  Specifically:

 - Squash the _mesa_TexBuffer changes into the previous patch.  I'll
preemptively give the resulting patch 'Reviewed-by: Ian Romanick
<ian.d.romanick at intel.com'

 - Move the previous patch before "main: Add entry point for
TextureBufferRange."

 - Squash the remaining changes from this patch into "main: Add entry
point for TextureBufferRange."

> On 12/02/15 04:05, Laura Ekstrand wrote:
>> ---
>>   src/mesa/main/teximage.c | 46
>> +++++++++++++++++++++++++---------------------
>>   1 file changed, 25 insertions(+), 21 deletions(-)
>>
>> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
>> index ce6f446..d17f15e 100644
>> --- a/src/mesa/main/teximage.c
>> +++ b/src/mesa/main/teximage.c
>> @@ -5091,11 +5091,13 @@ _mesa_TexBuffer(GLenum target, GLenum
>> internalFormat, GLuint buffer)
>>         return;
>>      }
>>   -   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
>> -   if (!bufObj && buffer) {
>> -      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexBuffer(buffer
>> %u)", buffer);
>> -      return;
>> +   if (buffer) {
>> +      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer, "glTexBuffer");
>> +      if (!bufObj)
>> +         return;
>>      }
>> +   else
>> +      bufObj = NULL;
>>        texObj = _mesa_get_current_tex_object(ctx, target);
>>      if (!texObj)
>> @@ -5128,8 +5130,11 @@ _mesa_TexBufferRange(GLenum target, GLenum
>> internalFormat, GLuint buffer,
>>         return;
>>      }
>>   -   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
>> -   if (bufObj) {
>> +   if (buffer) {
>> +      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
>> "glTexBufferRange");
>> +      if (!bufObj)
>> +         return;
>> +
>>         if (offset < 0 ||
>>             size <= 0 ||
>>             (offset + size) > bufObj->Size) {
>> @@ -5141,13 +5146,10 @@ _mesa_TexBufferRange(GLenum target, GLenum
>> internalFormat, GLuint buffer,
>>                        "glTexBufferRange(invalid offset alignment)");
>>            return;
>>         }
>> -   } else if (buffer) {
>> -      _mesa_error(ctx, GL_INVALID_OPERATION, "glTexBufferRange(buffer
>> %u)",
>> -                  buffer);
>> -      return;
>>      } else {
>>         offset = 0;
>>         size = 0;
>> +      bufObj = NULL;
>>      }
>>        texObj = _mesa_get_current_tex_object(ctx, target);
>> @@ -5175,12 +5177,13 @@ _mesa_TextureBuffer(GLuint texture, GLenum
>> internalFormat, GLuint buffer)
>>         return;
>>      }
>>   -   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
>> -   if (!bufObj && buffer) {
>> -      _mesa_error(ctx, GL_INVALID_OPERATION, "glTextureBuffer(buffer
>> %u)",
>> -                  buffer);
>> -      return;
>> +   if (buffer) {
>> +      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
>> "glTextureBuffer");
>> +      if (!bufObj)
>> +         return;
>>      }
>> +   else
>> +      bufObj = NULL;
>>        /* Get the texture object by Name. */
>>      texObj = _mesa_lookup_texture_err(ctx, texture,
>> @@ -5217,8 +5220,12 @@ _mesa_TextureBufferRange(GLuint texture, GLenum
>> internalFormat, GLuint buffer,
>>         return;
>>      }
>>   -   bufObj = _mesa_lookup_bufferobj(ctx, buffer);
>> -   if (bufObj) {
>> +   if (buffer) {
>> +      bufObj = _mesa_lookup_bufferobj_err(ctx, buffer,
>> +                                          "glTextureBufferRange");
>> +      if (!bufObj)
>> +         return;
>> +
>>         /* OpenGL 4.5 core spec (30.10.2014) says in Section 8.9 Buffer
>>          * Textures:
>>          *    "An INVALID_VALUE error is generated if offset is
>> negative, if
>> @@ -5255,10 +5262,6 @@ _mesa_TextureBufferRange(GLuint texture, GLenum
>> internalFormat, GLuint buffer,
>>                        "glTextureBufferRange(invalid offset alignment)");
>>            return;
>>         }
>> -   } else if (buffer) {
>> -      _mesa_error(ctx, GL_INVALID_OPERATION,
>> -                  "glTextureBufferRange(unrecognized buffer %u)",
>> buffer);
>> -      return;
>>      } else {
>>           /* OpenGL 4.5 core spec (30.10.2014) says in Section 8.9 Buffer
>> @@ -5270,6 +5273,7 @@ _mesa_TextureBufferRange(GLuint texture, GLenum
>> internalFormat, GLuint buffer,
>>          */
>>         offset = 0;
>>         size = 0;
>> +      bufObj = NULL;
>>      }
>>        /* Get the texture object by Name. */
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list