Consolidate pipe_r300_create_screen, pipe_r600_create_screen and pipe_radeonsi_create_screen to one function. They do exactly the same and only pass a different parameter to radeon_drm_winsys_create.
Signed-off-by: Tobias Droste <tdro...@gmx.de> --- This may or may not be an improvement. Pro: Less duplicate code Con: Radeons are handled different The diff is looking a bit strange but the result is simply this: #if _EGL_PIPE_R300 || _EGL_PIPE_R600 || _EGL_PIPE_RADEONSI static struct pipe_screen * pipe_radeon_create_screen(int fd, radeon_screen_create_t screen_create) { struct radeon_winsys *rw; rw = radeon_drm_winsys_create(fd, screen_create); return rw ? debug_screen_wrap(rw->screen) : NULL; } #endif src/gallium/targets/egl-static/egl_pipe.c | 46 ++++++++----------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/src/gallium/targets/egl-static/egl_pipe.c b/src/gallium/targets/egl-static/egl_pipe.c index 1f28fa2..1ccf5e0 100644 --- a/src/gallium/targets/egl-static/egl_pipe.c +++ b/src/gallium/targets/egl-static/egl_pipe.c @@ -134,44 +134,16 @@ pipe_nouveau_create_screen(int fd) #endif } +#if _EGL_PIPE_R300 || _EGL_PIPE_R600 || _EGL_PIPE_RADEONSI static struct pipe_screen * -pipe_r300_create_screen(int fd) -{ -#if _EGL_PIPE_R300 - struct radeon_winsys *sws; - - sws = radeon_drm_winsys_create(fd, r300_screen_create); - return sws ? debug_screen_wrap(sws->screen) : NULL; -#else - return NULL; -#endif -} - -static struct pipe_screen * -pipe_r600_create_screen(int fd) +pipe_radeon_create_screen(int fd, radeon_screen_create_t screen_create) { -#if _EGL_PIPE_R600 struct radeon_winsys *rw; - rw = radeon_drm_winsys_create(fd, r600_screen_create); + rw = radeon_drm_winsys_create(fd, screen_create); return rw ? debug_screen_wrap(rw->screen) : NULL; -#else - return NULL; -#endif } - -static struct pipe_screen * -pipe_radeonsi_create_screen(int fd) -{ -#if _EGL_PIPE_RADEONSI - struct radeon_winsys *rw; - - rw = radeon_drm_winsys_create(fd, radeonsi_screen_create); - return rw ? debug_screen_wrap(rw->screen) : NULL; -#else - return NULL; #endif -} static struct pipe_screen * pipe_vmwgfx_create_screen(int fd) @@ -223,12 +195,18 @@ egl_pipe_create_drm_screen(const char *name, int fd) return pipe_ilo_create_screen(fd); else if (strcmp(name, "nouveau") == 0) return pipe_nouveau_create_screen(fd); +#if _EGL_PIPE_R300 else if (strcmp(name, "r300") == 0) - return pipe_r300_create_screen(fd); + return pipe_radeon_create_screen(fd, r300_screen_create); +#endif +#if _EGL_PIPE_R600 else if (strcmp(name, "r600") == 0) - return pipe_r600_create_screen(fd); + return pipe_radeon_create_screen(fd, r600_screen_create); +#endif +#if _EGL_PIPE_RADEONSI else if (strcmp(name, "radeonsi") == 0) - return pipe_radeonsi_create_screen(fd); + return pipe_radeon_create_screen(fd, radeonsi_screen_create); +#endif else if (strcmp(name, "vmwgfx") == 0) return pipe_vmwgfx_create_screen(fd); else if ((strcmp(name, "kgsl") == 0) || (strcmp(name, "msm") == 0)) -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev