Revert INTEL_FIREVERTICES to flush primitives instead of asserting none pending.

The assertion was triggered in some cases, e.g. by the xscreensaver hack
stonerview.
This commit is contained in:
Michel Dänzer 2006-09-20 15:29:36 +00:00
parent 4f8549634e
commit 9d6e0f5d64
5 changed files with 11 additions and 22 deletions

View file

@ -215,8 +215,7 @@ i830_reduced_primitive_state(struct intel_context *intel, GLenum rprim)
i830->intel.reduced_primitive = rprim;
if (st1 != i830->state.Stipple[I830_STPREG_ST1]) {
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
I830_STATECHANGE(i830, I830_UPLOAD_STIPPLE);
i830->state.Stipple[I830_STPREG_ST1] = st1;

View file

@ -74,8 +74,7 @@ i915_reduced_primitive_state(struct intel_context *intel, GLenum rprim)
i915->intel.reduced_primitive = rprim;
if (st1 != i915->state.Stipple[I915_STPREG_ST1]) {
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
I915_STATECHANGE(i915, I915_UPLOAD_STIPPLE);
i915->state.Stipple[I915_STPREG_ST1] = st1;

View file

@ -371,7 +371,8 @@ do { \
#define INTEL_FIREVERTICES(intel) \
do { \
assert(!(intel)->prim.flush); \
if ((intel)->prim.flush) \
(intel)->prim.flush(intel); \
} while (0)
/* ================================================================

View file

@ -123,11 +123,7 @@ do { \
intelDmaPrimitive( intel, prim ); \
} while (0)
#define FLUSH() \
do { \
if (intel->prim.flush) \
intel->prim.flush(intel); \
} while (0)
#define FLUSH() INTEL_FIREVERTICES(intel)
#define GET_SUBSEQUENT_VB_MAX_VERTS() \
((BATCH_SZ - 1500) / (intel->vertex_size*4))
@ -231,8 +227,7 @@ intel_run_render(GLcontext * ctx, struct tnl_pipeline_stage *stage)
tnl->Driver.Render.Finish(ctx);
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
return GL_FALSE; /* finished the pipe */
}

View file

@ -568,8 +568,7 @@ intel_fallback_tri(struct intel_context *intel,
if (0)
fprintf(stderr, "\n%s\n", __FUNCTION__);
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
_swsetup_Translate(ctx, v0, &v[0]);
_swsetup_Translate(ctx, v1, &v[1]);
@ -590,8 +589,7 @@ intel_fallback_line(struct intel_context *intel,
if (0)
fprintf(stderr, "\n%s\n", __FUNCTION__);
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
_swsetup_Translate(ctx, v0, &v[0]);
_swsetup_Translate(ctx, v1, &v[1]);
@ -834,8 +832,7 @@ intelRenderFinish(GLcontext * ctx)
if (intel->RenderIndex & INTEL_FALLBACK_BIT)
_swrast_flush(ctx);
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
}
@ -858,8 +855,7 @@ intelRasterPrimitive(GLcontext * ctx, GLenum rprim, GLuint hwprim)
/* Start a new primitive. Arrange to have it flushed later on.
*/
if (hwprim != intel->prim.primitive) {
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
intelStartInlinePrimitive(intel, hwprim, INTEL_BATCH_CLIPRECTS);
}
@ -1005,8 +1001,7 @@ intel_meta_draw_poly(struct intel_context *intel,
vb += 6;
}
if (intel->prim.flush)
intel->prim.flush(intel);
INTEL_FIREVERTICES(intel);
}
void