[Mesa-dev] [PATCH 02/23] main: Add entry point for TextureBufferRange.

Martin Peres martin.peres at free.fr
Thu Feb 19 23:46:21 PST 2015


On 18/02/2015 20:10, Ian Romanick wrote:
> On 02/17/2015 07:59 AM, Martin Peres wrote:
>> Hey Laura,
>>
>> Thanks for this code. I'll be sending reviews throughout the week :)
>>
>> On 12/02/15 04:05, Laura Ekstrand wrote:
>>> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
>>> index 336feff..ce6f446 100644
>>> --- a/src/mesa/main/teximage.c
>>> +++ b/src/mesa/main/teximage.c
>>> @@ -5197,6 +5197,96 @@ _mesa_TextureBuffer(GLuint texture, GLenum
>>> internalFormat, GLuint buffer)
>>>                                  bufObj, 0, buffer ? -1 : 0, false, true);
>>>    }
>>>    +void GLAPIENTRY
>>> +_mesa_TextureBufferRange(GLuint texture, GLenum internalFormat,
>>> GLuint buffer,
>>> +                         GLintptr offset, GLsizeiptr size)
>>> +{
>>> +   struct gl_texture_object *texObj;
>>> +   struct gl_buffer_object *bufObj;
>>> +
>>> +   GET_CURRENT_CONTEXT(ctx);
>>> +
>>> +   /* NOTE: ARB_texture_buffer_object has interactions with
>>> +    * the compatibility profile that are not implemented.
>>> +    */
>>> +   if (!(ctx->API == API_OPENGL_CORE &&
>>> +         ctx->Extensions.ARB_texture_buffer_object)) {
>>> +      _mesa_error(ctx, GL_INVALID_OPERATION,
>>> +                  "glTextureBufferRange(ARB_texture_buffer_object is
>>> not"
>>> +                  " implemented for the compatibility profile)");
>>> +      return;
>>> +   }
>> Can you point me to the relevant part of the spec that explains the
>> interaction?
> In compatibility profile, TexBos can support luminance, luminance-alpha,
> and intensity textures.  Intel hardware doesn't support that, and none
> of the TexBo common code supports it either.
>
> But... at least for glTexBuffer and glTexBufferRange there is (almost) a
> better way to do this.  We should change the GL API generator code so
> that we can omit functions from compatibility profile.  We can already
> do this for core profile (look for the deprecated='3.1' bits in
> src/mapi/glapi/gen).
>
> Due to previously mentioned issues with libraries like GLEW, we may not
> be able to do this with DSA functions that are core-only if we're going
> to expose DSA on compatibility profile.

Thanks Ian. How should I check for interactions with the compatibility mode
on the entry points I added? I guess I need to check Opengl 4.5 compat, 
right?


More information about the mesa-dev mailing list