Discussing address space for 32bit apps

Stefan Dösinger stefandoesinger at gmail.com
Tue Nov 13 09:33:27 CST 2018



> Am 12.11.2018 um 23:57 schrieb Axel Davy <davyaxel0 at gmail.com>:
> 
> I assume most games won't have any issues getting access to more than the 2GB when they are not large address aware, or accessing all 4GB (and not 3) when being large address aware.
> Do you think a Regedit workaround could be considered to 'lift' all 32 bits memory restrictions ? This should solve all the issues.
I found that games break in really weird ways if you ignore the 2GB limit. E.g. Starcraft (before the Starcraft remastered days) randomly gets stuck in endless loops. We'll replace "my game runs out of address space" with "my game randomly crashes" bugs.

Beyond that, the address space setup happens pretty early in the process startup before ntdll can reasonably read registry entries.

I once contemplated the idea of having Wine-internal alloc calls for allocations that will never be passed to the application, so that e.g. wined3d could allocate resources beyond the 2GB barrier. However, that doesn't go anywhere because resource mapping would then return those pointers. We'd have to make OpenGL (or nine, or vulkan) call those callbacks, and then be careful that glMapBuffer() doesn't return those buffers to the application. Somewhat impossible.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20181113/5d32fe82/attachment.html>


More information about the wine-devel mailing list