Right, this is almost certainly a VMA layout issue. Try an
echo 1 >/proc/sys/vm/legacy_va_layout
That's not there, (but my pc's a good 18 months old VIA/AMD).
and see if that makes any difference. Also try disabling execshield if present:
echo 0 >/proc/sys/kernel/exec-shield echo 0 >/proc/sys/kernel/exec-shield-randomize
Nope, no exec-shield
and finally do an "export LD_USE_LOAD_BIAS=0" before running Wine (this should disable prelink for that process on recent glibcs).
Will do, i've also tried playing with the vm settings which didn't help. 'swappiness, overcommit_memory, overcommit_ratio, max_map_count and min_free_kbytes '
Finally if you do NOT have a flex-mmap kernel, that may also allow the win32 heap to grow as much as necessary.
I've tried doing... int i; int j; char* data; for(i =0 ; i< 10 ; i++){ data = HeapAlloc(GetProcessHeap(),0,64*1024*1024);
/*write to the data for linux really allocates it*/ for(j = 0 ; j < 128; j++){ data[j*1024*512] = 1; }
} and that works ok.
This does beg the question of how much RAM Pirates! expects to be able to allocate of course ....
Well, there's plenty free, and other apps can allocate memory just fine.
I can possibly look at putting some pooling code into DirectX to help reduce fragmentation on that side (though there's not a lot of memory allocated, and it's mostly in the same sized blocks), or something in malloc so that it reports the exact failure.
thanks -mike
Oh, I also have an ATI graphics card.
___________________________________________________________ ALL-NEW Yahoo! Messenger - all new features - even more fun! http://uk.messenger.yahoo.com