Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
Description
Happening since CORE-11331 got committed, iirc it was around 0.4.6-dev'ing.
If we replace gdi32.dll with the 2k3sp2 version, like described here and then start Diablo2demo from rapps:
the game does not longer run, because our D3D does now depend on D3DKMTCreateDCFromMemory() which is not present in the 2k3sp2 gdi32.dll, but is now required by our D3D.
Can we link that function statically into our D3D? or introduce something like a dynamic gdi32_vista?
Reproduction steps
- choose the ros version of your choice
- in case you are operating in older range that is still affected from unrelated regression
CORE-11717then apply thisPatchAgainstCORE-11717 - undefine the CSR_DBG symbol in https://git.reactos.org/?p=reactos.git;a=blob;f=sdk/include/reactos/subsys/csr/csrsrv.h;hb=0c64ffd3ab82e1980313a9a7cee3ab41595897bf#l13 and build, (I used RosBE2.1.6 gcc dbg lin)
- install ros and after 3rd stage bootup replace the following files with their 2k3sp2 version: user32.dll, gdi32.dll, winsrv.dll, win32k.sys, imm32.dll
- then reboot another time
- now install and start DiabloII demo from rapps
Regression test
r75060_ok.webm
r75060_ok.log
r75061_d3dkmtCreateDCFromMemoryCouldNotBeLocatedInGDI32.png
r75061_affected_and_guilty.webm
r75061_affected_and_guilty_failedToSnap_D3DKMTCreateDCFromMemory_inGDI32dll.log
For the record:
SVNr75059 introduced D3DKMT*
SVNr75061 is the guilty rev, because that revision started to depend on it!
We either have to find a way to live in D3D without that function, or we have to move it out of gdi32.dll into some dynamic lib like gdi32_vista.dll, or we have to link it statically into our D3D.
Attachments
Issue Links
- blocks
-
CORE-17982 Regression, Diablo II demo does not longer run on Win32K-Frankenstein, simply hangs
- Open
-
CORE-16479 win32k.sys from 2k3sp2 Frankenstein Epic
- Untriaged
-
CORE-11331 Implement D3DKMTCreateDCFromMemory
- Resolved
-
CORE-13362 Syncing ReactOS with Wine Staging 2.9
- Untriaged
- is blocked by
-
CORE-17968 Recalculate the base addresses for GCC due to gdi32_vista.dll
- Resolved