targets/(r300|r600|radeonsi)/dri: Convert to static/shared pipe-drivers

Related to previous commit, merge the separate dri targets to a single
one.

This is essentially all the buildsystem mayhem required for megaradeon.

Cc: Marek Olšák <marek.olsak@amd.com>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Tested-by: Rob Clark <robclark@freedesktop.org>
Tested-by: Thomas Helland <thomashelland90 at gmail.com>
Acked-by: Tom Stellard <thomas.stellard@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
This commit is contained in:
Emil Velikov 2014-06-16 14:25:50 +01:00
parent 6eabddd531
commit 495e3e7bed
13 changed files with 36 additions and 411 deletions

View file

@ -1941,7 +1941,7 @@ if test -n "$with_gallium_drivers"; then
gallium_require_drm_loader
gallium_require_llvm "Gallium R300"
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
gallium_check_st "radeon/drm" "r300/dri" "xa/r300" "" ""
gallium_check_st "radeon/drm" "dri/r300" "xa/r300" "" ""
;;
xr600)
HAVE_GALLIUM_R600=yes
@ -1958,7 +1958,7 @@ if test -n "$with_gallium_drivers"; then
if test "x$enable_opencl" = xyes; then
LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
fi
gallium_check_st "radeon/drm" "r600/dri" "xa/r600" "xvmc/r600" "vdpau/r600" "omx/r600"
gallium_check_st "radeon/drm" "dri/r600" "xa/r600" "xvmc/r600" "vdpau/r600" "omx/r600"
;;
xradeonsi)
HAVE_GALLIUM_RADEONSI=yes
@ -1967,7 +1967,7 @@ if test -n "$with_gallium_drivers"; then
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
radeon_llvm_check "radeonsi"
require_egl_drm "radeonsi"
gallium_check_st "radeon/drm" "radeonsi/dri" "xa/radeonsi" "" "vdpau/radeonsi" "omx/radeonsi"
gallium_check_st "radeon/drm" "dri/radeonsi" "xa/radeonsi" "" "vdpau/radeonsi" "omx/radeonsi"
;;
xnouveau)
HAVE_GALLIUM_NOUVEAU=yes
@ -2222,9 +2222,6 @@ AC_CONFIG_FILES([Makefile
src/gallium/targets/osmesa/Makefile
src/gallium/targets/osmesa/osmesa.pc
src/gallium/targets/pipe-loader/Makefile
src/gallium/targets/r300/dri/Makefile
src/gallium/targets/r600/dri/Makefile
src/gallium/targets/radeonsi/dri/Makefile
src/gallium/targets/vdpau/Makefile
src/gallium/targets/xa/Makefile
src/gallium/targets/xa/xatracker.pc

View file

@ -82,24 +82,6 @@ SUBDIRS += dri-ilo
endif
endif
if HAVE_GALLIUM_R300
if HAVE_DRI2
SUBDIRS += r300/dri
endif
endif
if HAVE_GALLIUM_R600
if HAVE_DRI2
SUBDIRS += r600/dri
endif
endif
if HAVE_GALLIUM_RADEONSI
if HAVE_DRI2
SUBDIRS += radeonsi/dri
endif
endif
if HAVE_GALLIUM_SOFTPIPE
if HAVE_DRISW
SUBDIRS += dri-swrast

View file

@ -59,6 +59,39 @@ STATIC_TARGET_LIB_DEPS += \
$(NOUVEAU_LIBS)
endif
if NEED_RADEON_DRM_WINSYS
STATIC_TARGET_LIB_DEPS += \
$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la
endif
if HAVE_GALLIUM_RADEON_COMMON
STATIC_TARGET_LIB_DEPS += \
$(top_builddir)/src/gallium/drivers/radeon/libradeon.la
endif
if HAVE_GALLIUM_R300
MEGADRIVERS += r300
STATIC_TARGET_CPPFLAGS += -DGALLIUM_R300
STATIC_TARGET_LIB_DEPS += \
$(top_builddir)/src/gallium/drivers/r300/libr300.la \
$(RADEON_LIBS)
endif
if HAVE_GALLIUM_R600
MEGADRIVERS += r600
STATIC_TARGET_CPPFLAGS += -DGALLIUM_R600
STATIC_TARGET_LIB_DEPS += \
$(top_builddir)/src/gallium/drivers/r600/libr600.la \
$(RADEON_LIBS)
endif
if HAVE_GALLIUM_RADEONSI
MEGADRIVERS += radeonsi
STATIC_TARGET_CPPFLAGS += -DGALLIUM_RADEONSI
STATIC_TARGET_LIB_DEPS += \
$(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
$(RADEON_LIBS)
endif
gallium_dri_la_SOURCES += target.c
AM_CPPFLAGS += $(STATIC_TARGET_CPPFLAGS)
gallium_dri_la_LIBADD += $(STATIC_TARGET_LIB_DEPS)

View file

@ -1,68 +0,0 @@
/**************************************************************************
*
* Copyright 2013 Advanced Micro Devices, 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 above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
* 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 HOLDER(S) OR AUTHOR(S) 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.
*
**************************************************************************/
#include "target-helpers/inline_debug_helper.h"
#include "state_tracker/drm_driver.h"
#include "radeon/drm/radeon_drm_public.h"
#include "radeon/drm/radeon_winsys.h"
#include "r300/r300_public.h"
static struct pipe_screen *
create_screen(int fd)
{
struct radeon_winsys *sws;
sws = radeon_drm_winsys_create(fd, r300_screen_create);
return sws ? debug_screen_wrap(sws->screen) : NULL;
}
/* Technically this is only true for kernels >= 3.12, which
* support lseek on dma-buf fds.
*
* We could check for this in create_screen and return the correct
* value, but for now just return true in all cases.
*
* createImageFromFds fails gracefully on kernel < 3.12, so this
* shouldn't be a huge problem.
*/
static const struct drm_conf_ret share_fd_ret = {
.type = DRM_CONF_BOOL,
.val.val_int = true,
};
static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
{
switch (conf) {
case DRM_CONF_SHARE_FD:
return &share_fd_ret;
default:
break;
}
return NULL;
}
DRM_DRIVER_DESCRIPTOR("r300", "radeon", create_screen, drm_configuration)

View file

@ -1,54 +0,0 @@
# Copyright © 2012 Intel Corporation
#
# 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, sublicense,
# 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 above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# 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
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS 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.
include $(top_srcdir)/src/gallium/Automake.inc
AM_CFLAGS = \
$(GALLIUM_DRI_CFLAGS)
AM_CPPFLAGS = \
-DGALLIUM_RBUG \
-DGALLIUM_TRACE \
-DGALLIUM_GALAHAD
dridir = $(DRI_DRIVER_INSTALL_DIR)
dri_LTLIBRARIES = r300_dri.la
nodist_EXTRA_r300_dri_la_SOURCES = dummy.cpp
r300_dri_la_SOURCES = \
drm_target.c
r300_dri_la_LDFLAGS = \
$(GALLIUM_DRI_LINKER_FLAGS) \
-Wl,--dynamic-list=$(srcdir)/radeon.dyn
r300_dri_la_LIBADD = \
$(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
$(top_builddir)/src/gallium/drivers/galahad/libgalahad.la \
$(top_builddir)/src/gallium/drivers/trace/libtrace.la \
$(top_builddir)/src/gallium/drivers/rbug/librbug.la \
$(top_builddir)/src/gallium/drivers/r300/libr300.la \
$(GALLIUM_DRI_LIB_DEPS) \
$(RADEON_LIBS)
include $(top_srcdir)/install-gallium-links.mk

View file

@ -1 +0,0 @@
../common/drm_target.c

View file

@ -1,3 +0,0 @@
{
radeon_drm_winsys_create;
};

View file

@ -1,74 +0,0 @@
/**************************************************************************
*
* Copyright 2013 Advanced Micro Devices, 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 above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
* 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 HOLDER(S) OR AUTHOR(S) 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.
*
**************************************************************************/
#include "state_tracker/drm_driver.h"
#include "target-helpers/inline_debug_helper.h"
#include "radeon/drm/radeon_drm_public.h"
#include "radeon/drm/radeon_winsys.h"
#include "r600/r600_public.h"
static struct pipe_screen *create_screen(int fd)
{
struct radeon_winsys *radeon;
radeon = radeon_drm_winsys_create(fd, r600_screen_create);
return radeon ? debug_screen_wrap(radeon->screen) : NULL;
}
static const struct drm_conf_ret throttle_ret = {
.type = DRM_CONF_INT,
.val.val_int = 2,
};
/* Technically this is only true for kernels >= 3.12, which
* support lseek on dma-buf fds.
*
* We could check for this in create_screen and return the correct
* value, but for now just return true in all cases.
*
* createImageFromFds fails gracefully on kernel < 3.12, so this
* shouldn't be a huge problem.
*/
static const struct drm_conf_ret share_fd_ret = {
.type = DRM_CONF_BOOL,
.val.val_int = true,
};
static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
{
switch (conf) {
case DRM_CONF_THROTTLE:
return &throttle_ret;
case DRM_CONF_SHARE_FD:
return &share_fd_ret;
default:
break;
}
return NULL;
}
DRM_DRIVER_DESCRIPTOR("r600", "radeon", create_screen, drm_configuration)

View file

@ -1,56 +0,0 @@
# Copyright © 2012 Intel Corporation
#
# 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, sublicense,
# 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 above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# 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
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS 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.
include $(top_srcdir)/src/gallium/Automake.inc
AM_CFLAGS = \
$(GALLIUM_DRI_CFLAGS)
AM_CPPFLAGS = \
-DGALLIUM_RBUG \
-DGALLIUM_TRACE \
-DGALLIUM_NOOP
dridir = $(DRI_DRIVER_INSTALL_DIR)
dri_LTLIBRARIES = r600_dri.la
nodist_EXTRA_r600_dri_la_SOURCES = dummy.cpp
r600_dri_la_SOURCES = \
drm_target.c
r600_dri_la_LDFLAGS = \
$(GALLIUM_DRI_LINKER_FLAGS) \
-Wl,--dynamic-list=$(srcdir)/../../r300/dri/radeon.dyn
r600_dri_la_LIBADD = \
$(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
$(top_builddir)/src/gallium/drivers/radeon/libradeon.la \
$(top_builddir)/src/gallium/drivers/r600/libr600.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
$(top_builddir)/src/gallium/drivers/trace/libtrace.la \
$(top_builddir)/src/gallium/drivers/rbug/librbug.la \
$(top_builddir)/src/gallium/drivers/noop/libnoop.la \
$(GALLIUM_DRI_LIB_DEPS) \
$(LIBDRM_LIBS) \
$(RADEON_LIBS)
include $(top_srcdir)/install-gallium-links.mk

View file

@ -1 +0,0 @@
../common/drm_target.c

View file

@ -1,74 +0,0 @@
/**************************************************************************
*
* Copyright 2013 Advanced Micro Devices, 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 above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
* 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 HOLDER(S) OR AUTHOR(S) 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.
*
**************************************************************************/
#include "state_tracker/drm_driver.h"
#include "target-helpers/inline_debug_helper.h"
#include "radeon/drm/radeon_drm_public.h"
#include "radeon/drm/radeon_winsys.h"
#include "radeonsi/si_public.h"
static struct pipe_screen *create_screen(int fd)
{
struct radeon_winsys *radeon;
radeon = radeon_drm_winsys_create(fd, radeonsi_screen_create);
return radeon ? debug_screen_wrap(radeon->screen) : NULL;
}
static const struct drm_conf_ret throttle_ret = {
.type = DRM_CONF_INT,
.val.val_int = 2,
};
/* Technically this is only true for kernels >= 3.12, which
* support lseek on dma-buf fds.
*
* We could check for this in create_screen and return the correct
* value, but for now just return true in all cases.
*
* createImageFromFds fails gracefully on kernel < 3.12, so this
* shouldn't be a huge problem.
*/
static const struct drm_conf_ret share_fd_ret = {
.type = DRM_CONF_BOOL,
.val.val_int = true,
};
static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
{
switch (conf) {
case DRM_CONF_THROTTLE:
return &throttle_ret;
case DRM_CONF_SHARE_FD:
return &share_fd_ret;
default:
break;
}
return NULL;
}
DRM_DRIVER_DESCRIPTOR("radeonsi", "radeon", create_screen, drm_configuration)

View file

@ -1,55 +0,0 @@
# Copyright © 2012 Intel Corporation
#
# 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, sublicense,
# 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 above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# 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
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS 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.
include $(top_srcdir)/src/gallium/Automake.inc
AM_CFLAGS = \
$(GALLIUM_DRI_CFLAGS)
AM_CPPFLAGS = \
-DGALLIUM_RBUG \
-DGALLIUM_TRACE \
-DGALLIUM_NOOP
dridir = $(DRI_DRIVER_INSTALL_DIR)
dri_LTLIBRARIES = radeonsi_dri.la
nodist_EXTRA_radeonsi_dri_la_SOURCES = dummy.cpp
radeonsi_dri_la_SOURCES = \
drm_target.c
radeonsi_dri_la_LDFLAGS = \
$(GALLIUM_DRI_LINKER_FLAGS) \
-Wl,--dynamic-list=$(srcdir)/../../r300/dri/radeon.dyn
radeonsi_dri_la_LIBADD = \
$(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
$(top_builddir)/src/gallium/drivers/radeon/libradeon.la \
$(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
$(top_builddir)/src/gallium/drivers/trace/libtrace.la \
$(top_builddir)/src/gallium/drivers/rbug/librbug.la \
$(top_builddir)/src/gallium/drivers/noop/libnoop.la \
$(GALLIUM_DRI_LIB_DEPS) \
$(RADEON_LIBS)
include $(top_srcdir)/install-gallium-links.mk

View file

@ -1 +0,0 @@
../common/drm_target.c