Skip to content
This repository has been archived by the owner on Oct 6, 2024. It is now read-only.

Final Fantasy XI - POL viewer jittering in DX12 output modes (v2.75.1/WIP82) #93

Open
djc5166 opened this issue Oct 18, 2021 · 4 comments

Comments

@djc5166
Copy link

djc5166 commented Oct 18, 2021

v2.75.1 (also up to and including WIP82)

Using DX12 output API (both feature level 11.0 and 12.0) introduces a quick jittering effect on the POL viewer GUI. DX11 output and lower seems to be fine. FFXI itself seems unaffected so far.

I realize this is not a very important issue, I don't think most people even care to use dgvoodoo2 for the POL viewer, but I thought it could be an indicator of a bug that might affect other games.

@djc5166
Copy link
Author

djc5166 commented Oct 18, 2021

2021-10-18.17-00-27.mp4

Here is an example of the jittering.

@dege-diosg
Copy link
Owner

Indeed, I can reproduce but as it turned out, not only D3D12 is affected and it's not really a bug in dgVoodoo.
There are 2 renderer paths in the POL viewer:

  • render the 640x480 menuscreen and copy it directly into the window with stretching
  • render the 640x480 menuscreen, copy it into a large (2048*1152) buffer and update the window from there, with clipping

I don't know what the choice of the path depends on, in the renderer, but seems to be some kind of timing (it also works for me on a non-high DPI monitor as expected). The window client area is 636x476 (instead of 640x480), so the 2 paths give different results, that's what appears as jittering. This all could be easily fixed in the POL renderer code, by changing the lpSrcRect parameter of the Blt method updating the window.

Btw, FFXI: there is a topic about it on Vogons with fog issue. I can't check it out myself, because my account expired long ago, but could you verify if it's really a bug (dgVoodoo and native DX8 gives different results)?
https://www.vogons.org/viewtopic.php?f=59&t=82346

@djc5166
Copy link
Author

djc5166 commented Oct 19, 2021

For the jittering, it doesn't seem to happen in native DX8/DD mode, or any DX11 output modes for me, only DX12.

You can freely resize the POL window, so maybe the render path is based on how large the window is?

If you don't have a retail XI account, you can easily setup a client and connect to a private server. I don't see why any of the renderer stuff would be any different private vs retail at this point.

I don't think I've ever noticed a fog issue, I don't play it too often tbh, but I can check it out.

@dege-diosg
Copy link
Owner

Yes, the window can be resized, but 636x476 was my test case for understanding what happens.
I could reproduce it with D3D11 too for a short while. Some day I'll dig into deeper to see what causes the different rendering paths to be taken.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants