1 Reply Latest reply on Oct 10, 2013 6:07 PM by runitai

    Access violation in 13.9 under OpenGL

    runitai

      Since Catalyst 13.8 beta we've been getting many bug reports about crashes in Second Life on AMD GPUs using recent drivers.  I've spent a few days trying to track down the issue and I've come up empty -- all the usual methods of narrowing down the source of the problem have failed and the crashes don't seem to be related to anything in particular that the application is doing.  Rolling back to Catalyst 13.4 resolves the issue.

       

      Is there a way to get more clarity on exactly where the driver is crashing?  

       

      It's usually underneath a call to glDrawRangeElements, and always an access violation near NULL (eg " Access violation reading location 0x0000002c.")

       

      The callstack is always deep in atioglxx.dll:

       

      atioglxx.dll!16a921c4()
      [Frames below may be incorrect and/or missing, no symbols loaded for atioglxx.dll]
      atioglxx.dll!16a52a2b()
      atioglxx.dll!16d85808()
      atioglxx.dll!16cd279a()
      atioglxx.dll!16da6293()
      atioglxx.dll!165fe6d6()
      atioglxx.dll!165fe787()
      atioglxx.dll!1641b8c4()
      atioglxx.dll!16953949()
      >secondlife-bin.exe!LLVertexBuffer::drawRange(unsigned int mode, unsigned int start, unsigned int end, unsigned int count, unsigned int indices_offset)  Line 763C++
      secondlife-bin.exe!LLRenderPass::pushBatch(LLDrawInfo & params, unsigned int mask, int texture, int batch_textures)  Line 510C++

       

       

      Related SL forum discussion:

      [AMD Radeon] Crash on boot with latest AMD drivers - Second Life

        • Re: Access violation in 13.9 under OpenGL
          runitai

          Resolved:  Fix was to use glGenTextures and glDeleteTextures instead of having the application manage its own GL texture names.

           

          After running under a debug, core profile context, I got errors about using texture names that hadn't been returned by glGenTextures (our application manages its own GL texture names to avoid frame stalls from glGenTextures on certain drivers).  Apparently that option has been deprecated for some time now, but there were no side effects until around Catalyst 13.8.