mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 17:30:20 +01:00
mesa/r300classic: Fix dri2Invalidate/radeon_prepare_render for page flipping.
A call to radeon_prepare_render() at the beginning of draw operations was placed too deep in the call chain, inside r300RunRenderPrimitive(), instead of r300DrawPrims() where it belongs. This leads to emission of stale target color renderbuffer into the cs if bufferswaps via page-flipping are used, and thereby causes massive rendering corruption due to unsynchronized rendering into the active frontbuffer. This patch fixes such problems for use with the upcoming radeon page-flipping patches. Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
This commit is contained in:
parent
46c1970067
commit
d8eef5196f
2 changed files with 4 additions and 2 deletions
|
|
@ -717,6 +717,10 @@ static void r300DrawPrims(struct gl_context *ctx,
|
|||
GLuint max_index)
|
||||
{
|
||||
GLboolean retval;
|
||||
struct r300_context *r300 = R300_CONTEXT(ctx);
|
||||
radeonContextPtr radeon = &r300->radeon;
|
||||
|
||||
radeon_prepare_render(radeon);
|
||||
|
||||
/* This check should get folded into just the places that
|
||||
* min/max index are really needed.
|
||||
|
|
|
|||
|
|
@ -327,8 +327,6 @@ void r300RunRenderPrimitive(struct gl_context * ctx, int start, int end, int pri
|
|||
BATCH_LOCALS(&rmesa->radeon);
|
||||
int type, num_verts;
|
||||
|
||||
radeon_prepare_render(&rmesa->radeon);
|
||||
|
||||
type = r300PrimitiveType(rmesa, prim);
|
||||
num_verts = r300NumVerts(rmesa, end - start, prim);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue