Closed Archlogic closed 4 years ago
@Archlogic, I don't have a monitor or graphics card that supports G-Sync. I tried to research G-Sync to get an understanding of what d3d8to9 might be doing to break it, but it is hard to find that level of details on it.
Can you upload your log file? There may be something in it that will help isolate the issue.
You can read some stuff here. Otherwise, I think we could summon our graphics reverser overlord Kaldaien.
Reporting back. I tried the latest release, 1.7.0, to see if the issue persisted, and it does. As requested, attaching d3d8.log.
The initial "re-experience" after not playing for a few months felt like molasses. On a hunch, I disabled vsync in NVIDIA Control Panel and it restored expected behavior: tearing but not lagging. I don't remember doing this initially but I must have and then it was reset by driver update. G-Sync is supposed to override vsync when inside the adaptive sync window, so it's not activating whether vsync is set to on or off. Normally I would toggle vsync in-game but my research indicates that Vice City tells the driver to turn it on and only explicitly disabling it at the driver level changes behavior.
Also, I felt that the game was too laggy with vsync on so I turned on RivaTuner to see the reported frame rate and it was 60. This is a 100 Hz panel. I set the CLEO frame limiter plugin to 90 fps, which the game respects with vsync off. I'm not sure I buy the 60 fps claim. It felt really slow. I'm thinking it's possible I was seeing 30 fps doubled or something like 24-25 on 60 as I believe that's where Vice City runs natively.
The issue is still worth investigating though.
CLEO is a scripting/plugin framework. There's a mod written in it that fixes physics at frame rates above 30. The only noticeable artifact is that double-tapping the horn to engage sirens becomes progressively more difficult as the frame rate increases. G-Sync works with vsync off, assuming d3d8to9 is absent. I ended up setting refresh fps to 50 Hz, 50% of the native refresh, which minimizes tearing. It's workable. Would be nice to have the whole package but what are ya gonna do.
There's a mod written in it that fixes physics at frame rates above 30.
Is there? I'm not aware of any - the ones which only increase FPS do nothing to issues so you will encounter them sooner or later, with their severity depending on how many more FPS you have compared to 30FPS.
Then perhaps I'm mistaken and that the issues, other than the aforementioned siren activation, are too subtle to notice. In any case, we've veered well off topic, which is discussing d3d8to9's interaction with G-Sync. As I filed the initial report months ago, I am not currently playing Vice City or any other game that uses d3d8to9. However, I am not against a reasonable level of testing if the issue is fixable and I'm the only one around with a G-Sync monitor. Otherwise you can figure this as a known issue, or reported issue at least since you can't verify yourselves.
So... For starters I just noticed that you referred to "g-sync" as adaptive sync. It isn't, that's another thing. Right name is "variable refresh rate".
Aside of pedantry, I just remembered all the compatibility madness that might be going on in newest Windows. Try.. to see if renaming game executable changes anything (or disabling the shit out of fullscreen optimizations)
I did a little bit of research and troubleshooting on G-Sync and Grand Theft Auto Vice City (GTA:VC). It seems like GTA:VC uses PresentationInterval of D3DPRESENT_INTERVAL_IMMEDIATE and SwapEffect of D3DSWAPEFFECT_FLIP.
From what what I can tell G-Sync needs the presentation level to be set to D3DPRESENT_INTERVAL_IMMEDIATE
for it to work. I could not find anything about SwapEffect and G-Sync so I don't think that is an issue. The latest update #68 I put a fix in to fix a possible issue with the PresentationInterval. However I don't think this will affect GTA:VC.
You could still try the latest patch to see if this helps: d3d8.zip
This issue may be related to #85. It seems like there is an issue with the presentation parameters related to vsync when converting to d3d9.
Can you try this one: d3d8.zip
Closing this as there has been no further feedback and it is likely to have been fixed in #87 or #108.
G-Sync and Vice City work properly with native D3D8 but using the wrapper introduces tearing indicative of running without adaptive sync or V-sync. This includes the newest version, v1.5.0, released 12 hours before this report.