9 Replies Latest reply on Jul 21, 2016 10:30 AM by neilmonday

    Crashes when using GL_ARB_bindless_texture with AMD drivers

    alex

      I am using the GL_ARB_bindless_texture extension and am experiencing crashes due to access violations when using it together with AMD drivers (15.7.1 as well as 15.11.1 Beta, did not test with older drivers).

       

      The software works fine when used together with NVidia drivers. Also it works correctly when I do not make more than ~460 textures resident (glMakeTextureResidentARB) at a time. The textures together do not use > 40MB memory, so this can't be the problem. Allocating more than >1GB of textures works without problems in non-bindless mode and also in bindless mode as long as I do not make them resident.

       

      Does anybody experience similliar problems? Is there a limit how many textures can be resident at a time? Any ideas?

       

      Thanks in advance,

       

      Alex

        • Re: Crashes when using GL_ARB_bindless_texture with AMD drivers
          pinform

          Hi Alexander,

           

          I have white-listed you, so you should be able to post directly in any of the AMD developer forums.

          I am moving this post to the OpenGL forum, where you should receive useful responses.

           

          --Prasad

          • Re: Crashes when using GL_ARB_bindless_texture with AMD drivers
            alex

            I investigated this issue further and here is what I found:

             

            1) Independent of the textures sizes problems start as soon as 465 textures are resident.

             

            2) In my smaller repro case the problem is always the same: A call to glDrawElements does not return as soon as 465 textures are resident. My test:

                 a) Make one texture resident

                 b) Render that texture

                 c) Make another texture resident

                 d) Render the first(!) texture again

                 e) Jump to c)

            After looping through c)-e) 455 times drawing the first texture does not return...

             

            3) In my full application sometimes access violations occour as soon as 465 or more textures are resident, but in most cases drawing stalls.

             

            4) It's the number of textures currently resident, not the overall number of glMakeTextureResident calls that causes the problem. Making 200 textures resident, rendering them and making them non resident again can be repeated thousands of times without issues.

             

            5) Rendering works correctly as long as there are less textures resident. On nVidia hardware renderings works without problems for large numbers of resident textures. This makes me quite sure, that it's not a bug in my code.

             

            Does anybody use large numbers of resident textures on AMD hardware? Any experiences?

            • Re: Crashes when using GL_ARB_bindless_texture with AMD drivers
              alex

              Did anybody succesfully try to make more than ~465 resident using AMD OpenGL drivers?

              • Re: Crashes when using GL_ARB_bindless_texture with AMD drivers
                alex

                I created a minimal reproducer for this issue. A visual studio project is attached.

                 

                In the beginning of main.cpp the number of textures used can be set (count = x). If I choose the number smaller than 466 it runs without any issues. With larger number it hangs on AMD GPUs. For NVidia it works with 4096 and larger.

                 

                1) Can anyone confirm it on his machine?

                2) Did I do anything wrong in my code?

                 

                Thanks for your help in advance,

                 

                Alex

                1 of 1 people found this helpful
                • Re: Crashes when using GL_ARB_bindless_texture with AMD drivers
                  alex

                  Did anyone test my reproducer? In the meantime I know that there is at least one other software project experiencing the same problem. Unfortunately, there are no reactions from the AMD team until now. My bug report was ignored as well as this thread. How can I help to solve this issue?

                   

                  For now my only workaround is to buy NVidia cards, which work without any issue...