mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
mesa: add API/extension checks for 3-component texture buffer formats
The GL_RGB32F, GL_RGB32UI and GL_RGB32I texture buffer formats are only supposed to be allowed if the GL_ARB_texture_buffer_object_rgb32 extension is supported. Note that the texture buffer extensions require a core profile. This patch adds those checks. Fixes the soon-to-be-added arb_clear_buffer_object-negative-bad-internalformat piglit test.
This commit is contained in:
parent
eaaa9695b2
commit
aa4001b607
1 changed files with 14 additions and 7 deletions
|
|
@ -3967,6 +3967,20 @@ get_texbuffer_format(const struct gl_context *ctx, GLenum internalFormat)
|
|||
}
|
||||
}
|
||||
|
||||
if (ctx->API == API_OPENGL_CORE &&
|
||||
ctx->Extensions.ARB_texture_buffer_object_rgb32) {
|
||||
switch (internalFormat) {
|
||||
case GL_RGB32F:
|
||||
return MESA_FORMAT_RGB_FLOAT32;
|
||||
case GL_RGB32UI:
|
||||
return MESA_FORMAT_RGB_UINT32;
|
||||
case GL_RGB32I:
|
||||
return MESA_FORMAT_RGB_INT32;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (internalFormat) {
|
||||
case GL_RGBA8:
|
||||
return MESA_FORMAT_RGBA8888_REV;
|
||||
|
|
@ -4031,13 +4045,6 @@ get_texbuffer_format(const struct gl_context *ctx, GLenum internalFormat)
|
|||
case GL_R32UI:
|
||||
return MESA_FORMAT_R_UINT32;
|
||||
|
||||
case GL_RGB32F:
|
||||
return MESA_FORMAT_RGB_FLOAT32;
|
||||
case GL_RGB32UI:
|
||||
return MESA_FORMAT_RGB_UINT32;
|
||||
case GL_RGB32I:
|
||||
return MESA_FORMAT_RGB_INT32;
|
||||
|
||||
default:
|
||||
return MESA_FORMAT_NONE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue