diff options
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/winsys/drm/sw/sw_drm_api.c | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/src/gallium/winsys/drm/sw/sw_drm_api.c b/src/gallium/winsys/drm/sw/sw_drm_api.c index ed3ce146eb1..fa16600fe6a 100644 --- a/src/gallium/winsys/drm/sw/sw_drm_api.c +++ b/src/gallium/winsys/drm/sw/sw_drm_api.c @@ -24,11 +24,9 @@ **********************************************************/ -#include "pipe/p_screen.h" #include "util/u_memory.h" #include "target-helpers/soft_screen.h" -#include "state_tracker/sw_winsys.h" #include "state_tracker/drm_api.h" #include "wrapper_sw_winsys.h" #include "sw_drm_api.h" @@ -43,6 +41,7 @@ struct sw_drm_api { struct drm_api base; struct drm_api *api; + struct sw_winsys *sw; }; static INLINE struct sw_drm_api * @@ -63,35 +62,14 @@ sw_drm_create_screen(struct drm_api *_api, int drmFD, { struct sw_drm_api *swapi = sw_drm_api(_api); struct drm_api *api = swapi->api; - struct sw_winsys *sww = NULL; - struct pipe_screen *screen = NULL; - struct pipe_screen *soft_screen = NULL; + struct sw_winsys *sww; + struct pipe_screen *screen; screen = api->create_screen(api, drmFD, arg); - if (screen == NULL) - goto fail; sww = wrapper_sw_winsys_warp_pipe_screen(screen); - if (sww == NULL) - goto fail; - soft_screen = gallium_soft_create_screen(sww); - if (soft_screen == NULL) - goto fail; - - return soft_screen; - -fail: - if (soft_screen) - soft_screen->destroy(soft_screen); - - if (sww) - sww->destroy(sww); - - if (screen) - screen->destroy(screen); - - return NULL; + return gallium_soft_create_screen(sww); } static void |