[Mesa-dev] [PATCHv2] targets/radeonsi/vdpau: convert to static/shared pipe-drivers

Emil Velikov emil.l.velikov at gmail.com
Wed Jun 18 10:37:06 PDT 2014


On 18/06/14 11:14, Christian König wrote:
> Hi Emil,
> 
> This patch is Reviewed-by: Christian König <christian.koenig at amd.com>
> 
> But there is still something looking odd:
>>   if NEED_RADEON_DRM_WINSYS
>>   if !HAVE_GALLIUM_R300
>> -if !HAVE_GALLIUM_RADEONSI
>>   STATIC_TARGET_LIB_DEPS += \
>>       $(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la
>>   endif
>>   endif
>> -endif
> You add the radeon winsys only when it's not not used for R300 or RADEONSI?
> That doesn't sounds right and should probably be fixed in one of the previous
> patches in your patchset.
> 
The previous patch adds the radeon winsys only when building vdpau-r600. This
one extends the winsys inclusion to handle build requests for vdpau-radeonsi.
I.e. the winsys is included only once when either one or both radeon drivers
are requested. If we include the winsys twice we causes build breakage.

Don't think I see your concern here. Can you please elaborate ?

Thanks for having a look at the patches. Shout out as soon as (if) any issues
come up :)

-Emil

> Regards,
> Christian.
> 
> Am 17.06.2014 20:01, schrieb Emil Velikov:
>> Similar to previous commits, this allows us to minimise some
>> of the duplication by compacting all vdpau targets into a
>> single library.
>>
>> v2:
>>   - Include the radeon winsys only when there is a user for it.
>>
>> Cc: Christian König <christian.koenig at amd.com>
>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> ---
>>   configure.ac                                    |  3 +-
>>   install-gallium-links.mk                        |  3 +-
>>   src/gallium/Automake.inc                        | 20 ----------
>>   src/gallium/targets/Makefile.am                 |  4 --
>>   src/gallium/targets/radeonsi/vdpau/Makefile.am  | 50
>> -------------------------
>>   src/gallium/targets/radeonsi/vdpau/drm_target.c |  1 -
>>   src/gallium/targets/vdpau/Makefile.am           | 10 ++++-
>>   7 files changed, 10 insertions(+), 81 deletions(-)
>>   delete mode 100644 src/gallium/targets/radeonsi/vdpau/Makefile.am
>>   delete mode 120000 src/gallium/targets/radeonsi/vdpau/drm_target.c
>>
>> diff --git a/configure.ac b/configure.ac
>> index ca70ab4..7ff14ad 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -1964,7 +1964,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" "" ""
>> "radeonsi/vdpau" "radeonsi/omx"
>> +            gallium_check_st "radeon/drm" "radeonsi/dri" "" ""
>> "vdpau/radeonsi" "radeonsi/omx"
>>               DRICOMMON_NEED_LIBDRM=yes
>>               ;;
>>           xnouveau)
>> @@ -2229,7 +2229,6 @@ AC_CONFIG_FILES([Makefile
>>           src/gallium/targets/r600/xvmc/Makefile
>>           src/gallium/targets/radeonsi/dri/Makefile
>>           src/gallium/targets/radeonsi/omx/Makefile
>> -        src/gallium/targets/radeonsi/vdpau/Makefile
>>           src/gallium/targets/vdpau/Makefile
>>           src/gallium/targets/xa/Makefile
>>           src/gallium/targets/xa/xatracker.pc
>> diff --git a/install-gallium-links.mk b/install-gallium-links.mk
>> index 757b288..f45f1b4 100644
>> --- a/install-gallium-links.mk
>> +++ b/install-gallium-links.mk
>> @@ -5,7 +5,7 @@ if BUILD_SHARED
>>   if HAVE_COMPAT_SYMLINKS
>>   all-local : .libs/install-gallium-links
>>   -.libs/install-gallium-links : $(dri_LTLIBRARIES) $(vdpau_LTLIBRARIES)
>> $(egl_LTLIBRARIES) $(lib_LTLIBRARIES)
>> +.libs/install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES)
>> $(lib_LTLIBRARIES)
>>       $(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR);    \
>>       link_dir=$(top_builddir)/$(LIB_DIR)/gallium;        \
>>       if test x$(egl_LTLIBRARIES) != x; then            \
>> @@ -13,7 +13,6 @@ all-local : .libs/install-gallium-links
>>       fi;                            \
>>       $(MKDIR_P) $$link_dir;                    \
>>       file_list=$(dri_LTLIBRARIES:%.la=.libs/%.so);        \
>> -    file_list+=$(vdpau_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*); \
>>       file_list+=$(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*);    \
>>       file_list+=$(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*);    \
>>       for f in $$file_list; do                 \
>> diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc
>> index f216fc9..21a4a80 100644
>> --- a/src/gallium/Automake.inc
>> +++ b/src/gallium/Automake.inc
>> @@ -59,14 +59,6 @@ GALLIUM_DRI_LINKER_FLAGS = \
>>       -avoid-version \
>>       $(GC_SECTIONS)
>>   -GALLIUM_VDPAU_LINKER_FLAGS = \
>> -    -shared \
>> -    -module \
>> -    -no-undefined \
>> -    -version-number $(VDPAU_MAJOR):$(VDPAU_MINOR) \
>> -    $(GC_SECTIONS) \
>> -    $(LD_NO_UNDEFINED)
>> -
>>   GALLIUM_XVMC_LINKER_FLAGS = \
>>       -shared \
>>       -module \
>> @@ -87,9 +79,6 @@ if HAVE_LD_VERSION_SCRIPT
>>   GALLIUM_DRI_LINKER_FLAGS += \
>>       -Wl,--version-script=$(top_srcdir)/src/gallium/targets/dri.sym
>>   -GALLIUM_VDPAU_LINKER_FLAGS += \
>> -    -Wl,--version-script=$(top_srcdir)/src/gallium/targets/vdpau/vdpau.sym
>> -
>>   GALLIUM_XVMC_LINKER_FLAGS += \
>>       -Wl,--version-script=$(top_srcdir)/src/gallium/targets/xvmc.sym
>>   @@ -112,13 +101,6 @@ GALLIUM_DRI_LIB_DEPS = \
>>       $(EXPAT_LIBS) \
>>       $(GALLIUM_COMMON_LIB_DEPS)
>>   -GALLIUM_VDPAU_LIB_DEPS = \
>> -    $(top_builddir)/src/gallium/auxiliary/libgallium.la \
>> -    $(top_builddir)/src/gallium/state_trackers/vdpau/libvdpautracker.la \
>> -    $(VDPAU_LIBS) \
>> -    $(LIBDRM_LIBS) \
>> -    $(GALLIUM_COMMON_LIB_DEPS)
>> -
>>   GALLIUM_XVMC_LIB_DEPS = \
>>       $(top_builddir)/src/gallium/auxiliary/libgallium.la \
>>       $(top_builddir)/src/gallium/state_trackers/xvmc/libxvmctracker.la \
>> @@ -142,12 +124,10 @@ GALLIUM_WINSYS_CFLAGS = \
>>   if HAVE_MESA_LLVM
>>     GALLIUM_DRI_LINKER_FLAGS += $(LLVM_LDFLAGS)
>> -GALLIUM_VDPAU_LINKER_FLAGS += $(LLVM_LDFLAGS)
>>   GALLIUM_XVMC_LINKER_FLAGS += $(LLVM_LDFLAGS)
>>   GALLIUM_OMX_LINKER_FLAGS += $(LLVM_LDFLAGS)
>>     GALLIUM_DRI_LIB_DEPS += $(LLVM_LIBS)
>> -GALLIUM_VDPAU_LIB_DEPS += $(LLVM_LIBS)
>>   GALLIUM_XVMC_LIB_DEPS += $(LLVM_LIBS)
>>   GALLIUM_OMX_LIB_DEPS += $(LLVM_LIBS)
>>   diff --git a/src/gallium/targets/Makefile.am
>> b/src/gallium/targets/Makefile.am
>> index a2e8bbd..c31a22e 100644
>> --- a/src/gallium/targets/Makefile.am
>> +++ b/src/gallium/targets/Makefile.am
>> @@ -95,10 +95,6 @@ if HAVE_DRI2
>>   SUBDIRS += radeonsi/dri
>>   endif
>>   -if HAVE_ST_VDPAU
>> -SUBDIRS += radeonsi/vdpau
>> -endif
>> -
>>   if HAVE_ST_OMX
>>   SUBDIRS += radeonsi/omx
>>   endif
>> diff --git a/src/gallium/targets/radeonsi/vdpau/Makefile.am
>> b/src/gallium/targets/radeonsi/vdpau/Makefile.am
>> deleted file mode 100644
>> index ec1baf6..0000000
>> --- a/src/gallium/targets/radeonsi/vdpau/Makefile.am
>> +++ /dev/null
>> @@ -1,50 +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_CPPFLAGS = \
>> -    -DSPLIT_TARGETS=1
>> -AM_CFLAGS = \
>> -    $(GALLIUM_VIDEO_CFLAGS)
>> -
>> -vdpaudir = $(VDPAU_LIB_INSTALL_DIR)
>> -vdpau_LTLIBRARIES = libvdpau_radeonsi.la
>> -
>> -nodist_EXTRA_libvdpau_radeonsi_la_SOURCES = dummy.cpp
>> -libvdpau_radeonsi_la_SOURCES = \
>> -    drm_target.c \
>> -    $(top_srcdir)/src/gallium/auxiliary/vl/vl_winsys_dri.c
>> -
>> -libvdpau_radeonsi_la_LDFLAGS = \
>> -    $(GALLIUM_VDPAU_LINKER_FLAGS) \
>> -    -Wl,--dynamic-list=$(srcdir)/../../r300/dri/radeon.dyn
>> -
>> -
>> -libvdpau_radeonsi_la_LIBADD = \
>> -    $(top_builddir)/src/gallium/drivers/radeon/libradeon.la \
>> -    $(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
>> -    $(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
>> -    $(GALLIUM_VDPAU_LIB_DEPS) \
>> -    $(RADEON_LIBS)
>> -
>> -include $(top_srcdir)/install-gallium-links.mk
>> diff --git a/src/gallium/targets/radeonsi/vdpau/drm_target.c
>> b/src/gallium/targets/radeonsi/vdpau/drm_target.c
>> deleted file mode 120000
>> index 6955421..0000000
>> --- a/src/gallium/targets/radeonsi/vdpau/drm_target.c
>> +++ /dev/null
>> @@ -1 +0,0 @@
>> -../common/drm_target.c
>> \ No newline at end of file
>> diff --git a/src/gallium/targets/vdpau/Makefile.am
>> b/src/gallium/targets/vdpau/Makefile.am
>> index 53603fc..74424d2 100644
>> --- a/src/gallium/targets/vdpau/Makefile.am
>> +++ b/src/gallium/targets/vdpau/Makefile.am
>> @@ -50,12 +50,10 @@ endif
>>     if NEED_RADEON_DRM_WINSYS
>>   if !HAVE_GALLIUM_R300
>> -if !HAVE_GALLIUM_RADEONSI
>>   STATIC_TARGET_LIB_DEPS += \
>>       $(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la
>>   endif
>>   endif
>> -endif
>>     if HAVE_GALLIUM_RADEON_COMMON
>>   STATIC_TARGET_LIB_DEPS += \
>> @@ -70,6 +68,14 @@ STATIC_TARGET_LIB_DEPS += \
>>       $(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
>> +
>>   libvdpau_gallium_la_SOURCES += target.c
>>   libvdpau_gallium_la_CPPFLAGS = $(STATIC_TARGET_CPPFLAGS)
>>   libvdpau_gallium_la_LIBADD += $(STATIC_TARGET_LIB_DEPS)
> 



More information about the mesa-dev mailing list