2 Replies Latest reply on Sep 3, 2015 12:17 PM by yves

    Crash in driver: OpenGL and SSBOs

    yves

      Hello,

       

      my name is Yves and I'm a developer of the free and open source strategy game 0 A.D. (play0ad.com).

      I've started experimenting with more modern OpenGL features with the goal to improve rendering performance. When working with SSBOs I've experienced a crash in the driver on AMD platforms on both Windows and Linux. I'm using the proprietary drivers because Mesa does not yet support the required OpenGL features (which unfortunately also means I can't get any useful callstacks into the driver for troubleshooting).  The crash could not be reproduced with NVidia hardware and drivers. I've investigated further and was able to write a relatively small test-program that crashes in the same way as my new experimental renderer for the game.

       

      Here's the code:

      Example program to reproduce SSBO related driver crashes. · GitHub

       

      It's based on Graham Sellers' example programs (you can get the other required files here: openglsuperbible/sb6code · GitHub ).

       

      The example just renders a single triangle. It passes data using two SSBOs. One of these is used in both stages, vertex shader (VS) and fragment shader (FS).

      The conditions in the shader are quite arbitrary and their only purpose is to ensure that the blocks are actually active in the shader.

      If the block AColorBlock gets block ID 0, the program crashes in glDrawElements. You can rename the block to "ZColorBlock" for example to make it block 1 and avoid the crash. The crash can also be avoided by only using ColorIndexBlock in one shader stage or by using uniform buffers instead of SSBOs.

       

      Am I doing anything wrong or might it be a driver bug?

        • Re: Crash in driver: OpenGL and SSBOs
          pinform

          Hi Yves,

           

          Welcome!

           

          I have white-listed you, so you should be able to directly post in the appropriate forum. As your issue seems to be related to the OpenGL forum (OpenGL & Vulkan), I am moving it there.

           

          --Prasad

          • Re: Crash in driver: OpenGL and SSBOs
            yves

            It was indeed a driver bug, but it's resolved with the newest driver. The example program and also my experimental renderer don't crash anymore.

            On Windows I had quite an old driver (CCC shows 14.501.1003-141120a-177998C with OpenGL-Version 6.14.10.13283). The new version I've installed is (15.20.1062.1004-150803a1-187669C with OpenGL-Version 6.14.10.13399).

             

            On Linux I thought I had the most recent one through the Ubuntu package management (15.2, which corresponds to Catalyst 15.7).

            fglrxinfo has shown the following:

             

            display: :0  screen: 0

            OpenGL vendor string: Advanced Micro Devices, Inc.

            OpenGL renderer string: AMD Radeon R9 200 Series  

            OpenGL version string: 4.4.13374 Compatibility Profile Context 15.20.1013

             

            Because I already knew that a newer driver fixed it on Windows, I still tried it with a manual installation from the AMD driver download page.

            It fixed the problem and shows a slightly newer driver version (I think the driver version is 15.20.1046):

             

            display: :0  screen: 0

            OpenGL vendor string: Advanced Micro Devices, Inc.

            OpenGL renderer string: AMD Radeon (TM) R9 200 Series

            OpenGL version string: 4.5.13397 Compatibility Profile Context 15.20.1046