VOGONS


First post, by sodaboy581

User metadata
Rank Newbie
Rank
Newbie

Are there any plans or is there any way to get access to the current DXGI Swapchain when using D3D12 with dgVoodoo?

I'd like to implement FSR3 frame interpolation into a game. (We're already loading custom code into the game with a DLL. Changing what the game does during its rendering process is possible.)

Thank you for any information you can provide!

Reply 1 of 5, by Dege

User metadata
Rank l33t
Rank
l33t

What about the sample addon and the documentation, for hooking DX12 image presentation of dgvoodoo, that is included in dgVoodoAPI pack? (the latest)

Basically, you can catch (by custom callbacks) the begin/end points of the internal dgVoodoo image presentation process to change the input image and draw custom things into the swapchain at the end.
Altough I don't know how frame insertion could work with that, because you can only hook the existing frame presentations in the first place, cannot insert extra ones.

Btw, doesn't FSR3 requires depth, motion vector textures and the likes? I was planning DirectSR support but unfortunately all engines (as they call the upscale algorithms) requires them, so FSR1 is not available through DirectSR.

Reply 2 of 5, by sodaboy581

User metadata
Rank Newbie
Rank
Newbie

So, the way FSR3 works is it automatically generates extra presents on its own.

Somehow, when you create or replace the swapchain with FSR3's, it handles all of that for you. You can read about it here: https://gpuopen.com/fidelityfx-super-resoluti … n-3/#howitworks

Especially under the "FSR 3 Optical Flow and Frame Generation workloads". The workflow char tis pretty cool.

I've got access to the depth textures, I'll figure out the motion vector stuff or figure out how other 3rd party stuff like "Lossless Scaling" seems to be able to do it for any game.

I've even got access to the texture before the UI is on top, since my DLL for the game inserts a bunch of custom code everywhere.

I'll have to look at your latest dgVoodoo API pack, though. I actually tried using the latest dgVoodoo DLL with the game (Ephinea PSOBB), but the latest version seems to break shaders when SSAA is on.

I'll make a new topic for that!

Reply 3 of 5, by Dege

User metadata
Rank l33t
Rank
l33t

Thx, I don't have time now to read into the details, but then maybe it could be simply solved by adding a new hook point into dgVoodoo: it could call into the addon dll to create the DX12 swapchain.
You could create an FSR3 swapchain there and give it to dgVoodoo to use that instead of an own one.

Reply 4 of 5, by sodaboy581

User metadata
Rank Newbie
Rank
Newbie

Nice, I'm reading the API library help file and yeah, no way to have the DLL create or replace the swapchain now.

That'd be a super useful feature to add.

Reply 5 of 5, by Dege

User metadata
Rank l33t
Rank
l33t

I looked into the AMD FFX SDK and I've just released a new WIP version for this feature. I added a new callback method to the interface to override the swapchain creation (ID3D12RootObserver::D3D12CreateSwapchainHook).
I also updated the API pack and the documentation. Let me know if it's useful or something else would come in handy.
If you want to create your own dgVoodoo addon then you can compile and tailor the sample addon in the pack.

Re: dgVodooo 2.8.x and related WIP versions