diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/teximage.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c index df8f0bcd454..411ec49efd1 100644 --- a/src/mesa/main/teximage.c +++ b/src/mesa/main/teximage.c @@ -5046,6 +5046,8 @@ texture_buffer_range(struct gl_context *ctx, GLintptr offset, GLsizeiptr size, const char *caller) { + GLintptr oldOffset = texObj->BufferOffset; + GLsizeiptr oldSize = texObj->BufferSize; mesa_format format; /* NOTE: ARB_texture_buffer_object has interactions with @@ -5078,6 +5080,17 @@ texture_buffer_range(struct gl_context *ctx, } _mesa_unlock_texture(ctx, texObj); + if (ctx->Driver.TexParameter) { + if (offset != oldOffset) { + ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_OFFSET, + (const GLfloat *) &offset); + } + if (size != oldSize) { + ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_SIZE, + (const GLfloat *) &size); + } + } + ctx->NewDriverState |= ctx->DriverFlags.NewTextureBuffer; if (bufObj) { |