Merge branch 'mesa_7_6_branch'

This commit is contained in:
Brian Paul 2009-10-10 09:25:34 -06:00
commit 57e3eb1b17
6 changed files with 26 additions and 10 deletions

View file

@ -43,6 +43,7 @@ tbd
<li>Fixed default texture binding bug when a bound texture was deleted.
<li>r300: Work around an issue with very large fragment programs on R500.
<li>Fake glXQueryDrawable() didn't return good values (bug 24320)
<li>Fixed AUX buffer breakage (bug 24426).
</ul>
</body>

View file

@ -97,7 +97,12 @@ sp_create_tile_cache( struct pipe_screen *screen )
}
tc->last_tile = &tc->entries[0]; /* any tile */
#if TILE_CLEAR_OPTIMIZATION
/* XXX this code prevents valgrind warnings about use of uninitialized
* memory in programs that don't clear the surface before rendering.
* However, it breaks clearing in other situations (such as in
* progs/tests/drawbuffers, see bug 24402).
*/
#if 0 && TILE_CLEAR_OPTIMIZATION
/* set flags to indicate all the tiles are cleared */
memset(tc->clear_flags, 255, sizeof(tc->clear_flags));
#endif

View file

@ -1295,11 +1295,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);

View file

@ -1955,7 +1955,7 @@ _mesa_add_aux_renderbuffers(GLcontext *ctx, struct gl_framebuffer *fb,
return GL_FALSE;
}
assert(numBuffers < MAX_AUX_BUFFERS);
assert(numBuffers <= MAX_AUX_BUFFERS);
for (i = 0; i < numBuffers; i++) {
struct gl_renderbuffer *rb = _mesa_new_renderbuffer(ctx, 0);

View file

@ -52,6 +52,7 @@ st_create_framebuffer( const __GLcontextModes *visual,
struct st_framebuffer *stfb = ST_CALLOC_STRUCT(st_framebuffer);
if (stfb) {
int samples = st_get_msaa();
int i;
if (visual->sampleBuffers)
samples = visual->samples;
@ -119,6 +120,12 @@ st_create_framebuffer( const __GLcontextModes *visual,
_mesa_add_renderbuffer(&stfb->Base, BUFFER_ACCUM, accumRb);
}
for (i = 0; i < visual->numAuxBuffers; i++) {
struct gl_renderbuffer *aux
= st_new_renderbuffer_fb(colorFormat, 0, FALSE);
_mesa_add_renderbuffer(&stfb->Base, BUFFER_AUX0 + i, aux);
}
stfb->Base.Initialized = GL_TRUE;
stfb->InitWidth = width;
stfb->InitHeight = height;