7 Replies Latest reply on Apr 13, 2017 11:57 AM by chgena

    Ubuntu Linux & AMDGPU-PRO 17.10

    chgena

      Hi!

      I've installed AMDGPU-PRO 17.10 drivers on PC:

      Intel Core i5 3470/4x4GB DDDR3/AMD HD7770 1GB GDDR5/2560x1440 HDMI display

      Ubuntu Linux 16.04.2 (Kernel 4.8 + Mesa 12.0) + AMDGPU-PRO 17.10

      Driver was installed successfully with stock installer and machine was rebooted.

      glxinfo show OpenGL 4.5 support and all other info correctly. No extra low level or exotic PPAs are used.

      OpenGL generally works well and fast (e.g. Xonitic 0.8 Ultra/1440p). But there are few issues:

      1)  OpenCL issues:

      OpenCL is detected, but fails in tests on creating command queue, e.g.:

      OpenCL LuxMark 2.0:

      OpenCL ERROR: clCreateCommandQueue(-6)

      (all other OCL ICDs were uninstalled)

      -6 means out of memory, but there was plenty of it

      Mesa OpenCL driver seems to be old, and app complains about some unsupported futures.

       

      2) Chromium browser sometimes doesn't update window contents or could show just white background. Firefox works well

       

      3) Most disturbing for me. GCC/Clang Address Sanetizer issues:

      I use Ubuntu 16.04 GCC 5 compiler with its Address Sanetizer (ASAN) future. And I get complains about amdgpu-pro driver, which prevent me from using it.

      With open Mesa 11.x/12 or other drivers there weren't any problems.

      If you build some software (e.g. Cocos2dx 3 demo application) with address sanitizer (-fsanetize=address) and start it you'll get:

      =================================================================

      ==2869==ERROR: AddressSanitizer: alloc-dealloc-mismatch (operator new [] vs operator delete) on 0x60c000008e00

           #0 0x7f8440191b2a in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x99b2a)

           #1 0x7f8435a52ec6  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x197fec6)

           #2 0x7f8435a46b5a  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1973b5a)

           #3 0x7f8435a3f264  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x196c264)

           #4 0x7f8435a4968d  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x197668d)

           #5 0x7f8435ab4371  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x19e1371)

           #6 0x7f8435ab2532  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x19df532)

           #7 0x7f84352d89b6  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x12059b6)

           #8 0x7f84352dcc3f  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1209c3f)

           #9 0x7f84351296cb  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x10566cb)

           #10 0x7f8435129ad9  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1056ad9)

           #11 0x7f84350cbe35  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0xff8e35)

           #12 0x7f84351c39fb  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x10f09fb)

           #13 0x7f84345f7f8b  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x524f8b)

           #14 0x7f843546b75b  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x139875b)

           #15 0x7f8435486d1b  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x13b3d1b)

           #16 0x7f843548dacc  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x13baacc)

           #17 0x7f84363d8300  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x2305300)

           #18 0x7f84363d30bf  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x23000bf)

           #19 0x7f84363d339a  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x230039a)

           #20 0x7f843fe7f6c3  (/opt/amdgpu-pro/lib/x86_64-linux-gnu/libGL.so.1+0x6f6c3)

           #21 0x7f843fe53e64  (/opt/amdgpu-pro/lib/x86_64-linux-gnu/libGL.so.1+0x43e64)

           #22 0x13de0c1 in _glfwCreateContext ......../glfw3/src/src/glx_context.c:447

      0x60c000008e00 is located 0 bytes inside of 115-byte region [0x60c000008e00,0x60c000008e73)

      allocated by thread T0 here:

           #0 0x7f84401916b2 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x996b2)

           #1 0x7f8435a54284  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1981284)

      SUMMARY: AddressSanitizer: alloc-dealloc-mismatch ??:0 operator delete(void*)

      ==2869==HINT: if you don't care about these warnings you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0

      ==2869==ABORTING

       

       

      Your could ignore the error above, but then another, fatal error:

      ASAN_OPTIONS=alloc_dealloc_mismatch=0

      =================================================================

      ==3304==ERROR: AddressSanitizer: strcpy-param-overlap: memory ranges [0x7ffe6a91bafc,0x7ffe6a91bb01) and [0x7ffe6a91bafc, 0x7ffe6a91bb01) overlap

           #0 0x7f6e2e47e78e  (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x6278e)

           #1 0x7f6e23f88ccf  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1bb5ccf)

           #2 0x7f6e23f89d3a  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1bb6d3a)

           #3 0x7f6e23f893f3  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1bb63f3)

           #4 0x7f6e23ed8f10  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1b05f10)

           #5 0x7f6e23ed90db  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1b060db)

           #6 0x7f6e23edd027  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1b0a027)

           #7 0x7f6e23edf91f  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1b0c91f)

           #8 0x7f6e23ed94fc  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1b064fc)

           #9 0x7f6e23f6e4e7  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1b9b4e7)

           #10 0x7f6e23dbac06  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x19e7c06)

           #11 0x7f6e23dbb046  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x19e8046)

           #12 0x7f6e23db2326  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x19df326)

           #13 0x7f6e235be80c  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x11eb80c)

           #14 0x7f6e235e9951  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x1216951)

           #15 0x7f6e22862d8b  (/usr/lib/x86_64-linux-gnu/dri/amdgpu_dri.so+0x48fd8b)

           #16 0xfa4cbf in cocos2d::GLProgram::compileShader(unsigned int*, unsigned int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)

       

      With previous driver, 16.60 I could start the app, at least, but it will crash after drawing some simple geometry with another ASAN "alloc-dealloc-mismatch".

      Again, it works perfectly well with all other drivers and different distributions, so it looks like amdgpu-pro drivers bugs.

       

      I'm ready to provide extra logs and info, if required (but its easy to reproduce)