mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 08:50:13 +01:00
mesa: Export shader image format to mesa format conversion function.
This function will be useful for back-ends to translate an image internal format as specified in GLSL code into a mesa format. Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
96142a3e87
commit
dded5271e4
2 changed files with 12 additions and 5 deletions
|
|
@ -58,8 +58,8 @@
|
|||
# define MESA_FORMAT_SIGNED_RG_8 MESA_FORMAT_R8G8_SNORM
|
||||
#endif
|
||||
|
||||
static mesa_format
|
||||
get_image_format(GLenum format)
|
||||
mesa_format
|
||||
_mesa_get_shader_image_format(GLenum format)
|
||||
{
|
||||
switch (format) {
|
||||
case GL_RGBA32F:
|
||||
|
|
@ -421,7 +421,7 @@ validate_bind_image_texture(struct gl_context *ctx, GLuint unit,
|
|||
return GL_FALSE;
|
||||
}
|
||||
|
||||
if (!get_image_format(format)) {
|
||||
if (!_mesa_get_shader_image_format(format)) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glBindImageTexture(format)");
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
|
@ -458,7 +458,7 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level,
|
|||
u->Level = level;
|
||||
u->Access = access;
|
||||
u->Format = format;
|
||||
u->_ActualFormat = get_image_format(format);
|
||||
u->_ActualFormat = _mesa_get_shader_image_format(format);
|
||||
|
||||
if (_mesa_tex_target_is_layered(t->Target)) {
|
||||
u->Layered = layered;
|
||||
|
|
@ -573,7 +573,7 @@ _mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures)
|
|||
continue;
|
||||
}
|
||||
|
||||
actualFormat = get_image_format(image->InternalFormat);
|
||||
actualFormat = _mesa_get_shader_image_format(image->InternalFormat);
|
||||
|
||||
if (actualFormat == MESA_FORMAT_NONE) {
|
||||
/* The ARB_multi_bind spec says:
|
||||
|
|
|
|||
|
|
@ -28,9 +28,16 @@
|
|||
#define SHADERIMAGE_H
|
||||
|
||||
#include "glheader.h"
|
||||
#include "formats.h"
|
||||
|
||||
struct gl_context;
|
||||
|
||||
/**
|
||||
* Get the matching mesa_format for a shader image format GL enum.
|
||||
*/
|
||||
mesa_format
|
||||
_mesa_get_shader_image_format(GLenum format);
|
||||
|
||||
/**
|
||||
* Recalculate the \c _Valid flag of a context's shader image units.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue