Reuse exports for proxy dll generation #759
Open
+256
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
proxy_generator now generates an .exports file that it can reuse later, in place of dumping exports from system provided DLL. This avoids using the export arrangement from the GitHub runner's dwmapi DLL (from Windows Server 20xx) that reportedly breaks OpenGL graphics mode for the GUI console, and maybe breaks more things than that.
The .exports files are initially generated under the
Intermediate
directory (build log will print out the output path during proxy_generator run). These files are then pushed into the repository underUE4SS/proxy_generator/exports
, so that for the next build, proxy_generator can use those exports. The .exports files can also be hand-made fromdumpbin.exe /EXPORTS
output, keeping in mind that the first line being in the formPath: <path/to/orig.dll>
and subsequent lines in the form<ordinal> <functionname?>
for each export.I'm not sure which GitHub issues were directly related to the OpenGL white window issue only, so I don't know which ones should be linked here for closing.
Type of change
How has this been tested?
Built proxy DLL both locally and on GitHub runners (see below). In both cases, dwmapi.dll and xinput1_3.dll proxies are built (
xmake f -m "Game__Shipping__Win64" -y --ue4ssProxyPath=C:\Windows\System32\xinput1_3.dll
to configure a separate proxy).In all cases, OpenGL graphics mode for the GUI does not show a white window anymore.
(I think PR actions builds will also work.)
Checklist