FfxInterface
struct FfxInterface封装 FfxInterface 核心实现与最终应调用的图形 API 之间的接口的结构。
这组函数充当 FfxInterface 与用于实现它的 API 之间的抽象层。虽然 FidelityFX SDK 附带了 DirectX12 和 Vulkan 的后端,但也可以为其他平台实现自定义后端,这些后端位于引擎自己的抽象层之上。有关每个函数预期功能的详细信息,请参阅以下函数指针类型的描述:FfxCreateDeviceFunc FfxGetDeviceCapabilitiesFunc FfxDestroyDeviceFunc FfxCreateResourceFunc FfxRegisterResourceFunc FfxGetResourceFunc FfxUnregisterResourcesFunc FfxGetResourceDescriptionFunc FfxDestroyResourceFunc FfxCreatePipelineFunc FfxDestroyPipelineFunc FfxScheduleGpuJobFunc FfxExecuteGpuJobsFunc FfxBeginMarkerFunc FfxEndMarkerFunc FfxRegisterConstantBufferAllocatorFunc
取决于后端所抽象的图形 API,后端可能在一定程度上是状态ful 的。为了确保应用程序能够完全控制 FidelityFX SDK 使用的内存,提供了 scratchBuffer 和 scratchBufferSize 字段。后端应提供一种指定其内部实现所需的 scratch 内存量的方法(例如,通过函数或常量值)。然后,应用程序负责分配该内存并在设置 SDK 后端时提供它。FidelityFX SDK 提供的后端不会执行动态内存分配,而是从提供的 scratch 缓冲区中分配所有内存。
scratchBuffer 和 scratchBufferSize 字段应根据每个后端的需要进行填充。例如,如果使用 DirectX 12 后端,则应调用 ffxGetScratchMemorySizeDX12 函数。自定义后端实现不要求使用 scratch 缓冲区。
对该接口的任何功能性添加都要求版本号增加,以确保跨效果和后端的完整功能。
公共接口
公共成员
FfxGetSDKVersionFunc fpGetSDKVersion
FfxGetSDKVersionFunc fpGetSDKVersion用于查询 SDK 版本的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 625 行, 第 40 列)
FfxGetEffectGpuMemoryUsageFunc fpGetEffectGpuMemoryUsage
FfxGetEffectGpuMemoryUsageFunc fpGetEffectGpuMemoryUsage用于查询 effect GPU 内存使用量的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 626 行, 第 40 列)
FfxCreateBackendContextFunc fpCreateBackendContext
FfxCreateBackendContextFunc fpCreateBackendContext用于创建和初始化后端上下文的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 627 行, 第 40 列)
FfxGetDeviceCapabilitiesFunc fpGetDeviceCapabilities
FfxGetDeviceCapabilitiesFunc fpGetDeviceCapabilities用于查询设备功能的 ist/回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 628 行, 第 40 列)
FfxDestroyBackendContextFunc fpDestroyBackendContext
FfxDestroyBackendContextFunc fpDestroyBackendContext用于销毁后端上下文的回调函数。此操作还会取消引用设备。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 629 行, 第 40 列)
FfxCreateResourceFunc fpCreateResource
FfxCreateResourceFunc fpCreateResource用于创建资源的 ist/回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 630 行, 第 40 列)
FfxRegisterResourceFunc fpRegisterResource
FfxRegisterResourceFunc fpRegisterResource用于注册外部资源的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 631 行, 第 40 列)
FfxGetResourceFunc fpGetResource
FfxGetResourceFunc fpGetResource用于将内部资源转换为外部资源类型的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 632 行, 第 40 列)
FfxUnregisterResourcesFunc fpUnregisterResources
FfxUnregisterResourcesFunc fpUnregisterResources用于注销外部资源的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 633 行, 第 40 列)
FfxRegisterStaticResourceFunc fpRegisterStaticResource
FfxRegisterStaticResourceFunc fpRegisterStaticResource用于注册静态资源的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 634 行, 第 40 列)
FfxGetResourceDescriptionFunc fpGetResourceDescription
FfxGetResourceDescriptionFunc fpGetResourceDescription用于检索资源描述的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 635 行, 第 40 列)
FfxDestroyResourceFunc fpDestroyResource
FfxDestroyResourceFunc fpDestroyResource用于销毁资源的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 636 行, 第 40 列)
FfxMapResourceFunc fpMapResource
FfxMapResourceFunc fpMapResource用于映射资源的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 637 行, 第 40 列)
FfxUnmapResourceFunc fpUnmapResource
FfxUnmapResourceFunc fpUnmapResource用于取消映射资源的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 638 行, 第 40 列)
FfxStageConstantBufferDataFunc fpStageConstantBufferDataFunc
FfxStageConstantBufferDataFunc fpStageConstantBufferDataFunc用于将常量缓冲区数据复制到暂存内存的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 639 行, 第 40 列)
FfxCreatePipelineFunc fpCreatePipeline
FfxCreatePipelineFunc fpCreatePipeline用于创建渲染或计算管线的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 640 行, 第 40 列)
FfxDestroyPipelineFunc fpDestroyPipeline
FfxDestroyPipelineFunc fpDestroyPipeline用于销毁渲染或计算管线的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 641 行, 第 40 列)
FfxScheduleGpuJobFunc fpScheduleGpuJob
FfxScheduleGpuJobFunc fpScheduleGpuJob用于调度渲染作业的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 642 行, 第 40 列)
FfxExecuteGpuJobsFunc fpExecuteGpuJobs
FfxExecuteGpuJobsFunc fpExecuteGpuJobs用于执行所有排队的渲染作业的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 643 行, 第 40 列)
FfxBreadcrumbsAllocBlockFunc fpBreadcrumbsAllocBlock
FfxBreadcrumbsAllocBlockFunc fpBreadcrumbsAllocBlock用于为 AMD FidelityFX Breadcrumbs Library 缓冲区分配内存块的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 646 行, 第 40 列)
FfxBreadcrumbsFreeBlockFunc fpBreadcrumbsFreeBlock
FfxBreadcrumbsFreeBlockFunc fpBreadcrumbsFreeBlock用于释放 AMD FidelityFX Breadcrumbs Library 缓冲区的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 647 行, 第 40 列)
FfxBreadcrumbsWriteFunc fpBreadcrumbsWrite
FfxBreadcrumbsWriteFunc fpBreadcrumbsWrite用于向 AMD FidelityFX Breadcrumbs Library 写入标记的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 648 行, 第 40 列)
FfxBreadcrumbsPrintDeviceInfoFunc fpBreadcrumbsPrintDeviceInfo
FfxBreadcrumbsPrintDeviceInfoFunc fpBreadcrumbsPrintDeviceInfo用于为 AMD FidelityFX Breadcrumbs Library 日志打印活动 GPU 信息的 ist/回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 649 行, 第 40 列)
FfxGetPermutationBlobByIndexFunc fpGetPermutationBlobByIndex
FfxGetPermutationBlobByIndexFunc fpGetPermutationBlobByIndex来源: sdk/include/FidelityFX/host/ffx_interface.h (第 651 行, 第 38 列)
FfxSwapChainConfigureFrameGenerationFunc fpSwapChainConfigureFrameGeneration
FfxSwapChainConfigureFrameGenerationFunc fpSwapChainConfigureFrameGeneration用于配置交换链呈现回调的 ist/回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 652 行, 第 49 列)
FfxRegisterConstantBufferAllocatorFunc fpRegisterConstantBufferAllocator
FfxRegisterConstantBufferAllocatorFunc fpRegisterConstantBufferAllocator用于注册自定义线程安全常量缓冲区分配器的回调函数。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 654 行, 第 45 列)
void * scratchBuffer
void * scratchBuffer由后端内部使用的预分配缓冲区。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 656 行, 第 39 列)
size_t scratchBufferSize
size_t scratchBufferSizescratchBuffer 指向的缓冲区的大小。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 657 行, 第 40 列)
FfxDevice device
FfxDevice device特定于后端的设备。
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 658 行, 第 40 列)
使用于
此类型由以下部分使用
- BlurRM
- CacaoRM
- DX12Backend
- FfxBlurContextDescription
- FfxBreadcrumbsContextDescription
- FfxBrixelizerContextDescription
- FfxBrixelizerGIContextDescription
- FfxBrixelizerRawContextDescription
- FfxCacaoContextDescription
- FfxCasContextDescription
- FfxClassifierContextDescription
- FfxDenoiserContextDescription
- FfxDofContextDescription
- FfxFrameInterpolationContextDescription
- FfxFsr1ContextDescription
- FfxFsr2ContextDescription
- FfxFsr3ContextDescription
- FfxFsr3UpscalerContextDescription
- FfxLensContextDescription
- FfxLpmContextDescription
- FfxOpticalflowContextDescription
- FfxParallelSortContextDescription
- FfxSpdContextDescription
- FfxSssrContextDescription
- FfxVrsContextDescription
- GDKBackend
- HybridReflectionsRM
- HybridShadowsRenderModule
- SDKWrapper
- VKBackend
来源: sdk/include/FidelityFX/host/ffx_interface.h (第 622 行, 第 1 列)