mesa: Set DriverFlags.NewArray together with vbo...recalculate_inputs.
Both mean something very similar and are set at the same time now. For that vbo module to be set from core mesa, implement a public vbo module method to set that flag. In the longer term the flag should vanish in favor of a driver flag of the appropriate driver. Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
parent
d3c604e12e
commit
5b91786225
|
@ -458,6 +458,14 @@ _mesa_set_vp_override(struct gl_context *ctx, GLboolean flag)
|
|||
}
|
||||
|
||||
|
||||
static void
|
||||
set_new_array(struct gl_context *ctx)
|
||||
{
|
||||
_vbo_set_recalculate_inputs(ctx);
|
||||
ctx->NewDriverState |= ctx->DriverFlags.NewArray;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update ctx->VertexProgram._VPMode.
|
||||
* This is to distinguish whether we're running
|
||||
|
@ -490,23 +498,28 @@ _mesa_set_draw_vao(struct gl_context *ctx, struct gl_vertex_array_object *vao,
|
|||
GLbitfield filter)
|
||||
{
|
||||
struct gl_vertex_array_object **ptr = &ctx->Array._DrawVAO;
|
||||
bool new_array = false;
|
||||
if (*ptr != vao) {
|
||||
_mesa_reference_vao_(ctx, ptr, vao);
|
||||
|
||||
ctx->NewDriverState |= ctx->DriverFlags.NewArray;
|
||||
new_array = true;
|
||||
}
|
||||
|
||||
if (vao->NewArrays) {
|
||||
_mesa_update_vao_derived_arrays(ctx, vao);
|
||||
vao->NewArrays = 0;
|
||||
|
||||
ctx->NewDriverState |= ctx->DriverFlags.NewArray;
|
||||
new_array = true;
|
||||
}
|
||||
|
||||
/* May shuffle the position and generic0 bits around, filter out unwanted */
|
||||
const GLbitfield enabled = filter & _mesa_get_vao_vp_inputs(vao);
|
||||
if (ctx->Array._DrawVAOEnabledAttribs != enabled)
|
||||
ctx->NewDriverState |= ctx->DriverFlags.NewArray;
|
||||
new_array = true;
|
||||
|
||||
if (new_array)
|
||||
set_new_array(ctx);
|
||||
|
||||
ctx->Array._DrawVAOEnabledAttribs = enabled;
|
||||
_mesa_set_varying_vp_inputs(ctx, enabled);
|
||||
}
|
||||
|
|
|
@ -292,6 +292,15 @@ struct vbo_inputs
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* Set the recalculate_inputs flag.
|
||||
* The method should in the longer run be replaced with listening for the
|
||||
* DriverFlags.NewArray flag in NewDriverState. But for now ...
|
||||
*/
|
||||
void
|
||||
_vbo_set_recalculate_inputs(struct gl_context *ctx);
|
||||
|
||||
|
||||
/**
|
||||
* Initialize inputs.
|
||||
*/
|
||||
|
|
|
@ -243,6 +243,13 @@ vbo_merge_prims(struct _mesa_prim *p0, const struct _mesa_prim *p1)
|
|||
}
|
||||
|
||||
|
||||
void
|
||||
_vbo_set_recalculate_inputs(struct gl_context *ctx)
|
||||
{
|
||||
vbo_context(ctx)->exec.array.recalculate_inputs = GL_TRUE;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
_vbo_init_inputs(struct vbo_inputs *inputs)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue