diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-06-29 17:31:57 +0200 |
---|---|---|
committer | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-07-13 13:27:47 +0200 |
commit | 4333ed138ec19c989f23907aa2c13c9ea5b4fb81 (patch) | |
tree | f57ca2c17a5201980a5f553ac75d968d0f89d5fc | |
parent | 132adef7e6da013c27fa46b20e1402ee57aa4a41 (diff) |
radeonsi: prepare for driver-specific driconf options
-rw-r--r-- | src/gallium/Automake.inc | 2 | ||||
-rw-r--r-- | src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | 2 | ||||
-rw-r--r-- | src/gallium/auxiliary/target-helpers/drm_helper.h | 25 | ||||
-rw-r--r-- | src/gallium/auxiliary/target-helpers/drm_helper_public.h | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/Makefile.am | 13 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/Makefile.sources | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/driinfo_radeonsi.h | 1 | ||||
-rw-r--r-- | src/gallium/targets/pipe-loader/Makefile.am | 1 | ||||
-rw-r--r-- | src/gallium/targets/pipe-loader/pipe_radeonsi.c | 9 |
9 files changed, 58 insertions, 1 deletions
diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc index 48b5a44067..3e21aa71b5 100644 --- a/src/gallium/Automake.inc +++ b/src/gallium/Automake.inc @@ -39,6 +39,8 @@ GALLIUM_TARGET_CFLAGS = \ -I$(top_srcdir)/src/gallium/auxiliary \ -I$(top_srcdir)/src/gallium/drivers \ -I$(top_srcdir)/src/gallium/winsys \ + -I$(top_builddir)/src/util/ \ + -I$(top_builddir)/src/gallium/drivers/ \ $(DEFINES) \ $(PTHREAD_CFLAGS) \ $(LIBDRM_CFLAGS) \ diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index d8d3878bcd..69a02838cc 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -88,7 +88,7 @@ static const struct drm_driver_descriptor driver_descriptors[] = { { .driver_name = "radeonsi", .create_screen = pipe_radeonsi_create_screen, - .configuration = pipe_default_configuration_query, + .configuration = pipe_radeonsi_configuration_query, }, { .driver_name = "vmwgfx", diff --git a/src/gallium/auxiliary/target-helpers/drm_helper.h b/src/gallium/auxiliary/target-helpers/drm_helper.h index a4fcde385f..95b4a27111 100644 --- a/src/gallium/auxiliary/target-helpers/drm_helper.h +++ b/src/gallium/auxiliary/target-helpers/drm_helper.h @@ -5,6 +5,7 @@ #include "target-helpers/inline_debug_helper.h" #include "target-helpers/drm_helper_public.h" #include "state_tracker/drm_driver.h" +#include "util/xmlpool.h" static const struct drm_conf_ret throttle_ret = { .type = DRM_CONF_INT, @@ -175,6 +176,24 @@ pipe_radeonsi_create_screen(int fd, const struct pipe_screen_config *config) return rw ? debug_screen_wrap(rw->screen) : NULL; } +const struct drm_conf_ret * +pipe_radeonsi_configuration_query(enum drm_conf conf) +{ + static const struct drm_conf_ret xml_options_ret = { + .type = DRM_CONF_POINTER, + .val.val_pointer = +#include "radeonsi/si_driinfo.h" + }; + + switch (conf) { + case DRM_CONF_XML_OPTIONS: + return &xml_options_ret; + default: + break; + } + return pipe_default_configuration_query(conf); +} + #else struct pipe_screen * @@ -184,6 +203,12 @@ pipe_radeonsi_create_screen(int fd, const struct pipe_screen_config *config) return NULL; } +const struct drm_conf_ret * +pipe_radeonsi_configuration_query(enum drm_conf conf) +{ + return NULL; +} + #endif #ifdef GALLIUM_VMWGFX diff --git a/src/gallium/auxiliary/target-helpers/drm_helper_public.h b/src/gallium/auxiliary/target-helpers/drm_helper_public.h index c540d7c58a..46819131bd 100644 --- a/src/gallium/auxiliary/target-helpers/drm_helper_public.h +++ b/src/gallium/auxiliary/target-helpers/drm_helper_public.h @@ -24,6 +24,8 @@ pipe_r600_create_screen(int fd, const struct pipe_screen_config *config); struct pipe_screen * pipe_radeonsi_create_screen(int fd, const struct pipe_screen_config *config); +const struct drm_conf_ret * +pipe_radeonsi_configuration_query(enum drm_conf conf); struct pipe_screen * pipe_vmwgfx_create_screen(int fd, const struct pipe_screen_config *config); diff --git a/src/gallium/drivers/radeonsi/Makefile.am b/src/gallium/drivers/radeonsi/Makefile.am index 1edbd0fd5d..a300770201 100644 --- a/src/gallium/drivers/radeonsi/Makefile.am +++ b/src/gallium/drivers/radeonsi/Makefile.am @@ -34,3 +34,16 @@ AM_CFLAGS = \ noinst_LTLIBRARIES = libradeonsi.la libradeonsi_la_SOURCES = $(C_SOURCES) + +GEN_DRIINFO_INPUTS = \ + $(top_srcdir)/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h \ + $(srcdir)/driinfo_radeonsi.h + +PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) +MERGE_DRIINFO = $(top_srcdir)/src/util/merge_driinfo.py + +si_driinfo.h: $(MERGE_DRIINFO) $(GEN_DRIINFO_INPUTS) + $(PYTHON_GEN) $(MERGE_DRIINFO) $(GEN_DRIINFO_INPUTS) > $@ || ($(RM) $@; false) + +BUILT_SOURCES = $(GENERATED_SOURCES) +CLEANFILES = $(GENERATED_SOURCES) diff --git a/src/gallium/drivers/radeonsi/Makefile.sources b/src/gallium/drivers/radeonsi/Makefile.sources index 1587d64621..6dc6da04e3 100644 --- a/src/gallium/drivers/radeonsi/Makefile.sources +++ b/src/gallium/drivers/radeonsi/Makefile.sources @@ -1,4 +1,8 @@ +GENERATED_SOURCES := \ + si_driinfo.h + C_SOURCES := \ + $(GENERATED_SOURCES) \ cik_sdma.c \ si_blit.c \ si_compute.c \ diff --git a/src/gallium/drivers/radeonsi/driinfo_radeonsi.h b/src/gallium/drivers/radeonsi/driinfo_radeonsi.h new file mode 100644 index 0000000000..a358f0263e --- /dev/null +++ b/src/gallium/drivers/radeonsi/driinfo_radeonsi.h @@ -0,0 +1 @@ +// DriConf options specific to radeonsi diff --git a/src/gallium/targets/pipe-loader/Makefile.am b/src/gallium/targets/pipe-loader/Makefile.am index 6b116184f5..400b198fe2 100644 --- a/src/gallium/targets/pipe-loader/Makefile.am +++ b/src/gallium/targets/pipe-loader/Makefile.am @@ -27,6 +27,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -I$(top_srcdir)/src/gallium/drivers \ -I$(top_srcdir)/src/gallium/winsys \ + -I$(top_builddir)/src/util \ $(GALLIUM_PIPE_LOADER_DEFINES) \ $(LIBDRM_CFLAGS) \ $(VISIBILITY_CFLAGS) \ diff --git a/src/gallium/targets/pipe-loader/pipe_radeonsi.c b/src/gallium/targets/pipe-loader/pipe_radeonsi.c index 598baf58da..2d33d0e336 100644 --- a/src/gallium/targets/pipe-loader/pipe_radeonsi.c +++ b/src/gallium/targets/pipe-loader/pipe_radeonsi.c @@ -4,6 +4,7 @@ #include "radeon/radeon_winsys.h" #include "amdgpu/drm/amdgpu_public.h" #include "radeonsi/si_public.h" +#include "util/xmlpool.h" static struct pipe_screen * create_screen(int fd, const struct pipe_screen_config *config) @@ -31,11 +32,19 @@ static const struct drm_conf_ret share_fd_ret = { static const struct drm_conf_ret *drm_configuration(enum drm_conf conf) { + static const struct drm_conf_ret xml_options_ret = { + .type = DRM_CONF_POINTER, + .val.val_pointer = +#include "radeonsi/si_driinfo.h" + }; + switch (conf) { case DRM_CONF_THROTTLE: return &throttle_ret; case DRM_CONF_SHARE_FD: return &share_fd_ret; + case DRM_CONF_XML_OPTIONS: + return &xml_options_ret; default: break; } |