Quellcode durchsuchen

r200: Prevent TexGenMatrix from leaking when destroying r200 context.

Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
tags/mesa_7_6_rc1
Pauli Nieminen vor 16 Jahren
Ursprung
Commit
b6a4f5f1d3

+ 12
- 0
src/mesa/drivers/dri/r200/r200_context.c Datei anzeigen

@@ -500,3 +500,15 @@ GLboolean r200CreateContext( const __GLcontextModes *glVisual,
}


void r200DestroyContext( __DRIcontextPrivate *driContextPriv )
{
int i;
r200ContextPtr rmesa = (r200ContextPtr)driContextPriv->driverPrivate;
if (rmesa)
{
for ( i = 0 ; i < R200_MAX_TEXTURE_UNITS ; i++ ) {
_math_matrix_dtr( &rmesa->TexGenMatrix[i] );
}
}
radeonDestroyContext(driContextPriv);
}

+ 5
- 5
src/mesa/drivers/dri/radeon/radeon_screen.c Datei anzeigen

@@ -1596,11 +1596,6 @@ static GLboolean radeonCreateContext(const __GLcontextModes * glVisual,
return r300CreateContext(glVisual, driContextPriv, sharedContextPriv);
#endif

#if RADEON_COMMON && defined(RADEON_COMMON_FOR_R200)
if (IS_R200_CLASS(screen))
return r200CreateContext(glVisual, driContextPriv, sharedContextPriv);
#endif

#if !RADEON_COMMON
(void)screen;
return r100CreateContext(glVisual, driContextPriv, sharedContextPriv);
@@ -1800,8 +1795,13 @@ getSwapInfo( __DRIdrawablePrivate *dPriv, __DRIswapInfo * sInfo )
const struct __DriverAPIRec driDriverAPI = {
.InitScreen = radeonInitScreen,
.DestroyScreen = radeonDestroyScreen,
#if RADEON_COMMON && defined(RADEON_COMMON_FOR_R200)
.CreateContext = r200CreateContext,
.DestroyContext = r200DestroyContext,
#else
.CreateContext = radeonCreateContext,
.DestroyContext = radeonDestroyContext,
#endif
.CreateBuffer = radeonCreateBuffer,
.DestroyBuffer = radeonDestroyBuffer,
.SwapBuffers = radeonSwapBuffers,

Laden…
Abbrechen
Speichern