From Section 11.1.3.11 (Validation) of the GLES 3.1 spec:
"An INVALID_OPERATION error is generated by any command that trans-
fers vertices to the GL or launches compute work if the current set
of active program objects cannot be executed, for reasons including:"
It then goes on to list the rules we validate in the
_mesa_validate_program_pipeline() function.
For ValidateProgramPipeline the only mention of generating an error is:
"An INVALID_OPERATION error is generated if pipeline is not a name re-
turned from a previous call to GenProgramPipelines or if such a name has
since been deleted by DeleteProgramPipelines,"
Which we handle separately.
This fixes:
ES31-CTS.sepshaderobjs.PipelineApi
No regressions on the eEQP 3.1 tests.
Cc: Gregory Hainaut <gregory.hainaut@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
return;
}
- _mesa_validate_program_pipeline(ctx, pipe,
- (ctx->_Shader->Name == pipe->Name));
+ /* ValidateProgramPipeline should not throw errors when pipeline validation
+ * fails and should instead only update the validation status. We pass
+ * false for IsBound to avoid an error being thrown.
+ */
+ _mesa_validate_program_pipeline(ctx, pipe, false);
/* Validate inputs against outputs, this cannot be done during linking
* since programs have been linked separately from each other.