- Posts: 13
[SOLVED] Reshade has stopped working in SOMA (opengl)
A year ago, I installed Reshade on SOMA. But the game didn't start (black screen and crash). But as soon as I renamed the dxgi.dll to d3d11.dll, then it successfully started with Reshade.
Then I deleted the game. Now I have re-installed it, but I can't install Reshade. With the dxgi.dll is still black screen and crashes. But if I rename dxgi.dll to d3d11.dll, then this time it just runs without Reshade.
The video drivers version is the same, so I tried it on the new version of Reshade, and on the same one when it worked.
Can this be fixed? Make sure that the game still picked up d3d11.dll, because now it doesn't respond to it.
I still have the Reshade log when everything worked, and I have a new log, already from the dxgi.dll
- Posts: 191
When installing ReShade with OpenGL, a black screen always appeared for a few seconds when programs were started, and then nothing happened.
Only the Opengl32.log file was saved.
But when I just renamed it Opengl32.dll in d3d11.dll then everything worked. Both the game and ReShade were launched.
Now it doesn't work. With a file d3d11.dll the game no longer interacts, d3d11. log does not appear, and the game starts without Reshade
When I start with Opengl32.dll or Dxgi.dll, then there are logs (Opengl32.log or Dxgi.log, respectively), but the game itself does not start (black screen for a few seconds)
I mean, I could never run an OpenGL application with a file Opengl32.dll. But I just renamed it to d3d11.dll and it helped
- Posts: 191
- Posts: 457
I don't believe Reshade hooks when named to the .dlls in bold.
brazzjazz wrote: That is strange, in any case you need the DLL for OpenGL (it specifically says so on the Steam page, OpenGL 3.3), so choose OpenGL when installing ReShade. After that you can try renaming that DLL to something else if it crashes the game (conflict with another OpenGL library possibly): dinput.dll, dinput8.dll, ddraw.dll, dsound.dll, even Direct3D names such as dxgi.dll, d3d9.dll, d3d8.dll, d3d11.dll. You may also try asking in #help on the ReShade discord.
I thought this was a feature of Reshade's interaction with my video card model (I have a laptop)
But it really worked. So I wrote that I still have the old log when everything started.
I wanted to attach it here, as well as a new log when Reshade is no longer running. But I didn't find an option to attach files to messages.
The successful beginning log is like this:
14:47:44:270  | INFO | Initializing fire's ReShade version '220.127.116.110' (64-bit) built on '2018-11-21 23: 59:05' loaded from "D:\\Games\\SOMA\\d3d11.dll" to "D:\\Games\\SOMA\\Soma.exe" ...
It doesn't work now, and I think the Windows update is to blame, but I don't know which.
Everything else in the system remains the same: the game files, the video driver version, and the Reshade version.
Therefore, the only suspect is regular Windows updates
So I thought maybe someone has a similar situation, or they know how to make Reshade interact with the game's exe again
- Posts: 3769
The more interesting fact is that it crashes as opengl32.dll. This is very likely fixed with github.com/crosire/reshade/commit/97ad11...a4686243af543b820314 now.
This is not my idea, I read it a long time ago (2 years ago) on some forum where the problem of running Reshade in OpenGL applications was discussed. There someone wrote that on some systems it helps to simply rename the file to d3d11.dll.
By the way, recently, while searching for a solution, I installed the program "GPU Caps Viewer" to determine the OpenGL version.
So in the "3D Demos" tab in the program, you can run 3D visualization in different environments, including " OpenGL Demos"
So, when I started it, Reshade turned on itself - I did not install it to this program!
And most importantly, the last tab of Reshade says DX11
That is, it thinks it runs in DirectX, although it actually runs OpenGL at the moment
(File - opengl32.dll, ReShade - 4.6.1)
It ends like this:
16:49:33:946  | WARN | Skipping swap chain because it was created without a (hooked) Direct3D device.
16:49:33:947  | INFO | Redirecting D3D11CreateDevice(pAdapter = 00000000047B9AB0, DriverType = 0, Software = 0000000000000000, Flags = 0x89, pFeatureLevels = 00000000004FB790, FeatureLevels = 1, SDKVersion = 7, ppDevice = 00000000004FB740, pFeatureLevel = 0000000000000000, ppImmediateContext = 0000000000000000) ...
16:49:33:947  | INFO | > Passing on to D3D11CreateDeviceAndSwapChain:
16:49:33:947  | INFO | Redirecting D3D11CreateDeviceAndSwapChain(pAdapter = 00000000047B9AB0, DriverType = 0, Software = 0000000000000000, Flags = 0x89, pFeatureLevels = 00000000004FB790, FeatureLevels = 1, SDKVersion = 7, pSwapChainDesc = 0000000000000000, ppSwapChain = 0000000000000000, ppDevice = 00000000004FB740, pFeatureLevel = 0000000000000000, ppImmediateContext = 0000000000000000) ...
16:49:33:955  | INFO | > Using feature level 0xb000.
If what I am writing is not credible, then I have recorded a short video of what is happening: