mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 15:48:36 +02:00
mesa: Disable certain error checks when transform feedback is paused
When transform feedback is paused, it is legal to change programs or to perform drawing operations using a drawing mode that doesn't match the transform feedback mode. Reviewed-by: Brian Paul <brianp@vmare.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
08ce48733d
commit
87c7e5fb87
2 changed files with 5 additions and 3 deletions
|
|
@ -1436,7 +1436,7 @@ _mesa_UseProgramObjectARB(GLhandleARB program)
|
|||
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
|
||||
if (obj->Active) {
|
||||
if (obj->Active && !obj->Paused) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glUseProgram(transform feedback active)");
|
||||
return;
|
||||
|
|
@ -1638,7 +1638,8 @@ _mesa_UseShaderProgramEXT(GLenum type, GLuint program)
|
|||
return;
|
||||
}
|
||||
|
||||
if (ctx->TransformFeedback.CurrentObject->Active) {
|
||||
if (ctx->TransformFeedback.CurrentObject->Active &&
|
||||
!ctx->TransformFeedback.CurrentObject->Paused) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glUseShaderProgramEXT(transform feedback is active)");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -98,7 +98,8 @@ reference_transform_feedback_object(struct gl_transform_feedback_object **ptr,
|
|||
GLboolean
|
||||
_mesa_validate_primitive_mode(struct gl_context *ctx, GLenum mode)
|
||||
{
|
||||
if (ctx->TransformFeedback.CurrentObject->Active) {
|
||||
if (ctx->TransformFeedback.CurrentObject->Active &&
|
||||
!ctx->TransformFeedback.CurrentObject->Paused) {
|
||||
switch (mode) {
|
||||
case GL_POINTS:
|
||||
return ctx->TransformFeedback.Mode == GL_POINTS;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue