From 7c1348ac8fd3bb4777a4ade5d2f9e886bef2c3bf Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Mon, 27 Feb 2006 17:38:56 +0000 Subject: [PATCH] Remove the flags argument for intel_meta_draw_quad(). 3D primitives must always be emitted with cliprects else the drawing origin may not be emitted either. --- src/mesa/drivers/dri/i915/intel_blit.c | 9 +++---- src/mesa/drivers/dri/i915/intel_buffers.c | 25 +++++++------------- src/mesa/drivers/dri/i915/intel_pixel_copy.c | 3 +-- src/mesa/drivers/dri/i915/intel_pixel_draw.c | 3 +-- src/mesa/drivers/dri/i915/intel_tris.c | 8 ++++--- src/mesa/drivers/dri/i915/intel_tris.h | 3 +-- 6 files changed, 22 insertions(+), 29 deletions(-) diff --git a/src/mesa/drivers/dri/i915/intel_blit.c b/src/mesa/drivers/dri/i915/intel_blit.c index bbd9020cd9f..0185d5fda2f 100644 --- a/src/mesa/drivers/dri/i915/intel_blit.c +++ b/src/mesa/drivers/dri/i915/intel_blit.c @@ -328,10 +328,11 @@ void intelClearWithBlit(GLcontext *ctx, GLbitfield flags, GLboolean all, b = *box; } - _mesa_printf("clear %d,%d..%d,%d, flags %x\n", - b.x1, b.y1, - b.x2, b.y2, - flags); + if (0) + _mesa_printf("clear %d,%d..%d,%d, flags %x\n", + b.x1, b.y1, + b.x2, b.y2, + flags); if ( flags & BUFFER_BIT_FRONT_LEFT ) { BEGIN_BATCH(6, INTEL_BATCH_NO_CLIPRECTS); diff --git a/src/mesa/drivers/dri/i915/intel_buffers.c b/src/mesa/drivers/dri/i915/intel_buffers.c index fd937d0b0ba..f3f2d7974aa 100644 --- a/src/mesa/drivers/dri/i915/intel_buffers.c +++ b/src/mesa/drivers/dri/i915/intel_buffers.c @@ -218,22 +218,15 @@ static void emit_clip_rect_quads(struct intel_context *intel, { GLuint i; - for (i = 0; i < intel->numClipRects; i++) { - drm_clip_rect_t rect; - - if (intel_intersect_cliprects(&rect, - clear, - &intel->pClipRects[i])) - { - intel_meta_draw_quad(intel, - rect.x1, rect.x2, - rect.y1, rect.y2, - 0, - intel->ClearColor, - 0, 0, 0, 0, - INTEL_BATCH_NO_CLIPRECTS); - } - } + /* XXX: Using INTEL_BATCH_NO_CLIPRECTS here is dangerous as the + * drawing origin may not be correctly emitted. + */ + intel_meta_draw_quad(intel, + clear->x1, clear->x2, + clear->y1, clear->y2, + 0, + intel->ClearColor, + 0, 0, 0, 0); } diff --git a/src/mesa/drivers/dri/i915/intel_pixel_copy.c b/src/mesa/drivers/dri/i915/intel_pixel_copy.c index a6249445e19..c4e46bab451 100644 --- a/src/mesa/drivers/dri/i915/intel_pixel_copy.c +++ b/src/mesa/drivers/dri/i915/intel_pixel_copy.c @@ -170,8 +170,7 @@ static GLboolean do_texture_copypixels( GLcontext *ctx, 0, /* XXX: what z value? */ 0x00ff00ff, srcx, srcx+width, - srcy, srcy+height, - INTEL_BATCH_CLIPRECTS); + srcy, srcy+height); } out: diff --git a/src/mesa/drivers/dri/i915/intel_pixel_draw.c b/src/mesa/drivers/dri/i915/intel_pixel_draw.c index 896afec3d1d..ea3ca113eb7 100644 --- a/src/mesa/drivers/dri/i915/intel_pixel_draw.c +++ b/src/mesa/drivers/dri/i915/intel_pixel_draw.c @@ -173,8 +173,7 @@ static GLboolean do_texture_drawpixels( GLcontext *ctx, - ctx->Current.RasterPos[2] * .5, 0x00ff00ff, srcx, srcx+width, - srcy+height, srcy, - INTEL_BATCH_CLIPRECTS); + srcy+height, srcy); } out: diff --git a/src/mesa/drivers/dri/i915/intel_tris.c b/src/mesa/drivers/dri/i915/intel_tris.c index c05f966091b..f8aaf995ca6 100644 --- a/src/mesa/drivers/dri/i915/intel_tris.c +++ b/src/mesa/drivers/dri/i915/intel_tris.c @@ -985,8 +985,7 @@ void intel_meta_draw_quad(struct intel_context *intel, GLfloat z, GLuint color, GLfloat s0, GLfloat s1, - GLfloat t0, GLfloat t1, - GLuint flags) + GLfloat t0, GLfloat t1) { union fi *vb; @@ -997,7 +996,10 @@ void intel_meta_draw_quad(struct intel_context *intel, intel->vtbl.emit_state( intel ); - intelStartInlinePrimitive( intel, PRIM3D_TRIFAN, flags ); + /* All 3d primitives should be emitted with INTEL_BATCH_CLIPRECTS, + * otherwise the drawing origin (DR4) might not be set correctly. + */ + intelStartInlinePrimitive( intel, PRIM3D_TRIFAN, INTEL_BATCH_CLIPRECTS ); vb = (union fi *)intelExtendInlinePrimitive( intel, 4 * 6 ); diff --git a/src/mesa/drivers/dri/i915/intel_tris.h b/src/mesa/drivers/dri/i915/intel_tris.h index 5fe5b2feb99..1b2c474262d 100644 --- a/src/mesa/drivers/dri/i915/intel_tris.h +++ b/src/mesa/drivers/dri/i915/intel_tris.h @@ -57,8 +57,7 @@ void intel_meta_draw_quad(struct intel_context *intel, GLfloat z, GLuint color, GLfloat s0, GLfloat s1, - GLfloat t0, GLfloat t1, - GLuint flags ); + GLfloat t0, GLfloat t1); #endif