mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
mesa: Save and restore GL_RASTERIZER_DISCARD state during meta ops.
During meta-operations (such as _mesa_meta_GenerateMipmap()), we need to be able to draw even if GL_RASTERIZER_DISCARD is enabled. This patch causes _mesa_meta_begin() to save the state of GL_RASTERIZER_DISCARD and disable it (so that drawing can be done during the meta-op), and causes _mesa_meta_end() to restore it. Fixes piglit test "EXT_transform_feedback/generatemipmap discard" on i965 Gen6. 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
b5b2081d75
commit
a3a4d01e41
1 changed files with 7 additions and 0 deletions
|
|
@ -180,6 +180,7 @@ struct save_state
|
|||
|
||||
/** Miscellaneous (always disabled) */
|
||||
GLboolean Lighting;
|
||||
GLboolean RasterDiscard;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -702,6 +703,9 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
|
|||
save->Lighting = ctx->Light.Enabled;
|
||||
if (ctx->Light.Enabled)
|
||||
_mesa_set_enable(ctx, GL_LIGHTING, GL_FALSE);
|
||||
save->RasterDiscard = ctx->RasterDiscard;
|
||||
if (ctx->RasterDiscard)
|
||||
_mesa_set_enable(ctx, GL_RASTERIZER_DISCARD, GL_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -981,6 +985,9 @@ _mesa_meta_end(struct gl_context *ctx)
|
|||
if (save->Lighting) {
|
||||
_mesa_set_enable(ctx, GL_LIGHTING, GL_TRUE);
|
||||
}
|
||||
if (save->RasterDiscard) {
|
||||
_mesa_set_enable(ctx, GL_RASTERIZER_DISCARD, GL_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue