winsys/radeon: fix a race condition between winsys_create and winsys_destroy
[mesa.git] / src / gallium / drivers / radeonsi / si_pipe.c
index 7c741b7e2ad6f75af08a360fe6b348f962124afd..7dac287266451a548ff994447c639e298f87da13 100644 (file)
@@ -291,6 +291,7 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
        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:
@@ -423,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);