On 23/02/17 09:44, Marc Dietrich wrote:
Am Mittwoch, 22. Februar 2017, 22:27:42 CET schrieb Timothy Arceri:
On 23/02/17 01:57, Marc Dietrich wrote:
Am Mittwoch, 22. Februar 2017, 15:48:18 CET schrieb Emil Velikov:
On 22 February 2017 at 13:31, Marc Dietrich <marvi...@gmx.de> wrote:
Am Mittwoch, 22. Februar 2017, 04:45:46 CET schrieb Timothy Arceri:
For gpu generations that use LLVM we create a timestamp string
containing both the LLVM and Mesa build times, otherwise we just
use the Mesa build time.
Reviewed-by: Marek Olšák <marek.ol...@amd.com>
Reviewed-by: Edward O'Callaghan <funfunc...@folklore1984.net>
---
src/gallium/drivers/radeon/r600_pipe_common.c | 43
+++++++++++++++++++++++++++
src/gallium/drivers/radeon/r600_pipe_common.h
3 ++
2 files changed, 46 insertions(+)
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c
b/src/gallium/drivers/radeon/r600_pipe_common.c index 1781584..bae6d6f
100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -43,6 +43,10 @@
#define HAVE_LLVM 0
#endif
+#if HAVE_LLVM
+#include <llvm-c/TargetMachine.h>
+#endif
+
#ifndef MESA_LLVM_VERSION_PATCH
#define MESA_LLVM_VERSION_PATCH 0
#endif
@@ -779,6 +783,41 @@ static const char* r600_get_chip_name(struct
r600_common_screen *rscreen) }
}
+static void r600_disk_cache_create(struct r600_common_screen *rscreen)
+{
+ uint32_t mesa_timestamp;
+ if (disk_cache_get_function_timestamp(r600_disk_cache_create,
+ &mesa_timestamp)) {
+ char *timestamp_str;
+ int res = -1;
+ if (rscreen->chip_class < SI) {
+ res = asprintf(×tamp_str,
"%u",mesa_timestamp);
+ }
+#if HAVE_LLVM
+ else {
+ uint32_t llvm_timestamp;
+ if
(disk_cache_get_function_timestamp(LLVMInitializeAMDGPUTargetInfo, +
&llvm_timestamp))
{ + res = asprintf(×tamp_str, "%u_%u",
+ mesa_timestamp,
llvm_timestamp); + }
+ }
+#endif
maybe this fails to link later in omx with r600 only compile.
make[4]: Verzeichnis „/usr/src/dri-project/mesa/src/gallium/targets/omx“
wird betreten
CXXLD libomx_mesa.la
../../../../src/gallium/drivers/radeon/.libs/libradeon.a(r600_pipe_commo
n.
o): In function `r600_disk_cache_create':
r600_pipe_common.c:(.text+0x2000): undefined reference to
`LLVMInitializeAMDGPUTargetInfo'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:791: libomx_mesa.la] Fehler 1
make[4]: Verzeichnis „/usr/src/dri-project/mesa/src/gallium/targets/omx“
wird verlassen
That should not happen since
- Compile guard HAVE_LLVM is defined when --enable-llvm is set
(explicitly or not)
- Makefile/link guard HAVE_GALLIUM_LLVM is set when the --enable-llvm is
Please make clean/git clean and report the output of make V=1 if the
final link still fails.
still same. I added -lLLVMAMDGPUInfo to LLVM_{LDFLAGS|LIBS}. Now it
compiles, but GL apps crash during context creation. I also tested the
initial version posted and this worked just fine. I have llvm enabled.
I just built it with omx and only r600 without any issues. Did you do
'git clean -xfd' of just make clean?
yes - I always do.
If it's still failing with a git clean then please post the params you
are using to build mesa.
#!/bin/sh -x
git clean -fdx --exclude b.sh --exclude "0*" --exclude b2.sh
COMMON_FLAGS="--prefix=/usr \
--enable-texture-float \
--enable-gles1 \
--enable-gles2 \
--enable-egl \
--enable-opengl \
--enable-shared-glapi \
--enable-gbm \
--enable-xa \
--enable-xvmc \
--enable-vdpau \
--enable-omx \
--enable-va \
--enable-nine \
--enable-gallium-osmesa \
--enable-dri3 \
--enable-gallium-llvm \
--disable-opencl-icd \
--disable-debug \
--enable-glx-tls \
--disable-opencl \
--with-gallium-drivers=r600,swrast \
--with-egl-platforms=drm,wayland,x11 \
--with-dri-drivers=no"
./autogen.sh \
$COMMON_FLAGS \
CFLAGS="$OPT_FLAGS $LTO_GCC" \
CXXFLAGS="$OPT_FLAGS $LTO_GCC" \
LDFLAGS="$OPT_FLAGS $LTO_GCC" \
CC="gcc$GCC_VER" \
CXX="g++$GCC_VER" \
LD="ld.gold" \
AR="gcc-ar$GCC_VER" \
NM="gcc-nm$GCC_VER" \
RANLIB="gcc-ranlib$GCC_VER" \
&& \
make -j2 && make install
I've pushed a fix for building with an old version of llvm. Hopefully
this will resolve your problem.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev