[Mesa-dev] [PATCH 8/8] r600/radeonsi: enable glsl/tgsi on-diskcache
Timothy Arceri
tarceri at itsqueeze.com
Wed Feb 22 23:23:02 UTC 2017
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 <marvin24 at 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.olsak at amd.com>
>>>>>> Reviewed-by: Edward O'Callaghan <funfunctor at 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
It builds correctly for me with that script.
>
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170223/8aae31b7/attachment.html>
More information about the mesa-dev
mailing list