According to my understanding, effect context is used to store gpu resources classified by effect like interpolation/shared/upscaler. To support all platforms, I not used dx12 or vulkan backend in preset and implement backend interfaces by our engine interface. But I found when configured FFX_FSR3_ENABLE_UPSCALING_ONLY in FfxFsr3ContextDescription::flags, shared resource like dilated depth can not be created correctly.
After read the SDK code in ffx_fsr3.cpp, I found that effectContextIdSharedResources, effectContextIdUpscaling and effectContextIdFrameGeneration 3 fields in FfxFsr3Context_Private is not set. Actually, upscaling effect context id is stored in FfxFsr3UpscalerContext_Private::effectContextId and interpolation effect context id is seem. But shared resources effect context id is stored in effectContextIdSharedResources. For interpolation usage, it is ok but for upscaling only usage, shared resource context is not created, see:
I guess author want to use upscaler effect context as shared resources effect context directly but forget to test this case. I can fix this issue locally but I want you to know it, is it necessary to fix this when implement custom backend interfaces and use FSR3 as upscaler only.
According to my understanding, effect context is used to store gpu resources classified by effect like interpolation/shared/upscaler. To support all platforms, I not used dx12 or vulkan backend in preset and implement backend interfaces by our engine interface. But I found when configured
FFX_FSR3_ENABLE_UPSCALING_ONLY
inFfxFsr3ContextDescription::flags
, shared resource like dilated depth can not be created correctly.After read the SDK code in
ffx_fsr3.cpp
, I found thateffectContextIdSharedResources
,effectContextIdUpscaling
andeffectContextIdFrameGeneration
3 fields inFfxFsr3Context_Private
is not set. Actually, upscaling effect context id is stored inFfxFsr3UpscalerContext_Private::effectContextId
and interpolation effect context id is seem. But shared resources effect context id is stored ineffectContextIdSharedResources
. For interpolation usage, it is ok but for upscaling only usage, shared resource context is not created, see:But for any usage, the shared resources will be used directly in the following:
I guess author want to use upscaler effect context as shared resources effect context directly but forget to test this case. I can fix this issue locally but I want you to know it, is it necessary to fix this when implement custom backend interfaces and use FSR3 as upscaler only.