winsys/radeon: fix a race condition between winsys_create and winsys_destroy
[mesa.git] / src / gallium / drivers / radeonsi / si_pipe.c
index 401bf6a8689ab505d6881054928e0c31d94a0bcf..7dac287266451a548ff994447c639e298f87da13 100644 (file)
@@ -290,6 +290,8 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        case PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS:
        case PIPE_CAP_TEXTURE_GATHER_SM5:
        case PIPE_CAP_TGSI_TEXCOORD:
+       case PIPE_CAP_FAKE_SW_MSAA:
+       case PIPE_CAP_TEXTURE_QUERY_LOD:
                return 0;
 
        case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
@@ -422,7 +424,7 @@ static void si_destroy_screen(struct pipe_screen* pscreen)
        if (sscreen == NULL)
                return;
 
-       if (!radeon_winsys_unref(sscreen->b.ws))
+       if (!sscreen->b.ws->unref(sscreen->b.ws))
                return;
 
        r600_destroy_common_screen(&sscreen->b);