mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 00:00:12 +01:00
mesa: Validate image units when the texture state changes.
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
parent
ace31f4bc0
commit
647344bf3e
3 changed files with 23 additions and 0 deletions
|
|
@ -380,6 +380,17 @@ validate_image_unit(struct gl_context *ctx, struct gl_image_unit *u)
|
|||
return GL_TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
_mesa_validate_image_units(struct gl_context *ctx)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ctx->Const.MaxImageUnits; ++i) {
|
||||
struct gl_image_unit *u = &ctx->ImageUnits[i];
|
||||
u->_Valid = validate_image_unit(ctx, u);
|
||||
}
|
||||
}
|
||||
|
||||
static GLboolean
|
||||
validate_bind_image_texture(struct gl_context *ctx, GLuint unit,
|
||||
GLuint texture, GLint level, GLboolean layered,
|
||||
|
|
|
|||
|
|
@ -31,6 +31,15 @@
|
|||
|
||||
struct gl_context;
|
||||
|
||||
/**
|
||||
* Recalculate the \c _Valid flag of a context's shader image units.
|
||||
*
|
||||
* To be called when the state of any texture bound to an image unit
|
||||
* changes.
|
||||
*/
|
||||
void
|
||||
_mesa_validate_image_units(struct gl_context *ctx);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level,
|
||||
GLboolean layered, GLint layer, GLenum access,
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "context.h"
|
||||
#include "enums.h"
|
||||
#include "macros.h"
|
||||
#include "shaderimage.h"
|
||||
#include "texobj.h"
|
||||
#include "teximage.h"
|
||||
#include "texstate.h"
|
||||
|
|
@ -674,6 +675,8 @@ update_texture_state( struct gl_context *ctx )
|
|||
|
||||
if (!fprog || !vprog)
|
||||
update_texgen(ctx);
|
||||
|
||||
_mesa_validate_image_units(ctx);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue