r200: Prevent TexGenMatrix from leaking when destroying r200 context.
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
This commit is contained in:
parent
855374a76a
commit
b6a4f5f1d3
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue