radeon: Fix scissors for r600 KMS.

Radeon generic scissors code had problem that some of code was using exclusive
and some inclusive bottom right corner. Only r600 driver is using exclusive
coordinate so changed generic code to pass inclusive coordinate and r600 driver
changes BR coordinate to be exclusive.
This commit is contained in:
Pauli Nieminen
2009-09-24 19:58:09 +03:00
parent 7549a8397b
commit 1d2dca194c
2 changed files with 7 additions and 6 deletions

View File

@@ -1269,10 +1269,11 @@ 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;
y2 = context->radeon.state.scissor.rect.y2;
x2 = context->radeon.state.scissor.rect.x2 + 1;
y2 = context->radeon.state.scissor.rect.y2 + 1;
} else {
if (context->radeon.radeonScreen->driScreen->dri2.enabled) {
x1 = 0;

View File

@@ -232,13 +232,13 @@ void radeonUpdateScissor( GLcontext *ctx )
__DRIdrawablePrivate *dPriv = radeon_get_drawable(rmesa);
x1 += dPriv->x;
x2 += dPriv->x + 1;
x2 += dPriv->x;
min_x += dPriv->x;
max_x += dPriv->x + 1;
max_x += dPriv->x;
y1 += dPriv->y;
y2 += dPriv->y + 1;
y2 += dPriv->y;
min_y += dPriv->y;
max_y += dPriv->y + 1;
max_y += dPriv->y;
}
rmesa->state.scissor.rect.x1 = CLAMP(x1, min_x, max_x);