diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/drivers/r300/r300_public.h | 9 | ||||
| -rw-r--r-- | src/gallium/drivers/r300/r300_screen.c | 3 | ||||
| -rw-r--r-- | src/gallium/drivers/r300/r300_winsys.h | 3 | ||||
| -rw-r--r-- | src/gallium/targets/dri-radeong/target.c | 17 | ||||
| -rw-r--r-- | src/gallium/targets/egl-radeon/target.c | 17 | ||||
| -rw-r--r-- | src/gallium/targets/xorg-radeon/radeon_target.c | 17 | ||||
| -rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm.c | 18 | ||||
| -rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm.h | 7 | ||||
| -rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm_public.h | 9 | ||||
| -rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_r300.c | 2 | 
10 files changed, 70 insertions, 32 deletions
| diff --git a/src/gallium/drivers/r300/r300_public.h b/src/gallium/drivers/r300/r300_public.h new file mode 100644 index 0000000000..8e7a963c55 --- /dev/null +++ b/src/gallium/drivers/r300/r300_public.h @@ -0,0 +1,9 @@ + +#ifndef R300_PUBLIC_H +#define R300_PUBLIC_H + +struct r300_winsys_screen; + +struct pipe_screen* r300_screen_create(struct r300_winsys_screen *rws); + +#endif diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c index 497e24b760..fd522b84e1 100644 --- a/src/gallium/drivers/r300/r300_screen.c +++ b/src/gallium/drivers/r300/r300_screen.c @@ -30,6 +30,7 @@  #include "r300_screen_buffer.h"  #include "r300_state_inlines.h"  #include "r300_winsys.h" +#include "r300_public.h"  /* Return the identifier behind whom the brave coders responsible for this   * amalgamation of code, sweat, and duct tape, routinely obscure their names. @@ -366,7 +367,7 @@ static int r300_fence_finish(struct pipe_screen *screen,      return 0; /* 0 == success */  } -struct pipe_screen* r300_create_screen(struct r300_winsys_screen *rws) +struct pipe_screen* r300_screen_create(struct r300_winsys_screen *rws)  {      struct r300_screen *r300screen = CALLOC_STRUCT(r300_screen); diff --git a/src/gallium/drivers/r300/r300_winsys.h b/src/gallium/drivers/r300/r300_winsys.h index 6ce218923b..8a8888d481 100644 --- a/src/gallium/drivers/r300/r300_winsys.h +++ b/src/gallium/drivers/r300/r300_winsys.h @@ -180,7 +180,4 @@ struct r300_winsys_screen {  struct r300_winsys_screen *  r300_winsys_screen(struct pipe_screen *screen); -/* Creates a new r300 screen. */ -struct pipe_screen* r300_create_screen(struct r300_winsys_screen *rws); -  #endif /* R300_WINSYS_H */ diff --git a/src/gallium/targets/dri-radeong/target.c b/src/gallium/targets/dri-radeong/target.c index 06b64820cf..2c1beb633e 100644 --- a/src/gallium/targets/dri-radeong/target.c +++ b/src/gallium/targets/dri-radeong/target.c @@ -1,4 +1,17 @@ -#include "target-helpers/drm_api_compat.h" +#include "state_tracker/drm_driver.h" +#include "radeon/drm/radeon_drm_public.h" +#include "r300/r300_public.h" -DRM_API_COMPAT_STRUCT("radeon", "radeon") +static struct pipe_screen * +create_screen(int fd) +{ +   struct r300_winsys_screen *sws; +   sws = r300_drm_winsys_screen_create(fd); +   if (!sws) +      return NULL; + +   return r300_screen_create(sws); +} + +DRM_DRIVER_DESCRIPTOR("radeon", "radeon", create_screen) diff --git a/src/gallium/targets/egl-radeon/target.c b/src/gallium/targets/egl-radeon/target.c index 03b982ae83..5117eb86f9 100644 --- a/src/gallium/targets/egl-radeon/target.c +++ b/src/gallium/targets/egl-radeon/target.c @@ -1,7 +1,20 @@ -#include "target-helpers/drm_api_compat.h" +#include "state_tracker/drm_driver.h" +#include "radeon/drm/radeon_drm_public.h" +#include "r300/r300_public.h" -DRM_API_COMPAT_STRUCT("radeon", "radeon") +static struct pipe_screen * +create_screen(int fd) +{ +   struct r300_winsys_screen *sws; +   sws = r300_drm_winsys_screen_create(fd); +   if (!sws) +      return NULL; + +   return r300_screen_create(sws); +} + +DRM_DRIVER_DESCRIPTOR("radeon", "radeon", create_screen)  /* A poor man's --whole-archive for EGL drivers */  void *_eglMain(void *); diff --git a/src/gallium/targets/xorg-radeon/radeon_target.c b/src/gallium/targets/xorg-radeon/radeon_target.c index 06b64820cf..2c1beb633e 100644 --- a/src/gallium/targets/xorg-radeon/radeon_target.c +++ b/src/gallium/targets/xorg-radeon/radeon_target.c @@ -1,4 +1,17 @@ -#include "target-helpers/drm_api_compat.h" +#include "state_tracker/drm_driver.h" +#include "radeon/drm/radeon_drm_public.h" +#include "r300/r300_public.h" -DRM_API_COMPAT_STRUCT("radeon", "radeon") +static struct pipe_screen * +create_screen(int fd) +{ +   struct r300_winsys_screen *sws; +   sws = r300_drm_winsys_screen_create(fd); +   if (!sws) +      return NULL; + +   return r300_screen_create(sws); +} + +DRM_DRIVER_DESCRIPTOR("radeon", "radeon", create_screen) diff --git a/src/gallium/winsys/radeon/drm/radeon_drm.c b/src/gallium/winsys/radeon/drm/radeon_drm.c index 59f1b10230..e9a276362f 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm.c @@ -32,9 +32,9 @@  #include "radeon_drm.h"  #include "radeon_r300.h"  #include "radeon_buffer.h" +#include "radeon_drm_public.h"  #include "r300_winsys.h" -#include "trace/tr_drm.h"  #include "util/u_memory.h" @@ -153,7 +153,7 @@ static void do_ioctls(int fd, struct radeon_libdrm_winsys* winsys)  }  /* Create a pipe_screen. */ -struct pipe_screen* radeon_create_screen(struct drm_api* api, int drmFB) +struct r300_winsys_screen* r300_drm_winsys_screen_create(int drmFB)  {      struct radeon_libdrm_winsys* rws;       boolean ret; @@ -171,22 +171,10 @@ struct pipe_screen* radeon_create_screen(struct drm_api* api, int drmFB)          ret = radeon_setup_winsys(drmFB, rws);  	if (ret == FALSE)  	    goto fail; -        return r300_create_screen(&rws->base); +        return &rws->base;      }  fail:      FREE(rws);      return NULL;  } - -static struct drm_api radeon_drm_api_hooks = { -    .name = "radeon", -    .driver_name = "radeon", -    .create_screen = radeon_create_screen, -    .destroy = NULL, -}; - -struct drm_api* drm_api_create() -{ -    return trace_drm_create(&radeon_drm_api_hooks); -} diff --git a/src/gallium/winsys/radeon/drm/radeon_drm.h b/src/gallium/winsys/radeon/drm/radeon_drm.h index 3544c926d9..df6dd91ad5 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm.h +++ b/src/gallium/winsys/radeon/drm/radeon_drm.h @@ -30,12 +30,7 @@  #ifndef RADEON_DRM_H  #define RADEON_DRM_H -#include "state_tracker/drm_api.h" - - -struct pipe_screen* radeon_create_screen(struct drm_api* api, int drmFB); - -void radeon_destroy_drm_api(struct drm_api* api); +#include "state_tracker/drm_driver.h"  /* Guess at whether this chipset should use r300g.   * diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_public.h b/src/gallium/winsys/radeon/drm/radeon_drm_public.h new file mode 100644 index 0000000000..0d96ae8c47 --- /dev/null +++ b/src/gallium/winsys/radeon/drm/radeon_drm_public.h @@ -0,0 +1,9 @@ + +#ifndef RADEON_DRM_PUBLIC_H +#define RADEON_DRM_PUBLIC_H + +struct r300_winsys_screen; + +struct r300_winsys_screen *r300_drm_winsys_screen_create(int drmFD); + +#endif diff --git a/src/gallium/winsys/radeon/drm/radeon_r300.c b/src/gallium/winsys/radeon/drm/radeon_r300.c index 70ae01a694..a9b36578ef 100644 --- a/src/gallium/winsys/radeon/drm/radeon_r300.c +++ b/src/gallium/winsys/radeon/drm/radeon_r300.c @@ -25,7 +25,7 @@  #include "radeon_bo_gem.h"  #include "radeon_cs_gem.h" -#include "state_tracker/drm_api.h" +#include "state_tracker/drm_driver.h"  static struct r300_winsys_buffer *  radeon_r300_winsys_buffer_create(struct r300_winsys_screen *rws, | 
