mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 08:58:02 +02:00
mesa: don't report 1 for GL_VALIDATE_STATUS if user didn't validate pipeline
dEQP expects GL_VALIDATE_STATUS to be set to 0 if the user didn't call glValidateProgramPipeline even if the pipeline is valid, but we will validate pipeline objects in state changes, not draw calls. This will fix a failure in this test caused by the next commit: dEQP-GLES31.functional.state_query.program_pipeline.validate_status_get_program_pipelineiv Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com> Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8798>
This commit is contained in:
parent
b6e84f56f7
commit
d45043d3b8
3 changed files with 5 additions and 3 deletions
|
|
@ -3236,6 +3236,7 @@ struct gl_pipeline_object
|
|||
GLbitfield Flags; /**< Mask of GLSL_x flags */
|
||||
GLboolean EverBound; /**< Has the pipeline object been created */
|
||||
GLboolean Validated; /**< Pipeline Validation status */
|
||||
GLboolean UserValidated; /**< Validation status initiated by the user */
|
||||
|
||||
GLchar *InfoLog;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ use_program_stages(struct gl_context *ctx, struct gl_shader_program *shProg,
|
|||
if ((stages & GL_COMPUTE_SHADER_BIT) != 0)
|
||||
use_program_stage(ctx, GL_COMPUTE_SHADER, shProg, pipe);
|
||||
|
||||
pipe->Validated = false;
|
||||
pipe->Validated = pipe->UserValidated = false;
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
|
|
@ -734,7 +734,7 @@ _mesa_GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params)
|
|||
strlen(pipe->InfoLog) + 1 : 0;
|
||||
return;
|
||||
case GL_VALIDATE_STATUS:
|
||||
*params = pipe->Validated;
|
||||
*params = pipe->UserValidated;
|
||||
return;
|
||||
case GL_VERTEX_SHADER:
|
||||
*params = pipe->CurrentProgram[MESA_SHADER_VERTEX]
|
||||
|
|
@ -1055,6 +1055,7 @@ _mesa_ValidateProgramPipeline(GLuint pipeline)
|
|||
}
|
||||
|
||||
_mesa_validate_program_pipeline(ctx, pipe);
|
||||
pipe->UserValidated = pipe->Validated;
|
||||
}
|
||||
|
||||
void GLAPIENTRY
|
||||
|
|
|
|||
|
|
@ -1013,7 +1013,7 @@ validate_uniform(GLint location, GLsizei count, const GLvoid *values,
|
|||
/* We need to reset the validate flag on changes to samplers in case
|
||||
* two different sampler types are set to the same texture unit.
|
||||
*/
|
||||
ctx->_Shader->Validated = GL_FALSE;
|
||||
ctx->_Shader->Validated = ctx->_Shader->UserValidated = GL_FALSE;
|
||||
}
|
||||
|
||||
if (uni->type->is_image()) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue