diff options
Diffstat (limited to 'src/gallium/targets/omx')
-rw-r--r-- | src/gallium/targets/omx/Makefile.am | 76 | ||||
-rw-r--r-- | src/gallium/targets/omx/meson.build | 51 | ||||
-rw-r--r-- | src/gallium/targets/omx/omx.sym | 11 | ||||
-rw-r--r-- | src/gallium/targets/omx/target.c | 2 |
4 files changed, 140 insertions, 0 deletions
diff --git a/src/gallium/targets/omx/Makefile.am b/src/gallium/targets/omx/Makefile.am new file mode 100644 index 00000000000..89ebcc045cb --- /dev/null +++ b/src/gallium/targets/omx/Makefile.am @@ -0,0 +1,76 @@ +include $(top_srcdir)/src/gallium/Automake.inc + +AM_CFLAGS = \ + $(GALLIUM_TARGET_CFLAGS) + +omxdir = $(OMX_BELLAGIO_LIB_INSTALL_DIR) +omx_LTLIBRARIES = libomx_mesa.la + +nodist_EXTRA_libomx_mesa_la_SOURCES = dummy.cpp +libomx_mesa_la_SOURCES = + +libomx_mesa_la_LDFLAGS = \ + -shared \ + -module \ + -no-undefined \ + -avoid-version \ + $(GC_SECTIONS) \ + $(LD_NO_UNDEFINED) + +if HAVE_LD_VERSION_SCRIPT +libomx_mesa_la_LDFLAGS += \ + -Wl,--version-script=$(top_srcdir)/src/gallium/targets/omx/omx.sym +endif # HAVE_LD_VERSION_SCRIPT + +libomx_mesa_la_LIBADD = \ + $(top_builddir)/src/gallium/state_trackers/omx/libomxtracker_common.la \ + $(top_builddir)/src/gallium/state_trackers/omx/bellagio/libomxtracker.la \ + $(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \ + $(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \ + $(top_builddir)/src/gallium/auxiliary/libgallium.la \ + $(top_builddir)/src/util/libmesautil.la \ + $(OMX_BELLAGIO_LIBS) \ + $(LIBDRM_LIBS) \ + $(GALLIUM_COMMON_LIB_DEPS) + +if HAVE_PLATFORM_X11 +libomx_mesa_la_LIBADD += \ + $(VL_LIBS) \ + $(XCB_DRI3_LIBS) +endif + +EXTRA_libomx_mesa_la_DEPENDENCIES = omx.sym +EXTRA_DIST = omx.sym meson.build + +if HAVE_GALLIUM_STATIC_TARGETS + +TARGET_DRIVERS = +TARGET_CPPFLAGS = +TARGET_LIB_DEPS = + + +include $(top_srcdir)/src/gallium/drivers/nouveau/Automake.inc + +include $(top_srcdir)/src/gallium/drivers/r600/Automake.inc +include $(top_srcdir)/src/gallium/drivers/radeonsi/Automake.inc + +libomx_mesa_la_SOURCES += target.c +libomx_mesa_la_CPPFLAGS = $(TARGET_CPPFLAGS) +libomx_mesa_la_LIBADD += \ + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_static.la \ + $(GALLIUM_PIPE_LOADER_WINSYS_LIBS) \ + $(TARGET_LIB_DEPS) \ + $(TARGET_COMPILER_LIB_DEPS) \ + $(TARGET_RADEON_WINSYS) $(TARGET_RADEON_COMMON) + +else # HAVE_GALLIUM_STATIC_TARGETS + +libomx_mesa_la_LIBADD += \ + $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader_dynamic.la + +endif # HAVE_GALLIUM_STATIC_TARGETS + +if HAVE_GALLIUM_LLVM +libomx_mesa_la_LIBADD += $(LLVM_LIBS) +libomx_mesa_la_LDFLAGS += $(LLVM_LDFLAGS) +endif diff --git a/src/gallium/targets/omx/meson.build b/src/gallium/targets/omx/meson.build new file mode 100644 index 00000000000..6811e6ff904 --- /dev/null +++ b/src/gallium/targets/omx/meson.build @@ -0,0 +1,51 @@ +# Copyright © 2017-2018 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 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. + +# TODO: support non-static targets +# Static targets are always enabled in autotools (unless you modify +# configure.ac) + +omx_link_args = [] +omx_link_depends = [] + +if with_ld_version_script + omx_link_args += ['-Wl,--version-script', join_paths(meson.current_source_dir(), 'omx.sym')] + omx_link_depends += files('omx.sym') +endif + +libomx_gallium = shared_library( + 'omx_mesa', + 'target.c', + c_args : c_vis_args, + cpp_args : cpp_vis_args, + link_args : [omx_link_args, ld_args_gc_sections], + include_directories : [ + inc_common, inc_util, inc_gallium_winsys, inc_gallium_drivers, + ], + link_whole : [libomx_st], + link_with : [ + libgalliumvlwinsys, libgalliumvl, libgallium, libmesa_util, + libpipe_loader_static, libws_null, libwsw, libswdri, libswkmsdri, + ], + link_depends : omx_link_depends, + dependencies : [dep_thread, driver_r600, driver_radeonsi, driver_nouveau], + install : true, + install_dir : omx_drivers_path, +) diff --git a/src/gallium/targets/omx/omx.sym b/src/gallium/targets/omx/omx.sym new file mode 100644 index 00000000000..e8a287600a5 --- /dev/null +++ b/src/gallium/targets/omx/omx.sym @@ -0,0 +1,11 @@ +{ + global: + omx_component_library_Setup; + + # Workaround for an LLVM warning with -simplifycfg-sink-common + # due to LLVM being initialized multiple times. + radeon_drm_winsys_create; + amdgpu_winsys_create; + local: + *; +}; diff --git a/src/gallium/targets/omx/target.c b/src/gallium/targets/omx/target.c new file mode 100644 index 00000000000..308e23bb4a0 --- /dev/null +++ b/src/gallium/targets/omx/target.c @@ -0,0 +1,2 @@ +#include "target-helpers/drm_helper.h" +#include "target-helpers/sw_helper.h" |