diff options
Diffstat (limited to 'src/gallium/targets/pipe-loader')
-rw-r--r-- | src/gallium/targets/pipe-loader/Makefile | 13 | ||||
-rw-r--r-- | src/gallium/targets/pipe-loader/pipe_radeonsi.c | 26 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/gallium/targets/pipe-loader/Makefile b/src/gallium/targets/pipe-loader/Makefile index eb3b4fc8aa3..596539cc709 100644 --- a/src/gallium/targets/pipe-loader/Makefile +++ b/src/gallium/targets/pipe-loader/Makefile @@ -57,6 +57,12 @@ r600_LIBS = \ $(TOP)/src/gallium/drivers/r600/libr600.a r600_SYS += -ldrm_radeon +# radeonsi pipe driver +radeonsi_LIBS = \ + $(TOP)/src/gallium/winsys/radeon/drm/libradeonwinsys.a \ + $(TOP)/src/gallium/drivers/radeonsi/libradeonsi.a +radeonsi_SYS += -ldrm_radeon + # vmwgfx pipe driver vmwgfx_LIBS = \ $(TOP)/src/gallium/winsys/svga/drm/libsvgadrm.a \ @@ -105,6 +111,13 @@ ifneq ($(findstring r600,$(GALLIUM_DRIVERS_DIRS)),) endif endif +ifneq ($(findstring radeon/drm,$(GALLIUM_WINSYS_DIRS)),) +ifneq ($(findstring radeonsi,$(GALLIUM_DRIVERS_DIRS)),) + _PIPE_TARGETS_CC += $(PIPE_PREFIX)radeonsi.so + PIPE_SOURCES += pipe_radeonsi.c +endif +endif + ifneq ($(findstring svga/drm,$(GALLIUM_WINSYS_DIRS)),) _PIPE_TARGETS_CC += $(PIPE_PREFIX)vmwgfx.so PIPE_SOURCES += pipe_vmwgfx.c diff --git a/src/gallium/targets/pipe-loader/pipe_radeonsi.c b/src/gallium/targets/pipe-loader/pipe_radeonsi.c new file mode 100644 index 00000000000..bb57118b7b0 --- /dev/null +++ b/src/gallium/targets/pipe-loader/pipe_radeonsi.c @@ -0,0 +1,26 @@ +#include "state_tracker/drm_driver.h" +#include "target-helpers/inline_debug_helper.h" +#include "radeon/drm/radeon_drm_public.h" +#include "radeonsi/radeonsi_public.h" + +static struct pipe_screen * +create_screen(int fd) +{ + struct radeon_winsys *rw; + struct pipe_screen *screen; + + rw = radeon_drm_winsys_create(fd); + if (!rw) + return NULL; + + screen = radeonsi_screen_create(rw); + if (!screen) + return NULL; + + screen = debug_screen_wrap(screen); + + return screen; +} + +PUBLIC +DRM_DRIVER_DESCRIPTOR("radeonsi", "radeon", create_screen, NULL) |