2 Replies Latest reply on Apr 9, 2012 1:22 AM by smurphdude

    OpenGL issues with HD3000




      i5 2430M processor HD3000 driver revision 6GB 64bit Win7 machine.


      Opensource OpenGL space sim Oolite http://developer.berlios.de/project/showfiles.php?group_id=3577. Please not the release version tagged 1.76 is not fully compatible with HD3000 due to z-buffering issues. However this has been fixed in current trunk/maintenance builds. This is the first OpenGL3.1 driver that doesn't have rendering artifacts with this game. Old OpenGL3.0 drivers from around a year ago were reasonably stable, but could also crash.


      With current driver revision the game can crash when loading multiple high resolution (4096x4096) textures in OpenGL. GPU control panel is not indicating that graphic memory is anywhere near 1.6GB limit. Resmon is generally indicating the 32bit app is using around 1 to 1.5GB in total when crashes occur.


      As a side note the game also exhibits the dodgy alt-tab, windows key-tab behavour described at http://communities.intel.com/message/152827#152827 with this driver revision.


      I've tested with a debug build and gdb debugger and the backtrace indicates that the crashing module is ig4icd32.dll


      GDB output.


      Steve@WIN7LAPTOP /c/oolite-svn/1.76-maintenance/oolite.app
      $ gdb oolite.dbg.exe
      GNU gdb 6.8
      Copyright (C) 2008 Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
      and "show warranty" for details.
      This GDB was configured as "i686-pc-mingw32"...
      (gdb) run
      Starting program: c:\oolite-svn\1.76-maintenance\oolite.app/oolite.dbg.exe
      [New thread 1436.0x12c8]
      [New thread 1436.0xb10]
      [New thread 1436.0x71c]
      [New thread 1436.0x121c]
      [New thread 1436.0xe88]
      [New thread 1436.0xa00]
      [New thread 1436.0x934]
      [New thread 1436.0xe84]
      [New thread 1436.0xf64]
      [New thread 1436.0x131c]
      [New thread 1436.0xfa4]
      [New thread 1436.0x1218]
      [New thread 1436.0xda8]
      [New thread 1436.0x11d4]
      [New thread 1436.0x7f8]
      [New thread 1436.0xabc]
      [New thread 1436.0x1e8]
      [New thread 1436.0xe20]
      [New thread 1436.0xdd0]
      [New thread 1436.0x7c8]
      [New thread 1436.0x1354]
      [New thread 1436.0xd48]
      [New thread 1436.0x438]
      [New thread 1436.0x300]
      [New thread 1436.0x588]
      [New thread 1436.0x1150]
      [New thread 1436.0x9d4]
      [New thread 1436.0x3a4]
      [New thread 1436.0x1298]
      [New thread 1436.0x1c8]
      [New thread 1436.0x11d0]


      Program received signal SIGSEGV, Segmentation fault.
      0x075bad18 in ?? () from C:\Windows\SysWOW64\ig4icd32.dll
      (gdb) Error: dll starting at 0x772c0000 not found.
      Error: dll starting at 0x76d70000 not found.
      Error: dll starting at 0x772c0000 not found.
      Error: dll starting at 0x76f10000 not found.
      #0  0x075bad18 in ?? () from C:\Windows\SysWOW64\ig4icd32.dll
      #1  0x4d5d0028 in ?? ()
      #2  0x46da0020 in ?? ()
      #3  0x0028e730 in ?? ()
      #4  0x4d5d0028 in ?? ()
      #5  0x000007ff in ?? ()
      #6  0x076a90b4 in ig4icd32!DrvValidateVersion ()
      from C:\Windows\SysWOW64\ig4icd32.dll
      #7  0x00002000 in ?? ()
      #8  0x00000800 in ?? ()
      #9  0x4d5d0028 in ?? ()
      #10 0x05ec1000 in ?? ()
      #11 0x21003dec in ?? ()
      #12 0x00002000 in ?? ()
      #13 0x07f3e55b in ig4icd32!DrvShareLists ()
      from C:\Windows\SysWOW64\ig4icd32.dll
      #14 0x0028e714 in ?? ()
      #15 0x00000000 in ?? ()

        • 1. Re: OpenGL issues with HD3000

          Some more info that might be useful in diagnosing the problem or suggesting a solution...


          I've narrowed down the cause of the crash to a specific model, which is a little extreme in it's texture size (it's an optional add on and the biggest model I've got in my installation of the game). It has a regular texture and a normal map both 4096x4096, and uses shaders. The actual GPU memory used to render the model is approx 195MB. It doesn't crash the system 100% but if the GPU is already using more than about 250MB it will send it over 100% of the time. If I alter the models configuration so it's not using the normal map , or manually resize both textures to 2048x2048 the crashes appear to be cured. In this configuration it costs 44MB in GPU memory.


          If you need a copy of the game etc for testing purposes let me know and I can upload an installer and other bits needed.

          • 2. Re: OpenGL issues with HD3000

            Fixed by recompiling the game executable so it's LARGEADDRESSAWARE. It appears that the graphics driver is trying to use memory outside of the applications 2GB address space when this flag is not set at compile time, hence the crashes. With this flag set the application gets 4GB of address space hence no crash.


            I still think this is a bug in the graphics driver. It should be able to check if an 32bit app is LARGEADDRESSAWARE or not, and choose it's memory allocation appropriately. Would probably fix a lot of game compatibility issues with the HD3000.