mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 18:50:10 +01:00
mesa: simplify _mesa_is_image_unit_valid for buffers
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
caf39d6df9
commit
c0ed52f614
1 changed files with 13 additions and 12 deletions
|
|
@ -477,6 +477,13 @@ _mesa_is_image_unit_valid(struct gl_context *ctx, struct gl_image_unit *u)
|
|||
if (!t)
|
||||
return GL_FALSE;
|
||||
|
||||
/* The GL 4.5 Core spec doesn't say anything about buffers. In practice,
|
||||
* the image buffer format is always compatible with the underlying
|
||||
* buffer storage.
|
||||
*/
|
||||
if (t->Target == GL_TEXTURE_BUFFER)
|
||||
return GL_TRUE;
|
||||
|
||||
if (!t->_BaseComplete && !t->_MipmapComplete)
|
||||
_mesa_test_texobj_completeness(ctx, t);
|
||||
|
||||
|
|
@ -490,20 +497,14 @@ _mesa_is_image_unit_valid(struct gl_context *ctx, struct gl_image_unit *u)
|
|||
u->_Layer >= _mesa_get_texture_layers(t, u->Level))
|
||||
return GL_FALSE;
|
||||
|
||||
if (t->Target == GL_TEXTURE_BUFFER) {
|
||||
tex_format = _mesa_get_shader_image_format(t->BufferObjectFormat);
|
||||
struct gl_texture_image *img = (t->Target == GL_TEXTURE_CUBE_MAP ?
|
||||
t->Image[u->_Layer][u->Level] :
|
||||
t->Image[0][u->Level]);
|
||||
|
||||
} else {
|
||||
struct gl_texture_image *img = (t->Target == GL_TEXTURE_CUBE_MAP ?
|
||||
t->Image[u->_Layer][u->Level] :
|
||||
t->Image[0][u->Level]);
|
||||
|
||||
if (!img || img->Border || img->NumSamples > ctx->Const.MaxImageSamples)
|
||||
return GL_FALSE;
|
||||
|
||||
tex_format = _mesa_get_shader_image_format(img->InternalFormat);
|
||||
}
|
||||
if (!img || img->Border || img->NumSamples > ctx->Const.MaxImageSamples)
|
||||
return GL_FALSE;
|
||||
|
||||
tex_format = _mesa_get_shader_image_format(img->InternalFormat);
|
||||
if (!tex_format)
|
||||
return GL_FALSE;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue