mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-02 15:53:51 +00:00
Use monotonic interop fence values for FSR3 bridge dispatch
This commit is contained in:
parent
1c7908f02d
commit
1bcc2c6b85
2 changed files with 8 additions and 2 deletions
|
|
@ -455,6 +455,7 @@ private:
|
||||||
size_t amdFsr3UpscaleDispatchCount = 0;
|
size_t amdFsr3UpscaleDispatchCount = 0;
|
||||||
size_t amdFsr3FramegenDispatchCount = 0;
|
size_t amdFsr3FramegenDispatchCount = 0;
|
||||||
size_t amdFsr3FallbackCount = 0;
|
size_t amdFsr3FallbackCount = 0;
|
||||||
|
uint64_t amdFsr3InteropSyncValue = 1;
|
||||||
float jitterSign = 0.38f;
|
float jitterSign = 0.38f;
|
||||||
float motionVecScaleX = 1.0f;
|
float motionVecScaleX = 1.0f;
|
||||||
float motionVecScaleY = 1.0f;
|
float motionVecScaleY = 1.0f;
|
||||||
|
|
|
||||||
|
|
@ -3823,6 +3823,7 @@ bool Renderer::initFSR2Resources() {
|
||||||
fsr2_.amdFsr3UpscaleDispatchCount = 0;
|
fsr2_.amdFsr3UpscaleDispatchCount = 0;
|
||||||
fsr2_.amdFsr3FramegenDispatchCount = 0;
|
fsr2_.amdFsr3FramegenDispatchCount = 0;
|
||||||
fsr2_.amdFsr3FallbackCount = 0;
|
fsr2_.amdFsr3FallbackCount = 0;
|
||||||
|
fsr2_.amdFsr3InteropSyncValue = 1;
|
||||||
#if WOWEE_HAS_AMD_FSR2
|
#if WOWEE_HAS_AMD_FSR2
|
||||||
LOG_INFO("FSR2: AMD FidelityFX SDK detected at build time.");
|
LOG_INFO("FSR2: AMD FidelityFX SDK detected at build time.");
|
||||||
#else
|
#else
|
||||||
|
|
@ -4260,6 +4261,7 @@ void Renderer::destroyFSR2Resources() {
|
||||||
fsr2_.framegenOutputValid = false;
|
fsr2_.framegenOutputValid = false;
|
||||||
fsr2_.amdFsr3RuntimePath = "Path C";
|
fsr2_.amdFsr3RuntimePath = "Path C";
|
||||||
fsr2_.amdFsr3RuntimeLastError.clear();
|
fsr2_.amdFsr3RuntimeLastError.clear();
|
||||||
|
fsr2_.amdFsr3InteropSyncValue = 1;
|
||||||
#if WOWEE_HAS_AMD_FSR3_FRAMEGEN
|
#if WOWEE_HAS_AMD_FSR3_FRAMEGEN
|
||||||
if (fsr2_.amdFsr3Runtime) {
|
if (fsr2_.amdFsr3Runtime) {
|
||||||
fsr2_.amdFsr3Runtime->shutdown();
|
fsr2_.amdFsr3Runtime->shutdown();
|
||||||
|
|
@ -4606,8 +4608,11 @@ void Renderer::dispatchAmdFsr3Framegen() {
|
||||||
fgDispatch.externalFlags |= WOWEE_FSR3_WRAPPER_EXTERNAL_RELEASE_SEMAPHORE;
|
fgDispatch.externalFlags |= WOWEE_FSR3_WRAPPER_EXTERNAL_RELEASE_SEMAPHORE;
|
||||||
trackHandle(fgDispatch.releaseSemaphoreHandle);
|
trackHandle(fgDispatch.releaseSemaphoreHandle);
|
||||||
}
|
}
|
||||||
fgDispatch.acquireSemaphoreValue = 1;
|
uint64_t syncValue = fsr2_.amdFsr3InteropSyncValue;
|
||||||
fgDispatch.releaseSemaphoreValue = 1;
|
if (syncValue == 0) syncValue = 1;
|
||||||
|
fgDispatch.acquireSemaphoreValue = syncValue;
|
||||||
|
fgDispatch.releaseSemaphoreValue = syncValue;
|
||||||
|
fsr2_.amdFsr3InteropSyncValue = syncValue + 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!fsr2_.amdFsr3Runtime->dispatchUpscale(fgDispatch)) {
|
if (!fsr2_.amdFsr3Runtime->dispatchUpscale(fgDispatch)) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue