diff options
Diffstat (limited to 'src/gallium/winsys/svga/drm/vmw_screen_svga.c')
-rw-r--r-- | src/gallium/winsys/svga/drm/vmw_screen_svga.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gallium/winsys/svga/drm/vmw_screen_svga.c b/src/gallium/winsys/svga/drm/vmw_screen_svga.c index df4a384d3ee..bf817ca88d8 100644 --- a/src/gallium/winsys/svga/drm/vmw_screen_svga.c +++ b/src/gallium/winsys/svga/drm/vmw_screen_svga.c @@ -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); |