System Information
Windows 7 64-bit
Intel HD Graphics 4000
Blender Version
Broken: 2.70 19e627c, 2.71 9337574, 2.72rc eb464ee
Worked: 2.69 r60995
Description
The BGE crashes when attempting to LibLoad 2 files asynchronously at the same time when one of the files contains a high-poly object (about 250,000 faces on my machine).
Files
import bge
basePath = bge.logic.expandPath('//')
pathList = ['A.blend', 'B.blend']
for path in pathList:
print('loading:', path)
bge.logic.LibLoad(basePath + path, 'Scene', async=True)B.blend (couldn't upload due to file size) - Contains a face that has been subdivide 9 times.
Exact steps for others to reproduce the error
Make sure all the blend files are in the same directory (You'll have to create B.blend yourself since I couldn't upload it. Just delete everything, add the default plane, and subdivide it 9 times). Open load.blend and start the game engine. The crash should occur almost immediately.
Additional Notes
- It does not matter if the LibLoaded objects are on an active or inactive layer.
- The order files A.blend and B.blend are loaded in does not matter
- A.blend must contain an object for the crash to occur.
- load.blend must be in GLSL mode.
- The crash does not occur if LibLoad's async argument is False
- If you make the high-poly object using modifiers, the modifiers must be applied for the crash to occur.
- I primarily tested the crash on 32-bit versions of Blender. The crash only seems to happen about 50% of the time on 2.71 64-bit Blender. If it did not happen the first time the game engine was started, it would not happen at all unless you completely closed Blender and started it again.