[Mesa-dev] [PATCH 1/1] automake: r600 should only depend on libamd_common if opencl is enabled
Jan Vesely
jan.vesely at rutgers.edu
Fri Jun 2 15:46:13 UTC 2017
On Thu, 2017-06-01 at 16:22 -0500, Aaron Watry wrote:
> On Thu, Jun 1, 2017 at 3:28 PM, Jan Vesely <jan.vesely at rutgers.edu> wrote:
>
> > Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> > ---
> > Hi guys,
> >
> > this is the first step towards dropping libamd_common dependency.
> > It's based on Emil's patches 3/5 and 4/5.
> > Enabling opencl still falls back to the old way of requiring libamd_common.
> > I'll try to address that in the next step (no time estimate, feel free to
> > beat me to it). I think we can drop part of those functions rather than
> > just copying them.
> >
>
> I did a build test of r600 on my laptop with an old libdrm before/after
> this patch with/without opencl enabled, and got:
> before, no CL: Build Failure
> after, no CL: Build succeeded
> before, with CL: Build Failure
> after, with CL: Build Failure
>
> I then went and updated libdrm/amdgpu, and the with/without CL build for
> r600 works again there. I then built this on my r600 box and
> double-checked that clinfo and piglit's cl-program-tester ran and could
> execute a simple kernel (tests/cl/program/execute/builtin/geometric/
> length.cl), so I'd say that this is:
> Tested-By: Aaron Watry <awatry at gmail.com>
thanks. I also tested building r600g using --disable-llvm which builds
OK (not sure if that should be allowed since r300g config fails without
llvm)
>
> And yes, I agree that we should remove the amdgpu dependency from
> libamd_common (or at least the parts that r600 depends on), but I'd be ok
> with doing that in a follow-up... That, or we also extend vinson's patch
> [0] and wrap it in a check for if opencl is enabled so that we get a
> configure-time failure if R600 is being built with CL and amdgpu's drm
> headers are missing/old.
I think that's a question for AMD devs. my current understanding is
that amdgpu_common is more like
amdgcn_shared_between_radv_and_radeonsi, yet both r300 and r600 use at
least the gpu_info header. I've found only two functions in ac_binary
that are needed by r600 clover, so I plan to copy them. having
common_amdgpu_common to be used by r300/r600/radeonsi/radv would be
nicer, but I'm not sure how much code would fall into that category.
Jan
>
> --Aaron
>
> [0] https://lists.freedesktop.org/archives/mesa-dev/2017-May/157327.html
>
>
> >
> > Emil, I didn't find anything in android build that enabled opencl, so I
> > dropped it entirely.
> >
> > regards,
> > Jan
> >
> > configure.ac | 3 ++-
> > src/gallium/drivers/r600/Android.mk | 5 -----
> > src/gallium/drivers/r600/Automake.inc | 2 +-
> > src/gallium/targets/pipe-loader/Makefile.am | 2 +-
> > 4 files changed, 4 insertions(+), 8 deletions(-)
> >
> > diff --git a/configure.ac b/configure.ac
> > index 5caf316..e0996a0 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -2631,7 +2631,8 @@ AM_CONDITIONAL(HAVE_SWRAST_DRI, test
> > x$HAVE_SWRAST_DRI = xyes)
> > AM_CONDITIONAL(HAVE_RADEON_VULKAN, test "x$HAVE_RADEON_VULKAN" = xyes)
> > AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes)
> >
> > -AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_R600" = xyes -o \
> > +AM_CONDITIONAL(HAVE_AMD_DRIVERS, test \( "x$HAVE_GALLIUM_R600" = xyes -a
> > \
> > + "x$enable_opencl" = xyes \) -o \
> > "x$HAVE_GALLIUM_RADEONSI" = xyes -o
> > \
> > "x$HAVE_RADEON_VULKAN" = xyes)
> >
> > diff --git a/src/gallium/drivers/r600/Android.mk
> > b/src/gallium/drivers/r600/Android.mk
> > index 87f433d..18c5bb6 100644
> > --- a/src/gallium/drivers/r600/Android.mk
> > +++ b/src/gallium/drivers/r600/Android.mk
> > @@ -30,11 +30,7 @@ include $(CLEAR_VARS)
> >
> > LOCAL_SRC_FILES := $(C_SOURCES) $(CXX_SOURCES)
> >
> > -ifeq ($(MESA_ENABLE_LLVM),true)
> > -LOCAL_STATIC_LIBRARIES := libmesa_amd_common
> > -else
> > LOCAL_C_INCLUDES += $(MESA_TOP)/src/amd/common
> > -endif
> >
> > LOCAL_SHARED_LIBRARIES := libdrm_radeon
> > LOCAL_MODULE := libmesa_pipe_r600
> > @@ -45,7 +41,6 @@ include $(BUILD_STATIC_LIBRARY)
> > ifneq ($(HAVE_GALLIUM_R600),)
> > $(eval GALLIUM_LIBS += \
> > $(LOCAL_MODULE) \
> > - $(LOCAL_STATIC_LIBRARIES) \
> > libmesa_winsys_radeon)
> > $(eval GALLIUM_SHARED_LIBS += $(LOCAL_SHARED_LIBRARIES))
> > endif
> > diff --git a/src/gallium/drivers/r600/Automake.inc
> > b/src/gallium/drivers/r600/Automake.inc
> > index fa45735..c96fe74 100644
> > --- a/src/gallium/drivers/r600/Automake.inc
> > +++ b/src/gallium/drivers/r600/Automake.inc
> > @@ -13,7 +13,7 @@ TARGET_RADEON_WINSYS = \
> > TARGET_RADEON_COMMON = \
> > $(top_builddir)/src/gallium/drivers/radeon/libradeon.la
> >
> > -if HAVE_GALLIUM_LLVM
> > +if HAVE_AMD_DRIVERS
> > TARGET_RADEON_COMMON += \
> > $(top_builddir)/src/amd/common/libamd_common.la
> > endif
> > diff --git a/src/gallium/targets/pipe-loader/Makefile.am
> > b/src/gallium/targets/pipe-loader/Makefile.am
> > index 5f629a2..c991533 100644
> > --- a/src/gallium/targets/pipe-loader/Makefile.am
> > +++ b/src/gallium/targets/pipe-loader/Makefile.am
> > @@ -131,7 +131,7 @@ pipe_r600_la_LIBADD = \
> > $(LIBDRM_LIBS) \
> > $(RADEON_LIBS)
> >
> > -if HAVE_GALLIUM_LLVM
> > +if HAVE_AMD_DRIVERS
> > pipe_r600_la_LIBADD += \
> > $(top_builddir)/src/amd/common/libamd_common.la
> > endif
> > --
> > 2.9.4
> >
> >
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170602/f9c78bd1/attachment.sig>
More information about the mesa-dev
mailing list