mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-03-22 23:30:14 +00:00
Fix cross-platform FSR3 compile path and Path-A runtime wiring
This commit is contained in:
parent
725602b5e5
commit
9ff9f2f1f1
7 changed files with 333 additions and 113 deletions
143
include/third_party/ffx_fsr3_legacy_compat.h
vendored
Normal file
143
include/third_party/ffx_fsr3_legacy_compat.h
vendored
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
#pragma once
|
||||
|
||||
#include <ffx_fsr3upscaler.h>
|
||||
#include <ffx_frameinterpolation.h>
|
||||
#include <ffx_opticalflow.h>
|
||||
#include <ffx_framegeneration.h>
|
||||
|
||||
// Kits SDK uses FfxApi* type names. Preserve the legacy aliases expected by
|
||||
// the existing runtime/wrapper code so we can compile against either layout.
|
||||
using FfxSurfaceFormat = FfxApiSurfaceFormat;
|
||||
using FfxDimensions2D = FfxApiDimensions2D;
|
||||
using FfxFloatCoords2D = FfxApiFloatCoords2D;
|
||||
using FfxResource = FfxApiResource;
|
||||
using FfxResourceDescription = FfxApiResourceDescription;
|
||||
using FfxResourceUsage = FfxApiResourceUsage;
|
||||
|
||||
#ifndef FFX_FSR3_CONTEXT_SIZE
|
||||
#define FFX_FSR3_CONTEXT_SIZE (FFX_SDK_DEFAULT_CONTEXT_SIZE)
|
||||
#endif
|
||||
|
||||
#ifndef FFX_FSR3_CONTEXT_COUNT
|
||||
// Combined FSR3 path uses shared + upscaler + frame interpolation contexts.
|
||||
#define FFX_FSR3_CONTEXT_COUNT (3)
|
||||
#endif
|
||||
|
||||
#ifndef FFX_RESOURCE_TYPE_TEXTURE2D
|
||||
#define FFX_RESOURCE_TYPE_TEXTURE2D FFX_API_RESOURCE_TYPE_TEXTURE2D
|
||||
#endif
|
||||
#ifndef FFX_RESOURCE_FLAGS_NONE
|
||||
#define FFX_RESOURCE_FLAGS_NONE FFX_API_RESOURCE_FLAGS_NONE
|
||||
#endif
|
||||
#ifndef FFX_RESOURCE_USAGE_READ_ONLY
|
||||
#define FFX_RESOURCE_USAGE_READ_ONLY FFX_API_RESOURCE_USAGE_READ_ONLY
|
||||
#endif
|
||||
#ifndef FFX_RESOURCE_USAGE_UAV
|
||||
#define FFX_RESOURCE_USAGE_UAV FFX_API_RESOURCE_USAGE_UAV
|
||||
#endif
|
||||
#ifndef FFX_RESOURCE_USAGE_DEPTHTARGET
|
||||
#define FFX_RESOURCE_USAGE_DEPTHTARGET FFX_API_RESOURCE_USAGE_DEPTHTARGET
|
||||
#endif
|
||||
#ifndef FFX_RESOURCE_STATE_COMPUTE_READ
|
||||
#define FFX_RESOURCE_STATE_COMPUTE_READ FFX_API_RESOURCE_STATE_COMPUTE_READ
|
||||
#endif
|
||||
#ifndef FFX_RESOURCE_STATE_UNORDERED_ACCESS
|
||||
#define FFX_RESOURCE_STATE_UNORDERED_ACCESS FFX_API_RESOURCE_STATE_UNORDERED_ACCESS
|
||||
#endif
|
||||
|
||||
#ifndef FFX_SURFACE_FORMAT_UNKNOWN
|
||||
#define FFX_SURFACE_FORMAT_UNKNOWN FFX_API_SURFACE_FORMAT_UNKNOWN
|
||||
#define FFX_SURFACE_FORMAT_R32_FLOAT FFX_API_SURFACE_FORMAT_R32_FLOAT
|
||||
#define FFX_SURFACE_FORMAT_R16_UNORM FFX_API_SURFACE_FORMAT_R16_UNORM
|
||||
#define FFX_SURFACE_FORMAT_R16G16B16A16_FLOAT FFX_API_SURFACE_FORMAT_R16G16B16A16_FLOAT
|
||||
#define FFX_SURFACE_FORMAT_R8G8B8A8_UNORM FFX_API_SURFACE_FORMAT_R8G8B8A8_UNORM
|
||||
#define FFX_SURFACE_FORMAT_R8G8B8A8_SRGB FFX_API_SURFACE_FORMAT_R8G8B8A8_SRGB
|
||||
#define FFX_SURFACE_FORMAT_R10G10B10A2_UNORM FFX_API_SURFACE_FORMAT_R10G10B10A2_UNORM
|
||||
#define FFX_SURFACE_FORMAT_R11G11B10_FLOAT FFX_API_SURFACE_FORMAT_R11G11B10_FLOAT
|
||||
#define FFX_SURFACE_FORMAT_R16G16_FLOAT FFX_API_SURFACE_FORMAT_R16G16_FLOAT
|
||||
#define FFX_SURFACE_FORMAT_R16G16_UINT FFX_API_SURFACE_FORMAT_R16G16_UINT
|
||||
#define FFX_SURFACE_FORMAT_R16_FLOAT FFX_API_SURFACE_FORMAT_R16_FLOAT
|
||||
#define FFX_SURFACE_FORMAT_R16_UINT FFX_API_SURFACE_FORMAT_R16_UINT
|
||||
#define FFX_SURFACE_FORMAT_R16_SNORM FFX_API_SURFACE_FORMAT_R16_SNORM
|
||||
#define FFX_SURFACE_FORMAT_R8_UNORM FFX_API_SURFACE_FORMAT_R8_UNORM
|
||||
#define FFX_SURFACE_FORMAT_R8_UINT FFX_API_SURFACE_FORMAT_R8_UINT
|
||||
#define FFX_SURFACE_FORMAT_R8G8_UNORM FFX_API_SURFACE_FORMAT_R8G8_UNORM
|
||||
#define FFX_SURFACE_FORMAT_R32_UINT FFX_API_SURFACE_FORMAT_R32_UINT
|
||||
#endif
|
||||
|
||||
#ifndef FFX_BACKBUFFER_TRANSFER_FUNCTION_SRGB
|
||||
#define FFX_BACKBUFFER_TRANSFER_FUNCTION_SRGB FFX_API_BACKBUFFER_TRANSFER_FUNCTION_SRGB
|
||||
#define FFX_BACKBUFFER_TRANSFER_FUNCTION_SCRGB FFX_API_BACKBUFFER_TRANSFER_FUNCTION_SCRGB
|
||||
#endif
|
||||
|
||||
enum FfxFsr3InitializationFlagBitsCompat {
|
||||
FFX_FSR3_ENABLE_HIGH_DYNAMIC_RANGE = (1u << 0),
|
||||
FFX_FSR3_ENABLE_DISPLAY_RESOLUTION_MOTION_VECTORS = (1u << 1),
|
||||
FFX_FSR3_ENABLE_MOTION_VECTORS_JITTER_CANCELLATION = (1u << 2),
|
||||
FFX_FSR3_ENABLE_DEPTH_INVERTED = (1u << 3),
|
||||
FFX_FSR3_ENABLE_DEPTH_INFINITE = (1u << 4),
|
||||
FFX_FSR3_ENABLE_AUTO_EXPOSURE = (1u << 5),
|
||||
FFX_FSR3_ENABLE_DYNAMIC_RESOLUTION = (1u << 6),
|
||||
FFX_FSR3_ENABLE_UPSCALING_ONLY = (1u << 7)
|
||||
};
|
||||
|
||||
typedef struct FfxFsr3ContextDescription {
|
||||
uint32_t flags;
|
||||
FfxApiDimensions2D maxRenderSize;
|
||||
FfxApiDimensions2D displaySize;
|
||||
FfxApiDimensions2D upscaleOutputSize;
|
||||
FfxFsr3UpscalerMessage fpMessage;
|
||||
FfxInterface backendInterfaceSharedResources;
|
||||
FfxInterface backendInterfaceUpscaling;
|
||||
FfxInterface backendInterfaceFrameInterpolation;
|
||||
FfxApiSurfaceFormat backBufferFormat;
|
||||
} FfxFsr3ContextDescription;
|
||||
|
||||
typedef struct FfxFsr3Context {
|
||||
uint32_t data[FFX_FSR3_CONTEXT_SIZE];
|
||||
} FfxFsr3Context;
|
||||
|
||||
typedef struct FfxFsr3DispatchUpscaleDescription {
|
||||
FfxCommandList commandList;
|
||||
FfxApiResource color;
|
||||
FfxApiResource depth;
|
||||
FfxApiResource motionVectors;
|
||||
FfxApiResource exposure;
|
||||
FfxApiResource reactive;
|
||||
FfxApiResource transparencyAndComposition;
|
||||
FfxApiResource upscaleOutput;
|
||||
FfxApiFloatCoords2D jitterOffset;
|
||||
FfxApiFloatCoords2D motionVectorScale;
|
||||
FfxApiDimensions2D renderSize;
|
||||
bool enableSharpening;
|
||||
float sharpness;
|
||||
float frameTimeDelta;
|
||||
float preExposure;
|
||||
bool reset;
|
||||
float cameraNear;
|
||||
float cameraFar;
|
||||
float cameraFovAngleVertical;
|
||||
float viewSpaceToMetersFactor;
|
||||
} FfxFsr3DispatchUpscaleDescription;
|
||||
|
||||
typedef struct FfxFrameGenerationDispatchDescription {
|
||||
FfxCommandList commandList;
|
||||
FfxApiResource presentColor;
|
||||
FfxApiResource outputs[4];
|
||||
uint32_t numInterpolatedFrames;
|
||||
bool reset;
|
||||
uint32_t backBufferTransferFunction;
|
||||
float minMaxLuminance[2];
|
||||
} FfxFrameGenerationDispatchDescription;
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
FFX_API FfxErrorCode ffxFsr3ContextCreate(FfxFsr3Context* context, const FfxFsr3ContextDescription* contextDescription);
|
||||
FFX_API FfxErrorCode ffxFsr3ContextDispatchUpscale(FfxFsr3Context* context, const FfxFsr3DispatchUpscaleDescription* dispatchDescription);
|
||||
FFX_API FfxErrorCode ffxFsr3ConfigureFrameGeneration(FfxFsr3Context* context, const FfxFrameGenerationConfig* config);
|
||||
FFX_API FfxErrorCode ffxFsr3DispatchFrameGeneration(const FfxFrameGenerationDispatchDescription* dispatchDescription);
|
||||
FFX_API FfxErrorCode ffxFsr3ContextDestroy(FfxFsr3Context* context);
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue