OSDN Git Service

winsys/svga: Rework buffer allocation to make it more robust v2.
[android-x86/external-mesa.git] / src / gallium / winsys / svga / drm / vmw_screen_svga.c
index df4a384..bf817ca 100644 (file)
@@ -73,7 +73,15 @@ vmw_svga_winsys_buffer_create(struct svga_winsys_screen *sws,
 
    assert(provider);
    buffer = provider->create_buffer(provider, size, &desc);
-   if(!buffer)
+
+   if(!buffer && provider == vws->pools.gmr_fenced) {
+
+      assert(provider);
+      provider = vws->pools.gmr_slab_fenced;
+      buffer = provider->create_buffer(provider, size, &desc);
+   }
+
+   if (!buffer)
       return NULL;
 
    return vmw_svga_winsys_buffer(buffer);