• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

GeDoSaTo - Downsampling from Infinity and Beyond!

robgrab

Member
I tested GeDoSaTo with Star Wars The Force Unleashed 2 and it worked nearly perfect. Oddly enough though the performance was much worse using GeDoSaTo than driver based downsampling, which is a first for me. Up to this point GeDoSaTo has ALWAYS been faster than driver based sampling. Not sure what the problem is. I'm also using 60FPS.exe, which unlocks the framerate, along with SweetFX. Unfortunately SweetFX doesn't seem to be hooking either even though I have loadD3DEarly set to true.

I also tested with the original SWTFU but it crashes every time.
 

Alo81

Low Poly Gynecologist
Problem signature:
Problem Event Name: BEX
Application Name: DarkSoulsII.exe
Application Version: 1.0.5.0
Application Timestamp: 53e04e3c
Fault Module Name: GeDoSaTo.dll
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 5408b380
Exception Offset: 00142cfa
Exception Code: c0000417
Exception Data: 00000000
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Information 1: 5bae
Additional Information 2: 5bae9e883101d736732d7cabba3cfef7
Additional Information 3: c6a7
Additional Information 4: c6a76705ff14c0c8d72c7604dd978b04

Hmm, I remember DSFix giving a BEX error if there was a problem with DEP, Data Execution Prevention. You could probably try and disable Windows DEP and see if that fixes it.

Run command prompt as admin and enter

Code:
bcdedit /set {current} nx AlwaysOff

to disable it.
 

peronmls

Member
Hmm, I remember DSFix giving a BEX error if there was a problem with DEP, Data Execution Prevention. You could probably try and disable Windows DEP and see if that fixes it.

Run command prompt as admin and enter

Code:
bcdedit /set {current} nx AlwaysOff

to disable it.
Did not work. Thanks for the tip though. Any other thoughts? I have no antivirus to disable.
 

BONKERS

Member
I tested GeDoSaTo with Star Wars The Force Unleashed 2 and it worked nearly perfect. Oddly enough though the performance was much worse using GeDoSaTo than driver based downsampling, which is a first for me. Up to this point GeDoSaTo has ALWAYS been faster than driver based sampling. Not sure what the problem is. I'm also using 60FPS.exe, which unlocks the framerate, along with SweetFX. Unfortunately SweetFX doesn't seem to be hooking either even though I have loadD3DEarly set to true.

I also tested with the original SWTFU but it crashes every time.

Try maybe the original 30FPS
 

robgrab

Member
I figured out the problem, GeDoSaTo was ignoring the 60FPS.exe and loading SWTFU2.exe. That's why it was running so "slow" and by slow I mean the locked 30fps that the game imposes. I also noticed SweetFX was slowing things down too so I disabled that and now it runs smooth as butter.

It seems like I was running GeDoSaTo with a different 60fps unlocker .exe for another game without problems but I forget which one.

UPDATE: The other game I was thinking of was Bully Scholarship Edition where I was using a different .exe file that unlocked the 30fps cap. Although GeDoSaTo launches the game it crashes as soon as you try load a save file. Now that I think about it that may be another case of it rejecting the alternate .exe and loading the default game executable instead.
 
I finally got around to trying this, but every time I try this Dishonored won't launch, period. If I leave it open and disable it, Dishonored starts to launch, but as soon as I turn it on Dishonored closes and trying to launch Dishonored with it on does nothing. Any ideas?

Edit: Same thing with Bioshock PC. Maybe it's a problem with my config/drivers? I have a 765m.
 

VinFTW

Member
So I had no idea this thread existed... One day, after my 7th play-through of Dark Souls 2 I couldn't take how bad it looked compared to its initial reveal and I looked up mods to alleviate this cartographic failure... I found this mod... Now my DS2 looks amazing...


Hi :)
 

robgrab

Member
I finally got around to trying this, but every time I try this Dishonored won't launch, period. If I leave it open and disable it, Dishonored starts to launch, but as soon as I turn it on Dishonored closes and trying to launch Dishonored with it on does nothing. Any ideas?

Edit: Same thing with Bioshock PC. Maybe it's a problem with my config/drivers? I have a 765m.

Not sure about Dishonored but regarding Bioshock make sure you're forcing it to run in DX9 mode. You can do this by adding -dx9 under your launch parameters in Steam. Dishonored works perfect for me. I'm running SweetFX and FlawlessWidescreen in addition to GeDoSaTo and it runs great. You may want to go through the graphic settings and make sure there's no DX11 options. Unfortunately GeDoSaTo is only compatible with DX9 games.
 

Spazznid

Member
So I had no idea this thread existed... One day, after my 7th play-through of Dark Souls 2 I couldn't take how bad it looked compared to its initial reveal and I looked up mods to alleviate this cartographic failure... I found this mod... Now my DS2 looks amazing...


Hi :)

Welcome!
 

peronmls

Member
Sorry, I don't have much other advice than download a fresh GeDoSaTo install and see if a vanilla version works.

well shoot. I did grab a fresh install and then attempted to use my old one that was in a folder. both of them were not running at the same time so you know.

EDIT:
actually i just ran DS2 as admin and it worked... I don't know if that means anything.
 
I still can't get "Bleach" working in Dark Souls 2. Here's the Tonemap settings that I have:
Code:
// -------------------------Tonemap--------------------------------------------

float4 TonemapPass(float4 colorInput)
{
    float3 color = colorInput.rgb;

    color = saturate(color - Defog * FogColor); // Defog
    
    color *= pow(2.0f, Exposure); // Exposure
    
    color = pow(color, Gamma);    // Gamma -- roll into the first gamma correction in main.h ?

    //#define BlueShift 0.00    //Blueshift
    //float4 d = color * float4(1.05f, 0.97f, 1.27f, color.a);
    //color = lerp(color, d, BlueShift);
    
    float3 lumCoeff = float3(0.2126, 0.7152, 0.0722);
    float lum = dot(lumCoeff, color.rgb);
    
    float3 blend = lum.rrr; //dont use float3
    
    float L = saturate( 10.0 * (lum - 0.45) );
    
    float3 result1 = 2.0f * color.rgb * blend;
    float3 result2 = 1.0f - 2.0f * (1.0f - blend) * (1.0f - color.rgb);
    
    float3 newColor = lerp(result1, result2, L);
    //float A2 = Bleach * color.rgb; //why use a float for A2 here and then multiply by color.rgb (a float3)?
    float3 A2 = Bleach * color.rgb; //
    float3 mixRGB = (A2 * newColor.r, A2 * newColor.g, A2*newColor.b);
    
    color.rgb += ((1.0f - A2) * mixRGB);
    
    //float3 middlegray = float(color.r + color.g + color.b) / 3;
    float3 middlegray = dot(color,(1.0/3.0)); //1fps slower than the original on nvidia, 2 fps faster on AMD
    
    float3 diffcolor = color - middlegray; //float 3 here
    colorInput.rgb = (color + diffcolor * Saturation)/(1+(diffcolor*Saturation)); //saturation
    
    return colorInput;
}
 
My latest issue with Castlevania LOS2 seems to be that pressing the screenshot key says its saving a screenshot but it's really not. Sometimes it will work once but then stop working after that. But at least it's not crashing.

I've tried maxScreenshotParallelism 4, 0, and -1. This game clearly wants me to give the fuck up.
 

Alo81

Low Poly Gynecologist
I still can't get "Bleach" working in Dark Souls 2. Here's the Tonemap settings that I have:
Code:
// -------------------------Tonemap--------------------------------------------

float4 TonemapPass(float4 colorInput)
{
    float3 color = colorInput.rgb;

    color = saturate(color - Defog * FogColor); // Defog
    
    color *= pow(2.0f, Exposure); // Exposure
    
    color = pow(color, Gamma);    // Gamma -- roll into the first gamma correction in main.h ?

    //#define BlueShift 0.00    //Blueshift
    //float4 d = color * float4(1.05f, 0.97f, 1.27f, color.a);
    //color = lerp(color, d, BlueShift);
    
    float3 lumCoeff = float3(0.2126, 0.7152, 0.0722);
    float lum = dot(lumCoeff, color.rgb);
    
    float3 blend = lum.rrr; //dont use float3
    
    float L = saturate( 10.0 * (lum - 0.45) );
    
    float3 result1 = 2.0f * color.rgb * blend;
    float3 result2 = 1.0f - 2.0f * (1.0f - blend) * (1.0f - color.rgb);
    
    float3 newColor = lerp(result1, result2, L);
    //float A2 = Bleach * color.rgb; //why use a float for A2 here and then multiply by color.rgb (a float3)?
    float3 A2 = Bleach * color.rgb; //
    float3 mixRGB = (A2 * newColor.r, A2 * newColor.g, A2*newColor.b);
    
    color.rgb += ((1.0f - A2) * mixRGB);
    
    //float3 middlegray = float(color.r + color.g + color.b) / 3;
    float3 middlegray = dot(color,(1.0/3.0)); //1fps slower than the original on nvidia, 2 fps faster on AMD
    
    float3 diffcolor = color - middlegray; //float 3 here
    colorInput.rgb = (color + diffcolor * Saturation)/(1+(diffcolor*Saturation)); //saturation
    
    return colorInput;
}

My "fixing" it was just really changing it slightly to what it seemed like it was supposed to be. I don't know if it actually displays the effect as intended as I don't know what the original effect looked like.

But, of the code you posted (maybe it was my bad when I "fixed" it) it looks like this line is wrong.

Edit: Disregard everything below this. The commented out line moved over in to the next line so it looked wrong on my screen. I need sleep.

color.rgb (a float3)?

the "?" should be a ";"

like this

Code:
color.rgb (a float3);

idk how to fix it right now I can try and look into it tomorrow
 
Not sure about Dishonored but regarding Bioshock make sure you're forcing it to run in DX9 mode. You can do this by adding -dx9 under your launch parameters in Steam. Dishonored works perfect for me. I'm running SweetFX and FlawlessWidescreen in addition to GeDoSaTo and it runs great. You may want to go through the graphic settings and make sure there's no DX11 options. Unfortunately GeDoSaTo is only compatible with DX9 games.

Tried adding dx9 to Dishonored, didn't work. I'll try it with Bioshock later.
 

Serandur

Member
Can't thank Durante enough for this. I recently switched to a 2560x1440 monitor that didn't play very nicely with driver-based downsampling on my 780 as my previous monitor did, but GeDoSaTo works admirably. The only issue I've come across so far in some limited testing is I can't get Skyrim to launch with this, I just get an error stating my display doesn't support the resolution.
 
This was probably known already, but taking a HUDless screenshot in Dark Souls 2 during a cutscene will save it without the letterboxing:

screenshot_2014_09_09_22_33_01_2_by_realghostvids-d7yjm6w.jpg
 

Alo81

Low Poly Gynecologist
PC Games Hardware (German site) posted a GeDoSaTo article. Unlike previous versions it seems performance is now very close to native resolution rendering. And I just made it a bit better again ;)

I just went to go read the article and then remembered i don't read German. Sigh.

It's great to hear about the performance increases. In general i haven't paid much attention to performance impact because i just expect a huge impact by default. But knowing there are optimizations going on in the back is always welcome. Congrats on having another article written about your work!
 
I just went to go read the article and then remembered i don't read German. Sigh.
Tell me about it. I'm french and I can't even read German. Sad :/

Can you explain briefly what you did to improve performance (compared to previous releases) ?. Maybe it's already explained in the comments but like I said...
 

Durante

Member
Tell me about it. I'm french and I can't even read German. Sad :/

Can you explain briefly what you did to improve performance (compared to previous releases) ?. Maybe it's already explained in the comments but like I said...
I really don't know what caused the major performance improvements which happened between their first and second test. But there was a massive amount of work (and time) between those, and the first version they tested was still an alpha. It could just be that it e.g. still did some DS2-specific stuff for all other games.


Just today, I made a minor change which should improve performance of all effects and downsampling filters by a very small amount. For example, I measured a reduction in time for applying postprocessing in DS2 from 3.8 ms to 3.6 ms at 4k. With 5 effect passes that would be a total of 1 ms. Not too much, but not nothing either.

What I did was that I now draw a full-screen (oversized) triangle instead of a full-screen quad to apply all pixel shaders and effects. This very slightly improves GPU efficiency, as with a quad (2 triangles) the incoherence across the triangle border causes imperfect utilization. If this is unclear, ASCII art to the rescue!
Code:
Full-screen effect pass before:

+-----+
|    /|
|   / |
|  /  |
| /   |
|/    |
+-----+

Now:

+-----+-----/
|     |    /
|     |   / 
|     |  / 
|     | /   
|     |/    
+-----+
|    /
|   / 
|  /  
| /   
|/
/
 
I'm trying to downsample Alan Wake's American Nightmare and the custom resolutions aren't showing up in-game. I've tried "forceAlwaysDownsamplingRes" but that didn't change anything and "overrideWidth/Height" caused the overridden resolution to be removed from the available options in the game. Anything else I should try?

The game does however work flawlessly with borderless windowed mode.
 

Durante

Member
Should I be turning AO off in Dark Souls 2's settings, if I have it on in GeDo?
Yes.


So you're going to rewrite it for DX11?
I wouldn't call it a "rewrite". A lot of parts are entirely new, but they add on to the general and DX9 specific code that is already there, they don't replace it. Anyway, I've been working on it for over a month already. I hope to have it in an at least somewhat usable state this year.
 
My latest issue with Castlevania LOS2 seems to be that pressing the screenshot key says its saving a screenshot but it's really not. Sometimes it will work once but then stop working after that. But at least it's not crashing.

I've tried maxScreenshotParallelism 4, 0, and -1. This game clearly wants me to give the fuck up.

I can confirm the exact same thing in a few of my recently played games.

Mini Ninjas being one of them.

Played 2/3 through the game, screenshotting perfectly but now it will only work for the first shot or two and then as jim says, reports it's taken the screen as always but actually doesn't.

Also tried all of the above settings.
 
I wouldn't call it a "rewrite". A lot of parts are entirely new, but they add on to the general and DX9 specific code that is already there, they don't replace it. Anyway, I've been working on it for over a month already. I hope to have it in an at least somewhat usable state this year.
Been meaning to tell you for a while but forgot to : there is this thing called RenderDoc that is supposed to be excellent for DX11 debugging.
Just glancing at the video I wish we had something like that for DX9
 
Please help a noob here.

I'm currently playing Remember me and want to take some screenshots using a 2560x1080 resolution but when I downsample this resolution to my 1920x1080 monitor this happens.


What am I doing wrong? Thanks in advance.
 
Please help a noob here.

I'm currently playing Remember me and want to take some screenshots using a 2560x1080 resolution but when I downsample this resolution to my 1920x1080 monitor this happens.



What am I doing wrong? Thanks in advance.

The aspecct ratio is wrong. Set it to 2560x1440 instead. That should fix it.
 
I see but even if it is the wrong aspect ration shouldn't it letterbox the image? That's what happens when I downsample using the Nvidia control panel and when I take a screenshot it comes as a 2560x1080 image.

 

Alo81

Low Poly Gynecologist
I see but even if it is the wrong aspect ration shouldn't it letterbox the image? That's what happens when I downsample using the Nvidia control panel and when I take a screenshot it comes as a 2560x1080 image.

Update to the latest version of GeDoSaTo. There is now a letterboxing toggle.

Code:
# Whether to maintain the aspect ratio if different ratios between input and output
# false = stretching
#  true = pillar/letterboxing
maintainAspectRatio true
 

RVinP

Unconfirmed Member
Dota 2 with Lanczos downsampling, looks awesome when coupled with in-game FXAA.

I think downsampling on games which have smaller visual footprints onscreen (tiny, but extremely detailed objects), benefits greatly with Lanczos.
 

Miker

Member
Dota 2 with Lanczos downsampling, looks awesome when coupled with in-game FXAA.

I think downsampling on games which have smaller visual footprints onscreen (tiny, but extremely detailed objects), benefits greatly with Lanczos.

How's the UI w/ Dota 2?


Also, generally speaking, how much is the performance hit going from bilinear to bicubic to lanczos? This is on a Radeon 7850, if that matters.
 

RVinP

Unconfirmed Member
How's the UI w/ Dota 2?

Also, generally speaking, how much is the performance hit going from bilinear to bicubic to lanczos? This is on a Radeon 7850, if that matters.

GeDoSaTo's downsampling doesn't affect Dota 2 UI, the UI stays the same as the target resolution (after downsampling). Like if I downsample from 2650x1440 to 1920x1080, the UI would be at 1920x1080.

I didn't check the performance hit from Bilinear -> Bicubic -> Lanczos, but with an AMD 7850; I am assuming you will hover around 50+FPS on average with 2560x1440 -> 1920x1080 (with Lanczos). <- This is based on the observation that I was running Dota 2 on AMD 6950 (2GB card) about two weeks ago and I was getting around 50FPS on average with in-game Vsync disabled with the same settings above.

But you will need in-game AA (FXAA) enabled to actually make the game look good, it does a great job. Also do not go for Bicubic with Dota 2, go either Bilinear or Lanczos (I would suggest Lanczos, because it highlights edges between color variation a bit brightly onscreen)

Note: there is only one issue with Dota 2 downsampling, the chat wheel (Y button preset messages) cannot be used. It will be struck towards some coordinates/direction, mostly lower right
 

One3rd

Member
I just upgraded to the latest build and am now getting an unhandled exception every time I try to open post.fx settings. Re-installed GeDoSaTo and still getting the same thing. Is this a build issue with 1437 or something with my setup?
 

Durante

Member
I just upgraded to the latest build and am now getting an unhandled exception every time I try to open post.fx settings. Re-installed GeDoSaTo and still getting the same thing. Is this a build issue with 1437 or something with my setup?
Ups, I broke it.

Edit: fixed.
 

Perks

Neo Member
Hello,

after a very lengthy registration process, I finally can take part in my favorite neogaf thread.
I used GeDoSaTo for Dark Souls II and used the dsfix for Dark Souls I. I can't thank you enough, Durante! We owe you so much in terms of an increased playing experience.

I recently tried to apply the tool to more of my games, since I updated a bunch of my hardware. Since my monitor does not support very high resolutions that is a good way to up the visual quality of games.

I tried to use it with Diablo III and it worked great. The only problem is, that the mouse does not work properly. I can get it to work when I set the following mouse fixes:


# Modify the mouse position reported by "GetCursorPos" when downsampling
modifyGetCursorPos true

# Modify the mouse position set by "SetCursorPos" when downsampling
modifySetCursorPos true

# Intercept the WindowProc callback of the game and adjust mouse messages when downsampling
interceptWindowProc true

# Adjust the reported client rect when downsampling
modifyGetClientRect true


The only problem I have now, is that the mouse cursor is only visible in the upper left corner of the screen (guessing the original resolution). In the remaining 3/4 of the screen the mouse works but is invisible. This only happens when I set modifyGetCursorPos to true, but without this setting the mouse is offset. Is there anyone here that got GeDoSaTo to work with Diablo III?

Regards, Perks
 

akira28

Member
Had some success trying to futz around with the new build

MechWarrior Online

exe : MWOClient

injectPSHash 4a160fc1
injectDelayAfterDraw true

# Modify the mouse position reported by "GetCursorPos" when downsampling
modifyGetCursorPos true

# Modify the mouse position set by "SetCursorPos" when downsampling
modifySetCursorPos true

# Intercept the WindowProc callback of the game and adjust mouse messages when downsampling
interceptWindowProc true


anyone else have any luck with this game? Trying to figure out how to make it black and white, etc.

HUDless screenie:
 
Top Bottom