mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 22:08:26 +02:00
mesa: Fix display list handling for GL_ARB_draw_instanced.
When you called them in a display list compile before, you would just
end up calling through NULL.
Fixes piglit GL_ARB_draw_instanced/dlist.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit 3c69a18b6a)
This commit is contained in:
parent
ae02489a6d
commit
fe64ad0cba
2 changed files with 28 additions and 6 deletions
|
|
@ -399,12 +399,6 @@ _mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint fi
|
|||
if (!check_valid_to_render(ctx, "glDrawArraysInstanced(invalid to render)"))
|
||||
return GL_FALSE;
|
||||
|
||||
if (ctx->CompileFlag) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glDrawArraysInstanced(display list");
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
if (ctx->Const.CheckArrayBounds) {
|
||||
if (first + count > (GLint) ctx->Array.ArrayObj->_MaxElement)
|
||||
return GL_FALSE;
|
||||
|
|
|
|||
|
|
@ -1300,6 +1300,30 @@ save_BlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeA)
|
|||
}
|
||||
|
||||
|
||||
/* GL_ARB_draw_instanced. */
|
||||
static void GLAPIENTRY
|
||||
save_DrawArraysInstancedARB(GLenum mode,
|
||||
GLint first,
|
||||
GLsizei count,
|
||||
GLsizei primcount)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glDrawArraysInstanced() during display list compile");
|
||||
}
|
||||
|
||||
static void GLAPIENTRY
|
||||
save_DrawElementsInstancedARB(GLenum mode,
|
||||
GLsizei count,
|
||||
GLenum type,
|
||||
const GLvoid *indices,
|
||||
GLsizei primcount)
|
||||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION,
|
||||
"glDrawElementsInstanced() during display list compile");
|
||||
}
|
||||
|
||||
static void invalidate_saved_current_state( struct gl_context *ctx )
|
||||
{
|
||||
GLint i;
|
||||
|
|
@ -10751,6 +10775,10 @@ _mesa_save_vtxfmt_init(GLvertexformat * vfmt)
|
|||
|
||||
vfmt->Rectf = save_Rectf;
|
||||
|
||||
/* GL_ARB_draw_instanced */
|
||||
vfmt->DrawArraysInstanced = save_DrawArraysInstancedARB;
|
||||
vfmt->DrawElementsInstanced = save_DrawElementsInstancedARB;
|
||||
|
||||
/* The driver is required to implement these as
|
||||
* 1) They can probably do a better job.
|
||||
* 2) A lot of new mechanisms would have to be added to this module
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue