Is anyone a triple screen user and uses this as well - I used the DS fix and it worked great, but I haven't jumped into DS2 yet.
According to WSGF, yep.
http://www.wsgf.org/blog/skid/2014/04/25/dark-souls-ii-triple-monitors-eyefinity-surround-4k
Is anyone a triple screen user and uses this as well - I used the DS fix and it worked great, but I haven't jumped into DS2 yet.
Everyone having issues, try disabling borderless windowed mode and see if that helps.
Fixed the issue for me as well. Good catch!
Well, at least for Far Cry 2 and Borderlands. Syndicate still goes unresponsive immediately.
I am interested, it's just a matter of time. Anyway, source release today probably, and contributions will be more than welcome.[Asmodean];115127437 said:Durante, would you consider adding annotations for texture objects in the post fx shaders? For loading external textures. Eg: < string name = "blaa.bmp"; >;. That way I could use hardware lut color correction, and people could use custom color palettes for games then, if they wanted. Instead of my currently used curves. I already have the shader code done, in my eFX suites.
If you're not interested in doing it, I can wait for the source release, no worries.
It dumps everything the game loads using the D3DX APIsDoes this dump specular maps? Can't seem to find any in Dark Souls 2.
Strange, I was able to get it working with Syndicate.
I did notice when first starting the game there is a very long time with a black screen before the first startup video starts to play though. Like about 30s of nothing but a black screen.
The source code for GeDoSaTo is now online!
Now let's see if I will have more luck getting contributions for this than for the previous game-specific stuff.
First of all, great that you got it to compile.Hi Durante I got your code compiling and running but I have no idea where to start in order to fix this in GTA IV :
![]()
Do you think it's easy to fix ? What portion of code do you think is involved ? Should this be fixed within the generic plugin or should it be dedicated to a new specific plugin ?
EDIT : lol and it's obviously incredibly hard to debug anything in Visual Studio if the game is launched *fullscreen*. I guess you need to have a dual monitor setup for that. 1 monitor for the game, 1 monitor to see what's going on in VS
Well here it is more than a game specific issue : there are a few games that use EndScene() so it's worth a shot implementing it overall I guess ?Then, if it's a general issue it should be fixed generally, and if it's a game-specific issue it should be done in a plugin.
[I]d3ddev->StretchRect(realBackBuffer, NULL, backBuffers[0], NULL, D3DTEXF_NONE);[/I] <- quick hack
dumpSurface("backBuffers_pre", backBuffers[0]); <- backBuffers_pre.tga is upscaled (2720x1700) but off-centered
scaler->go(backBufferTextures[0], realBackBuffer);
dumpSurface("backBuffers_post", realBackBuffer); <- backBuffers_post.tga is downscaled (1680x1050) but still off-centered
Interesting stuff!I figured out why it didn't work : GTA IV doesn't use Present() at all, but EndScene() instead (yeah DX9 was awesome don't ask me why), I should have known earlier, I vaguely remembered about that :/
So I created a new RSManager::redirectEndScene() function that is 99% like redirectPresent() : it calls prePresent(false) before calling the 'real' Endscene
... And it works ingame, I got the OSD showing me the downscale levels and everything... but it's a black screen :/... I checked/dumped the content of realBackBuffer and it has the upscaled image in it BUT backBuffers[0] (in RSManager:rePresent()) is desperately black like it hadn't been initialized earlier, weird...
Well here it is more than a game specific issue : there are a few games that use EndScene() so it's worth a shot implementing it overall I guess ?
EDIT : I have memories of Dragon Age Origin being the most awful at this : the menus use Present() and the game itself EndScene() or the other way round, I don't recall exactly... I had to do some stupid hack to handle this particular game... but it's a rare example I guess
EDIT : I just did a quick hack to "feed" the backBuffers[0] with something, then compare the output before and after the scaling :
So the scaling part does work in itself, but the off-centered image issue still remains, there's probably some other code involved I'm not aware ofCode:[I]d3ddev->StretchRect(realBackBuffer, NULL, backBuffers[0], NULL, D3DTEXF_NONE);[/I] <- quick hack dumpSurface("backBuffers_pre", backBuffers[0]); <- backBuffers_pre.tga is upscaled (2720x1700) but off-centered scaler->go(backBufferTextures[0], realBackBuffer); dumpSurface("backBuffers_post", realBackBuffer); <- backBuffers_post.tga is downscaled (1680x1050) but still off-centered
In the game executable directory.Where are the dumped frames saved?
lol "legal", apparently yeah DX9 was too permissive. I found again the portion of code I had written to handle the weird situation :Is calling EndScene without calling present legal at all? I mean you never show what you're drawing?
HRESULT ID3D9dev::EndScene(void) {
UseEndScene = true;
if ((UseEndScene && !UsePresent && !UseSwpChPresent) || IsDragAgeHack) {
IDirect3DSurface9 *renderTarget = NULL;
device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &renderTarget);
EnableAAInject(renderTarget);
//SDLOG("EndScene !");
SAFERELEASE(renderTarget);
}
return (device->EndScene());
}
HRESULT ID3D9dev::Present(CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) {
UsePresent = true;
if ((UsePresent && !UseEndScene) || (UseEndScene && UsePresent)) {
[B] // When both EndScene() and Present() are used by the game,
// we still favour applying AA in Present() (otherwise its very slow in EndScene() [/B]-> ie. RE5, nullDC...)
IDirect3DSurface9 *renderTarget = NULL;
device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &renderTarget);
EnableAAInject(renderTarget);
//SDLOG("Present !");
SAFERELEASE(renderTarget);
}
return (device->Present(pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion));
}
//if(SUCCEEDED(ret)) {
// new hkIDirect3DDevice9(ppReturnedDeviceInterface, pPresentationParameters, d3d9);
// get().initResources(false, pPresentationParameters->BackBufferWidth, pPresentationParameters->BackBufferHeight, 0, D3DFMT_UNKNOWN, pPresentationParameters->SwapEffect);
// if(fs) WindowManager::get().setFakeFullscreen(pPresentationParameters->BackBufferWidth, pPresentationParameters->BackBufferHeight);
//} else SDLOG(0, "FAILED creating non-downsampling device -- error: %s\n description: %s\n", DXGetErrorString(ret), DXGetErrorDescription(ret));
Yup, and once implemented you can test the whole thing against FFIX AR demo. That's what I used to doAnyway, I believe the correct thing to do here is to intercept the whole IDirect3DSwapChain9 interface.
Ah.EDIT : commenting out this line fixes the lighting bug :
*ppZStencilSurface = depthStencilSurf;
Did you get downsampling working properly for dota? If so, can you give me the step by step instructions?
It does. Now GTA IV is 100% working I guess. I've been playing at 6720x4200, really nice. Game looks like shit without ENB though, but oh well I couldn't make them work together. SweetFX does work in conjunction with Gedo though.I pushed something that *should* fix it, but I don't have the game to test.
if(downsampling) {
[B] D3DSURFACE_DESC ppZStencilSurfaceDesc;
(*ppZStencilSurface)->GetDesc(&ppZStencilSurfaceDesc);
D3DSURFACE_DESC depthStencilSurfDesc;
depthStencilSurf->GetDesc(&depthStencilSurfDesc);
if (ppZStencilSurfaceDesc.Format == depthStencilSurfDesc.Format)[/B]
*ppZStencilSurface = depthStencilSurf;
}
Apologies for late reply but had to say thanks a bunch for sharing this. It solved the start up issues that I was having.Everyone having issues, try disabling borderless windowed mode and see if that helps.
Ah, now I see what's (probably) going on. The game must det its own depth stencil surface. I was misinterpreting the semantics of GetDepthStencilSurface.It does. Now GTA IV is 100% working I guess. I've been playing at 6720x4200, really nice. Game looks like shit without ENB though, but oh well I couldn't make them work together. SweetFX does work in conjunction with Gedo though.
EDIT : omg I'm sorry I feel dumb : I had forgotten to uncomment the line I was talking about earlier and so while your last push is still valid it isn't sufficient. Adding this additional check to redirectGetDepthStencilSurface will really fix the issue (hope it doesn't hurt the performance too much) :
Ok last post here, the forum is already getting crazy slow due to E3Code:if(downsampling) { [B] D3DSURFACE_DESC ppZStencilSurfaceDesc; (*ppZStencilSurface)->GetDesc(&ppZStencilSurfaceDesc); D3DSURFACE_DESC depthStencilSurfDesc; depthStencilSurf->GetDesc(&depthStencilSurfDesc); if (ppZStencilSurfaceDesc.Format == depthStencilSurfDesc.Format)[/B] *ppZStencilSurface = depthStencilSurf; }
![]()
I will, not today but I will.Boulotaur, if you have time please check if the current master handles GTA4 correctly out of the box. I reimplemented the Z/stencil handling, it should make a lot more sense now.
Is there any way to Super Street Fighter IV working with Gedosato?
I LOVE the tool and would really like to see how it stacked up against standard GPU downsampling.
13-06-2014 -- beta 2 - "Seishoujo Sacrifice"
============================================
General:
- Fixed Alt-tab crash when downsampling in fullscreen mode (!)
- Added IDirect3DSwapChain9 interception
(fixes compatibility with some games, e.g. Dragon Age Origins)
- Screenshot fallback to full-size if hudless not available
- Fixed Z/stencil buffer format detection (fixes e.g. GTA4)
- Improved handling of automatically generated z/stencil buffers
(don't duplicate, we don't need an original-res depth buffer when downsampling)
- Potentially fixed compatibility with Windows Vista
Generic Plugin:
- Store screenshots after AA/postprocessing, not before
- Only use float BB if required (should improve AA/post performance on most games)
- Added ability to specify a "marker" pixel shader in the configuration,
in order to apply AA/postprocessing before HUD rendering and capture hudless screenshots
GeDoSaToTool:
- Added ability to edit game profiles using the built-in editor
(still need to be created externally)
Beta 7 released!
Alt-tabbing for everyone!
http://blog.metaclassofnil.com/?p=544
Tons of other features as well!
Code:13-06-2014 -- beta 2 - "Seishoujo Sacrifice" ============================================ General: - Fixed Alt-tab crash when downsampling in fullscreen mode (!) - Added IDirect3DSwapChain9 interception (fixes compatibility with some games, e.g. Dragon Age Origins) - Screenshot fallback to full-size if hudless not available - Fixed Z/stencil buffer format detection (fixes e.g. GTA4) - Improved handling of automatically generated z/stencil buffers (don't duplicate, we don't need an original-res depth buffer when downsampling) - Potentially fixed compatibility with Windows Vista Generic Plugin: - Store screenshots after AA/postprocessing, not before - Only use float BB if required (should improve AA/post performance on most games) - Added ability to specify a "marker" pixel shader in the configuration, in order to apply AA/postprocessing before HUD rendering and capture hudless screenshots GeDoSaToTool: - Added ability to edit game profiles using the built-in editor (still need to be created externally)
Code:13-06-2014 -- beta 2 - "Seishoujo Sacrifice" ============================================ General: - Fixed Alt-tab crash when downsampling in fullscreen mode (!)
Anyone else having this issue? I always explicitly test with DS2 and everything worked for me.Also, it seems like it's no longer working with Dark Souls II at all.
AA and Post Processing are doing nothing. You can see SSAO is enabled but theres nothing visible either.
It didn't work with my past configs so I downloaded the fresh version and just used it directly and the results are the same as above.