Merge remote branch 'main/master' into radeon-rewrite
[mesa.git] / src / mesa / drivers / dri / radeon / radeon_common.c
index 99270c947f31634d8317241fa18c6082dbd6b9d1..840233ff89657180d2db5c13033a69bc3ca42d96 100644 (file)
@@ -245,7 +245,7 @@ static uint32_t radeonGetLastFrame(radeonContextPtr radeon)
 {
        drm_radeon_getparam_t gp;
        int ret;
-       uint32_t frame;
+       uint32_t frame = 0;
 
        gp.param = RADEON_PARAM_LAST_FRAME;
        gp.value = (int *)&frame;
@@ -414,6 +414,8 @@ void radeonCopyBuffer( __DRIdrawablePrivate *dPriv,
    
        rmesa = (radeonContextPtr) dPriv->driContextPriv->driverPrivate;
 
+       LOCK_HARDWARE(rmesa);
+
        rfb = dPriv->driverPrivate;
 
        if ( RADEON_DEBUG & DEBUG_IOCTL ) {
@@ -486,8 +488,7 @@ static int radeonScheduleSwap(__DRIdrawablePrivate *dPriv, GLboolean *missed_tar
 
        UNLOCK_HARDWARE(rmesa);
        driWaitForVBlank(dPriv, missed_target);
-       LOCK_HARDWARE(rmesa);
-
+       
        return 0;
 }
 
@@ -509,6 +510,8 @@ static GLboolean radeonPageFlip( __DRIdrawablePrivate *dPriv )
 
        psp = dPriv->driScreenPriv;
 
+       LOCK_HARDWARE(radeon);
+
        if ( RADEON_DEBUG & DEBUG_IOCTL ) {
                fprintf(stderr, "%s: pfCurrentPage: %d %d\n", __FUNCTION__,
                        radeon->sarea->pfCurrentPage, radeon->sarea->pfState);
@@ -520,7 +523,7 @@ static GLboolean radeonPageFlip( __DRIdrawablePrivate *dPriv )
 
        ret = drmCommandNone( radeon->dri.fd, DRM_RADEON_FLIP );
        
-       UNLOCK_HARDWARE( radeon );
+       UNLOCK_HARDWARE(radeon);
 
        if ( ret ) {
                fprintf( stderr, "DRM_RADEON_FLIP: return = %d\n", ret );