radeon: fix scissor regression

fixes fdo bug 24248
This commit is contained in:
Alex Deucher 2009-10-09 15:44:32 -04:00
parent 2738681e84
commit 194ede4bf9
2 changed files with 11 additions and 8 deletions

View File

@ -1269,11 +1269,15 @@ void r700SetScissor(context_t *context) //---------------
return;
}
if (context->radeon.state.scissor.enabled) {
/* r600 has exclusive scissors */
x1 = context->radeon.state.scissor.rect.x1;
y1 = context->radeon.state.scissor.rect.y1;
x2 = context->radeon.state.scissor.rect.x2 + 1;
y2 = context->radeon.state.scissor.rect.y2 + 1;
x2 = context->radeon.state.scissor.rect.x2;
y2 = context->radeon.state.scissor.rect.y2;
/* r600 has exclusive BR scissors */
if (context->radeon.radeonScreen->kernel_mm) {
x2++;
y2++;
}
} else {
if (context->radeon.radeonScreen->driScreen->dri2.enabled) {
x1 = 0;

View File

@ -229,16 +229,15 @@ void radeonUpdateScissor( GLcontext *ctx )
}
if (!rmesa->radeonScreen->kernel_mm) {
/* Fix scissors for dri 1 */
__DRIdrawablePrivate *dPriv = radeon_get_drawable(rmesa);
x1 += dPriv->x;
x2 += dPriv->x;
x2 += dPriv->x + 1;
min_x += dPriv->x;
max_x += dPriv->x;
max_x += dPriv->x + 1;
y1 += dPriv->y;
y2 += dPriv->y;
y2 += dPriv->y + 1;
min_y += dPriv->y;
max_y += dPriv->y;
max_y += dPriv->y + 1;
}
rmesa->state.scissor.rect.x1 = CLAMP(x1, min_x, max_x);