DRIVER_DEFINES = -DCOMPILE_R300 -DR200_MERGED=0 \
-DRADEON_COMMON=1 -DRADEON_COMMON_FOR_R300 \
-# -DRADEON_BO_TRACK_REF \
-# -DRADEON_BO_TRACK_OPEN \
+# -DRADEON_BO_TRACK \
-Wall
SYMLINKS = \
r300->cmdbuf.flushing = 1;
if (r300->cmdbuf.cs->cdw) {
ret = radeon_cs_emit(r300->cmdbuf.cs);
+ r300->hw.all_dirty = 1;
}
radeon_cs_erase(r300->cmdbuf.cs);
r300->cmdbuf.flushing = 0;
if (RADEON_DEBUG & (DEBUG_STATE | DEBUG_PRIMS))
fprintf(stderr, "%s\n", __FUNCTION__);
- if (r300->cmdbuf.cs->cdw && !r300->hw.is_dirty
- && !r300->hw.all_dirty)
+ if (r300->cmdbuf.cs->cdw && !r300->hw.is_dirty && !r300->hw.all_dirty)
return;
/* To avoid going across the entire set of states multiple times, just check
if (r300->radeon.radeonScreen->driScreen->dri2.enabled) {
rrb = fb->Attachment[BUFFER_BACK_LEFT].Renderbuffer;
}
- if (!rrb) {
+ if (!rrb || !rrb->bo) {
fprintf(stderr, "no rrb\n");
return;
}
uint32_t *out;
uint32_t bo_size;
+ memset(aos, 0, sizeof(struct r300_aos));
if (stride == 0) {
bo_size = size * 4;
count = 1;
for (ci = 0; ci < vb->AttribPtr[tab[i]]->size; ci++) {
swizzle[i][ci] = ci;
}
-
r300EmitVec(ctx, &rmesa->state.aos[i],
vb->AttribPtr[tab[i]]->data,
vb->AttribPtr[tab[i]]->size,
}
for (i = 0; i < rmesa->state.aos_count; i++) {
if (rmesa->state.aos[i].bo) {
- radeon_bo_unref(rmesa->state.aos[i].bo);
- rmesa->state.aos[i].bo = 0;
+ rmesa->state.aos[i].bo = radeon_bo_unref(rmesa->state.aos[i].bo);
}
}
}
if (t->mt) {
t->mt = NULL;
}
- if (rImage->bo) {
- radeon_bo_unref(rImage->bo);
- rImage->bo = NULL;
- }
if (rImage->mt) {
r300_miptree_unreference(rImage->mt);
rImage->mt = NULL;
rb = (void *)fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
rb = (void *)fb->Attachment[BUFFER_BACK_LEFT].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
rb = (void *)fb->Attachment[BUFFER_DEPTH].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
fb = (void*)radeon->dri.readable->driverPrivate;
rb = (void *)fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
rb = (void *)fb->Attachment[BUFFER_BACK_LEFT].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
rb = (void *)fb->Attachment[BUFFER_DEPTH].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
/* _mesa_destroy_context() might result in calls to functions that
radeonSetSpanFunctions(ret);
+ ret->bo = NULL;
return ret;
}
rb = (void *)fb->Attachment[BUFFER_FRONT_LEFT].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
rb = (void *)fb->Attachment[BUFFER_BACK_LEFT].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
rb = (void *)fb->Attachment[BUFFER_DEPTH].Renderbuffer;
if (rb && rb->bo) {
radeon_bo_unref(rb->bo);
+ rb->bo = NULL;
}
_mesa_unreference_framebuffer((GLframebuffer **)(&(driDrawPriv->driverPrivate)));
}