diff options
-rw-r--r-- | src/gallium/auxiliary/target-helpers/soft_screen.c | 73 | ||||
-rw-r--r-- | src/gallium/auxiliary/target-helpers/soft_screen.h | 12 | ||||
-rw-r--r-- | src/gallium/targets/libgl-xlib/Makefile | 1 | ||||
l--------- | src/gallium/targets/libgl-xlib/soft_screen.c | 1 | ||||
-rw-r--r-- | src/gallium/targets/libgl-xlib/xlib.c | 34 | ||||
-rw-r--r-- | src/gallium/winsys/drm/sw/Makefile | 3 | ||||
l--------- | src/gallium/winsys/drm/sw/soft_screen.c | 1 | ||||
-rw-r--r-- | src/gallium/winsys/drm/sw/sw_drm_api.c | 32 |
8 files changed, 37 insertions, 120 deletions
diff --git a/src/gallium/auxiliary/target-helpers/soft_screen.c b/src/gallium/auxiliary/target-helpers/soft_screen.c deleted file mode 100644 index 00d386ee1d..0000000000 --- a/src/gallium/auxiliary/target-helpers/soft_screen.c +++ /dev/null @@ -1,73 +0,0 @@ -/************************************************************************** - * - * Copyright 2010 VMware, Inc. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, - * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - * USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * - **************************************************************************/ - -#include "target-helpers/soft_screen.h" -#include "softpipe/sp_public.h" -#include "llvmpipe/lp_public.h" -#include "cell/ppu/cell_public.h" -#include "util/u_debug.h" - -/** - * Choose and create a software renderer screen. - */ -struct pipe_screen * -gallium_soft_create_screen( struct sw_winsys *winsys ) -{ - const char *default_driver = NULL; - const char *driver = NULL; - struct pipe_screen *screen = NULL; - -#if defined(GALLIUM_CELL) - default_driver = "cell"; -#elif defined(GALLIUM_LLVMPIPE) - default_driver = "llvmpipe"; -#elif defined(GALLIUM_SOFTPIPE) - default_driver = "softpipe"; -#else - default_driver = ""; -#endif - - driver = debug_get_option("GALLIUM_DRIVER", default_driver); - -#if defined(GALLIUM_CELL) - if (screen == NULL && strcmp(driver, "cell") == 0) - screen = cell_create_screen( winsys ); -#endif - -#if defined(GALLIUM_LLVMPIPE) - if (screen == NULL && strcmp(driver, "llvmpipe") == 0) - screen = llvmpipe_create_screen( winsys ); -#endif - -#if defined(GALLIUM_SOFTPIPE) - if (screen == NULL) - screen = softpipe_create_screen( winsys ); -#endif - - return screen; -} diff --git a/src/gallium/auxiliary/target-helpers/soft_screen.h b/src/gallium/auxiliary/target-helpers/soft_screen.h deleted file mode 100644 index 5c1012644a..0000000000 --- a/src/gallium/auxiliary/target-helpers/soft_screen.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef SOFT_SCREEN_HELPER_H -#define SOFT_SCREEN_HELPER_H - -#include "pipe/p_compiler.h" - -struct pipe_screen; -struct sw_winsys; - -struct pipe_screen * -gallium_soft_create_screen( struct sw_winsys *winsys ); - -#endif diff --git a/src/gallium/targets/libgl-xlib/Makefile b/src/gallium/targets/libgl-xlib/Makefile index 2c44a62102..5a4e035c2e 100644 --- a/src/gallium/targets/libgl-xlib/Makefile +++ b/src/gallium/targets/libgl-xlib/Makefile @@ -27,7 +27,6 @@ DEFINES += \ #-DGALLIUM_CELL will be defined by the config */ XLIB_TARGET_SOURCES = \ - soft_screen.c \ xlib.c diff --git a/src/gallium/targets/libgl-xlib/soft_screen.c b/src/gallium/targets/libgl-xlib/soft_screen.c deleted file mode 120000 index d6d878f365..0000000000 --- a/src/gallium/targets/libgl-xlib/soft_screen.c +++ /dev/null @@ -1 +0,0 @@ -../../auxiliary/target-helpers/soft_screen.c
\ No newline at end of file diff --git a/src/gallium/targets/libgl-xlib/xlib.c b/src/gallium/targets/libgl-xlib/xlib.c index e786221210..48e79fe4f3 100644 --- a/src/gallium/targets/libgl-xlib/xlib.c +++ b/src/gallium/targets/libgl-xlib/xlib.c @@ -36,7 +36,6 @@ #include "softpipe/sp_public.h" #include "llvmpipe/lp_public.h" #include "cell/ppu/cell_public.h" -#include "target-helpers/soft_screen.h" #include "target-helpers/wrap_screen.h" #include "xm_public.h" @@ -64,6 +63,8 @@ PUBLIC const struct st_module st_module_OpenGL = { static struct pipe_screen * swrast_xlib_create_screen( Display *display ) { + const char *default_driver; + const char *driver; struct sw_winsys *winsys; struct pipe_screen *screen = NULL; @@ -74,7 +75,36 @@ swrast_xlib_create_screen( Display *display ) if (winsys == NULL) return NULL; - screen = gallium_soft_create_screen( winsys ); +#if defined(GALLIUM_CELL) + default_driver = "cell"; +#elif defined(GALLIUM_LLVMPIPE) + default_driver = "llvmpipe"; +#elif defined(GALLIUM_SOFTPIPE) + default_driver = "softpipe"; +#else + default_driver = ""; +#endif + + driver = debug_get_option("GALLIUM_DRIVER", default_driver); + + /* Create a software rasterizer on top of that winsys: + */ +#if defined(GALLIUM_CELL) + if (screen == NULL && + strcmp(driver, "cell") == 0) + screen = cell_create_screen( winsys ); +#endif + +#if defined(GALLIUM_LLVMPIPE) + if (screen == NULL && + strcmp(driver, "llvmpipe") == 0) + screen = llvmpipe_create_screen( winsys ); +#endif + +#if defined(GALLIUM_SOFTPIPE) + if (screen == NULL) + screen = softpipe_create_screen( winsys ); +#endif if (screen == NULL) goto fail; diff --git a/src/gallium/winsys/drm/sw/Makefile b/src/gallium/winsys/drm/sw/Makefile index 12b20cbd45..5f3c3ec325 100644 --- a/src/gallium/winsys/drm/sw/Makefile +++ b/src/gallium/winsys/drm/sw/Makefile @@ -4,12 +4,11 @@ include $(TOP)/configs/current LIBNAME = swdrm C_SOURCES = \ - soft_screen.c \ wrapper_sw_winsys.c \ sw_drm_api.c LIBRARY_INCLUDES = -LIBRARY_DEFINES = -DGALLIUM_SOFTPIPE +LIBRARY_DEFINES = include ../../../Makefile.template diff --git a/src/gallium/winsys/drm/sw/soft_screen.c b/src/gallium/winsys/drm/sw/soft_screen.c deleted file mode 120000 index 423597ba31..0000000000 --- a/src/gallium/winsys/drm/sw/soft_screen.c +++ /dev/null @@ -1 +0,0 @@ -../../../auxiliary/target-helpers/soft_screen.c
\ No newline at end of file diff --git a/src/gallium/winsys/drm/sw/sw_drm_api.c b/src/gallium/winsys/drm/sw/sw_drm_api.c index ed3ce146eb..9c5933c73a 100644 --- a/src/gallium/winsys/drm/sw/sw_drm_api.c +++ b/src/gallium/winsys/drm/sw/sw_drm_api.c @@ -24,11 +24,8 @@ **********************************************************/ -#include "pipe/p_screen.h" #include "util/u_memory.h" -#include "target-helpers/soft_screen.h" - -#include "state_tracker/sw_winsys.h" +#include "softpipe/sp_public.h" #include "state_tracker/drm_api.h" #include "wrapper_sw_winsys.h" #include "sw_drm_api.h" @@ -63,35 +60,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 softpipe_create_screen(sww); } static void |