https://bugs.winehq.org/show_bug.cgi?id=42732
--- Comment #13 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to nospam from comment #12)
What strikes me as odd is in the unpatched case, all the dri/drm maps are allocated in the lower 2 GiB of memory (in contrast to the patched case, where most of it is in high memory). Isn't the native linux graphics driver allocating this memory? Why would it be affected by the address space limitations that wine imposes on Windows binaries?
That's because Wine normally reserves most of the high 2GBs of the addressing space. You can see it from your "unpatched" attachments:
80000000-f7c10000 ---p 00000000 00:00 0
AFAIUI the idea is to try to enforce all memory allocations to go in the lower half of the addressing space so that the Windows application doesn't ever get pointers to high addresses (which it generally doesn't expect and might cause it to break more or less subtly).
If the LARGE_ADDRESS_AWARE flag is set, Wine drops the high memory map during process initialization and makes the addressing space available for both native and Win memory allocations.