mesa: return initial value for VALIDATE_STATUS if pipe not bound
From OpenGL 4.5 Core spec (7.13): "If pipeline is a name that has been generated (without subsequent deletion) by GenProgramPipelines, but refers to a program pipeline object that has not been previously bound, the GL first creates a new state vector in the same manner as when BindProgramPipeline creates a new program pipeline object." I interpret this as "If GetProgramPipelineiv gets called without a bound (but valid) pipeline object, the state should reflect initial state of a new pipeline object." This is also expected behaviour by ES31-CTS.sepshaderobjs.PipelineApi conformance test. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
This commit is contained in:
parent
d9689be5c6
commit
ba02f7a3b6
|
@ -614,7 +614,8 @@ _mesa_GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params)
|
|||
*params = pipe->InfoLog ? strlen(pipe->InfoLog) + 1 : 0;
|
||||
return;
|
||||
case GL_VALIDATE_STATUS:
|
||||
*params = pipe->Validated;
|
||||
/* If pipeline is not bound, return initial value 0. */
|
||||
*params = (ctx->_Shader->Name != pipe->Name) ? 0 : pipe->Validated;
|
||||
return;
|
||||
case GL_VERTEX_SHADER:
|
||||
*params = pipe->CurrentProgram[MESA_SHADER_VERTEX]
|
||||
|
|
Loading…
Reference in New Issue