r300g: Move bootstrap code to targets
This commit is contained in:
@@ -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
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
#include "r300_screen_buffer.h"
|
#include "r300_screen_buffer.h"
|
||||||
#include "r300_state_inlines.h"
|
#include "r300_state_inlines.h"
|
||||||
#include "r300_winsys.h"
|
#include "r300_winsys.h"
|
||||||
|
#include "r300_public.h"
|
||||||
|
|
||||||
/* Return the identifier behind whom the brave coders responsible for this
|
/* Return the identifier behind whom the brave coders responsible for this
|
||||||
* amalgamation of code, sweat, and duct tape, routinely obscure their names.
|
* 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 */
|
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);
|
struct r300_screen *r300screen = CALLOC_STRUCT(r300_screen);
|
||||||
|
|
||||||
|
|||||||
@@ -180,7 +180,4 @@ struct r300_winsys_screen {
|
|||||||
struct r300_winsys_screen *
|
struct r300_winsys_screen *
|
||||||
r300_winsys_screen(struct pipe_screen *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 */
|
#endif /* R300_WINSYS_H */
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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 */
|
/* A poor man's --whole-archive for EGL drivers */
|
||||||
void *_eglMain(void *);
|
void *_eglMain(void *);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -32,9 +32,9 @@
|
|||||||
#include "radeon_drm.h"
|
#include "radeon_drm.h"
|
||||||
#include "radeon_r300.h"
|
#include "radeon_r300.h"
|
||||||
#include "radeon_buffer.h"
|
#include "radeon_buffer.h"
|
||||||
|
#include "radeon_drm_public.h"
|
||||||
|
|
||||||
#include "r300_winsys.h"
|
#include "r300_winsys.h"
|
||||||
#include "trace/tr_drm.h"
|
|
||||||
|
|
||||||
#include "util/u_memory.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. */
|
/* 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;
|
struct radeon_libdrm_winsys* rws;
|
||||||
boolean ret;
|
boolean ret;
|
||||||
@@ -171,22 +171,10 @@ struct pipe_screen* radeon_create_screen(struct drm_api* api, int drmFB)
|
|||||||
ret = radeon_setup_winsys(drmFB, rws);
|
ret = radeon_setup_winsys(drmFB, rws);
|
||||||
if (ret == FALSE)
|
if (ret == FALSE)
|
||||||
goto fail;
|
goto fail;
|
||||||
return r300_create_screen(&rws->base);
|
return &rws->base;
|
||||||
}
|
}
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
FREE(rws);
|
FREE(rws);
|
||||||
return NULL;
|
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);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -30,12 +30,7 @@
|
|||||||
#ifndef RADEON_DRM_H
|
#ifndef RADEON_DRM_H
|
||||||
#define RADEON_DRM_H
|
#define RADEON_DRM_H
|
||||||
|
|
||||||
#include "state_tracker/drm_api.h"
|
#include "state_tracker/drm_driver.h"
|
||||||
|
|
||||||
|
|
||||||
struct pipe_screen* radeon_create_screen(struct drm_api* api, int drmFB);
|
|
||||||
|
|
||||||
void radeon_destroy_drm_api(struct drm_api* api);
|
|
||||||
|
|
||||||
/* Guess at whether this chipset should use r300g.
|
/* Guess at whether this chipset should use r300g.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
#include "radeon_bo_gem.h"
|
#include "radeon_bo_gem.h"
|
||||||
#include "radeon_cs_gem.h"
|
#include "radeon_cs_gem.h"
|
||||||
#include "state_tracker/drm_api.h"
|
#include "state_tracker/drm_driver.h"
|
||||||
|
|
||||||
static struct r300_winsys_buffer *
|
static struct r300_winsys_buffer *
|
||||||
radeon_r300_winsys_buffer_create(struct r300_winsys_screen *rws,
|
radeon_r300_winsys_buffer_create(struct r300_winsys_screen *rws,
|
||||||
|
|||||||
Reference in New Issue
Block a user