diff options
author | Kenneth Graunke <[email protected]> | 2019-04-18 22:13:41 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-04-22 09:35:36 -0700 |
commit | faa52e328e3edf9b4596073eee3360aa29fd7252 (patch) | |
tree | c7c47dac53fee08b221c9cd19699793ee9055abb /src/gallium/drivers | |
parent | ccb25aaeafa4d5bc82da76774a3776e83638f211 (diff) |
iris: Add mechanism for iris-specific driconf options
Based on Nicolai's 0f8c5de8690e7c87aa2e24383065efaca7e6fe78.
Reviewed-by: Dylan Baker <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/iris/Android.mk | 18 | ||||
-rw-r--r-- | src/gallium/drivers/iris/Makefile.sources | 5 | ||||
-rw-r--r-- | src/gallium/drivers/iris/driinfo_iris.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/iris/iris_screen.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/iris/iris_screen.h | 3 | ||||
-rw-r--r-- | src/gallium/drivers/iris/meson.build | 16 |
6 files changed, 42 insertions, 3 deletions
diff --git a/src/gallium/drivers/iris/Android.mk b/src/gallium/drivers/iris/Android.mk index ba59eb566bb..f80f34f4b77 100644 --- a/src/gallium/drivers/iris/Android.mk +++ b/src/gallium/drivers/iris/Android.mk @@ -125,6 +125,24 @@ include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libmesa_pipe_iris +LOCAL_MODULE_CLASS := STATIC_LIBRARIES + +intermediates := $(call local-generated-sources-dir) + +LOCAL_GENERATED_SOURCES := $(addprefix $(intermediates)/iris/,$(GENERATED_SOURCES)) + +GEN_DRIINFO_INPUTS := \ + $(MESA_TOP)/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h \ + $(LOCAL_PATH)/driinfo_iris.h + +MERGE_DRIINFO := $(MESA_TOP)/src/util/merge_driinfo.py + +$(intermediates)/iris/si_driinfo.h: $(MERGE_DRIINFO) $(GEN_DRIINFO_INPUTS) + @mkdir -p $(dir $@) + @echo "Gen Header: $(PRIVATE_MODULE) <= $(notdir $(@))" + $(hide) $(MESA_PYTHON2) $(MERGE_DRIINFO) $(GEN_DRIINFO_INPUTS) > $@ || ($(RM) $@; false) + +LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates) LOCAL_SRC_FILES := \ $(IRIS_C_SOURCES) diff --git a/src/gallium/drivers/iris/Makefile.sources b/src/gallium/drivers/iris/Makefile.sources index 7ea5896e976..6876935b99f 100644 --- a/src/gallium/drivers/iris/Makefile.sources +++ b/src/gallium/drivers/iris/Makefile.sources @@ -20,7 +20,12 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. +GENERATED_SOURCES := \ + iris_driinfo.h + IRIS_C_SOURCES = \ + $(GENERATED_SOURCES) \ + driinfo_iris.h \ iris_batch.c \ iris_batch.h \ iris_binder.c \ diff --git a/src/gallium/drivers/iris/driinfo_iris.h b/src/gallium/drivers/iris/driinfo_iris.h new file mode 100644 index 00000000000..0d513bc0468 --- /dev/null +++ b/src/gallium/drivers/iris/driinfo_iris.h @@ -0,0 +1 @@ +// iris specific driconf options diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index 6dff3a47b65..3e1cabafb70 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -552,7 +552,7 @@ iris_shader_perf_log(void *data, const char *fmt, ...) } struct pipe_screen * -iris_screen_create(int fd) +iris_screen_create(int fd, const struct pipe_screen_config *config) { struct iris_screen *screen = rzalloc(NULL, struct iris_screen); if (!screen) diff --git a/src/gallium/drivers/iris/iris_screen.h b/src/gallium/drivers/iris/iris_screen.h index 475975747c3..8a75374429f 100644 --- a/src/gallium/drivers/iris/iris_screen.h +++ b/src/gallium/drivers/iris/iris_screen.h @@ -74,7 +74,8 @@ struct iris_screen { struct iris_bo *workaround_bo; }; -struct pipe_screen *iris_screen_create(int fd); +struct pipe_screen * +iris_screen_create(int fd, const struct pipe_screen_config *config); boolean iris_is_format_supported(struct pipe_screen *pscreen, diff --git a/src/gallium/drivers/iris/meson.build b/src/gallium/drivers/iris/meson.build index 30c317fe481..673b2170e1a 100644 --- a/src/gallium/drivers/iris/meson.build +++ b/src/gallium/drivers/iris/meson.build @@ -19,6 +19,7 @@ # SOFTWARE. files_libiris = files( + 'driinfo_iris.h', 'iris_batch.c', 'iris_batch.h', 'iris_binder.c', @@ -46,6 +47,17 @@ files_libiris = files( 'iris_screen.h', ) +iris_driinfo_h = custom_target( + 'iris_driinfo.h', + input : files( + '../../../util/merge_driinfo.py', + '../../auxiliary/pipe-loader/driinfo_gallium.h', 'driinfo_iris.h' + ), + output : 'iris_driinfo.h', + command : [prog_python, '@INPUT@'], + capture : true, +) + iris_gen_libs = [] foreach v : ['80', '90', '100', '110'] iris_gen_libs += static_library( @@ -62,7 +74,8 @@ endforeach libiris = static_library( 'iris', - [files_libiris, gen_xml_pack, nir_opcodes_h, nir_builder_opcodes_h], + [files_libiris, gen_xml_pack, nir_opcodes_h, nir_builder_opcodes_h, + iris_driinfo_h], include_directories : [ inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_intel, inc_nir, inc_gallium_drivers, @@ -80,5 +93,6 @@ libiris = static_library( driver_iris = declare_dependency( compile_args : '-DGALLIUM_IRIS', + sources : iris_driinfo_h, link_with : [libiris, libiriswinsys], ) |