summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/radeon/radeon_common_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/radeon/radeon_common_context.c')
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_common_context.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c
index c0abcbfa21..ad4584a2bd 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c
@@ -263,6 +263,9 @@ GLboolean radeonInitContext(radeonContextPtr radeon,
radeon->texture_compressed_row_align = 64;
}
+ make_empty_list(&radeon->query.not_flushed_head);
+ radeon_init_dma(radeon);
+
return GL_TRUE;
}
@@ -295,10 +298,6 @@ void radeonDestroyContext(__DRIcontextPrivate *driContextPriv )
GET_CURRENT_CONTEXT(ctx);
radeonContextPtr radeon = (radeonContextPtr) driContextPriv->driverPrivate;
radeonContextPtr current = ctx ? RADEON_CONTEXT(ctx) : NULL;
-#if RADEON_COMMON && defined(RADEON_COMMON_FOR_R600) /* +r6/r7 */
- __DRIscreenPrivate *sPriv = driContextPriv->driScreenPriv;
- radeonScreenPtr screen = (radeonScreenPtr) (sPriv->private);
-#endif
if (radeon == current) {
radeon_firevertices(radeon);
@@ -307,10 +306,11 @@ void radeonDestroyContext(__DRIcontextPrivate *driContextPriv )
assert(radeon);
if (radeon) {
- if (radeon->dma.current) {
+ if (!is_empty_list(&radeon->dma.reserved)) {
rcommonFlushCmdBuf( radeon, __FUNCTION__ );
}
+ radeonFreeDmaRegions(radeon);
radeonReleaseArrays(radeon->glCtx, ~0);
meta_destroy_metaops(&radeon->meta);
if (radeon->vtbl.free_context)
@@ -334,9 +334,6 @@ void radeonDestroyContext(__DRIcontextPrivate *driContextPriv )
rcommonDestroyCmdBuf(radeon);
-#if RADEON_COMMON && defined(RADEON_COMMON_FOR_R600) /* +r6/r7 */
- if (!IS_R600_CLASS(screen))
-#endif
radeon_destroy_atom_list(radeon);
if (radeon->state.scissor.pClipRects) {