diff --git a/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_common_types.h b/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_common_types.h index ec70e52..f0b62ab 100644 --- a/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_common_types.h +++ b/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_common_types.h @@ -260,6 +260,29 @@ typedef int16_t FfxInt16; typedef int16_t2 FfxInt16x2; typedef int16_t3 FfxInt16x3; typedef int16_t4 FfxInt16x4; +#elif SHADER_API_PSSL +#pragma argument(realtypes) // Enable true 16-bit types + +typedef half FfxFloat16; +typedef half2 FfxFloat16x2; +typedef half3 FfxFloat16x3; +typedef half4 FfxFloat16x4; + +/// A typedef for an unsigned 16bit integer. +/// +/// @ingroup GPU +typedef ushort FfxUInt16; +typedef ushort2 FfxUInt16x2; +typedef ushort3 FfxUInt16x3; +typedef ushort4 FfxUInt16x4; + +/// A typedef for a signed 16bit integer. +/// +/// @ingroup GPU +typedef short FfxInt16; +typedef short2 FfxInt16x2; +typedef short3 FfxInt16x3; +typedef short4 FfxInt16x4; #else // #if FFX_HLSL_SM>=62 typedef min16float FfxFloat16; typedef min16float2 FfxFloat16x2; @@ -334,7 +357,7 @@ typedef min16int4 FfxInt16x4; // #define FFX_HALF (1) // #define FFX_HLSL_SM (62) -#if FFX_HALF +#if FFX_HALF && !defined(SHADER_API_PSSL) #if FFX_HLSL_SM >= 62 @@ -372,7 +395,7 @@ typedef min16int4 FfxInt16x4; #if defined(FFX_GPU) // Common typedefs: -#if defined(FFX_HLSL) +#if defined(FFX_HLSL) && !defined(SHADER_API_PSSL) FFX_MIN16_SCALAR( FFX_MIN16_F , float ); FFX_MIN16_VECTOR( FFX_MIN16_F2, float, 2 ); FFX_MIN16_VECTOR( FFX_MIN16_F3, float, 3 ); @@ -446,6 +469,79 @@ typedef FfxUInt32x3 Prefix##_U3; \ typedef FfxUInt32x4 Prefix##_U4; #endif // #if defined(FFX_HLSL) +#if defined(SHADER_API_PSSL) + +#define unorm +#define globallycoherent + +#if FFX_HALF + +#define FFX_MIN16_F half +#define FFX_MIN16_F2 half2 +#define FFX_MIN16_F3 half3 +#define FFX_MIN16_F4 half4 + +#define FFX_MIN16_I short +#define FFX_MIN16_I2 short2 +#define FFX_MIN16_I3 short3 +#define FFX_MIN16_I4 short4 + +#define FFX_MIN16_U ushort +#define FFX_MIN16_U2 ushort2 +#define FFX_MIN16_U3 ushort3 +#define FFX_MIN16_U4 ushort4 + +#define FFX_16BIT_F half +#define FFX_16BIT_F2 half2 +#define FFX_16BIT_F3 half3 +#define FFX_16BIT_F4 half4 + +#define FFX_16BIT_I short +#define FFX_16BIT_I2 short2 +#define FFX_16BIT_I3 short3 +#define FFX_16BIT_I4 short4 + +#define FFX_16BIT_U ushort +#define FFX_16BIT_U2 ushort2 +#define FFX_16BIT_U3 ushort3 +#define FFX_16BIT_U4 ushort4 + +#else // FFX_HALF + +#define FFX_MIN16_F float +#define FFX_MIN16_F2 float2 +#define FFX_MIN16_F3 float3 +#define FFX_MIN16_F4 float4 + +#define FFX_MIN16_I int +#define FFX_MIN16_I2 int2 +#define FFX_MIN16_I3 int3 +#define FFX_MIN16_I4 int4 + +#define FFX_MIN16_U uint +#define FFX_MIN16_U2 uint2 +#define FFX_MIN16_U3 uint3 +#define FFX_MIN16_U4 uint4 + +#define FFX_16BIT_F float +#define FFX_16BIT_F2 float2 +#define FFX_16BIT_F3 float3 +#define FFX_16BIT_F4 float4 + +#define FFX_16BIT_I int +#define FFX_16BIT_I2 int2 +#define FFX_16BIT_I3 int3 +#define FFX_16BIT_I4 int4 + +#define FFX_16BIT_U uint +#define FFX_16BIT_U2 uint2 +#define FFX_16BIT_U3 uint3 +#define FFX_16BIT_U4 uint4 + +#endif // FFX_HALF + +#endif // #if defined(SHADER_API_PSSL) + #if defined(FFX_GLSL) #if FFX_HALF diff --git a/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h b/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h index d915cef..18f221a 100644 --- a/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h +++ b/Assets/Resources/FSR3/shaders/fsr3upscaler/ffx_fsr3upscaler_callbacks_hlsl.h @@ -72,6 +72,8 @@ FfxFloat32 fDeltaTime; FfxFloat32 fDynamicResChangeFactor; FfxFloat32 fViewSpaceToMetersFactor; + + FfxInt32 iDummy; }; #define FFX_FSR3UPSCALER_CONSTANT_BUFFER_1_SIZE (sizeof(cbFSR3Upscaler) / 4) // Number of 32-bit values. This must be kept in sync with the cbFSR3Upscaler size. diff --git a/Assets/Resources/FSR3/shaders/fsr3upscaler/spd/ffx_spd.h b/Assets/Resources/FSR3/shaders/fsr3upscaler/spd/ffx_spd.h index cbb3982..4082817 100644 --- a/Assets/Resources/FSR3/shaders/fsr3upscaler/spd/ffx_spd.h +++ b/Assets/Resources/FSR3/shaders/fsr3upscaler/spd/ffx_spd.h @@ -119,9 +119,6 @@ FfxFloat32x4 SpdReduce4(FfxFloat32x4 v0, FfxFloat32x4 v1, FfxFloat32x4 v2, FfxFl #endif // #if FFX_SPD_PACKED_ONLY //_____________________________________________________________/\_______________________________________________________________ -#if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS) -#extension GL_KHR_shader_subgroup_quad:require -#endif void ffxSpdWorkgroupShuffleBarrier() { @@ -579,10 +576,6 @@ void SpdDownsample(FfxUInt32x2 workGroupID, FfxUInt32 localInvocationIndex, FfxU #if FFX_HALF -#if defined(FFX_GLSL) -#extension GL_EXT_shader_subgroup_extended_types_float16:require -#endif - FfxFloat16x4 SpdReduceQuadH(FfxFloat16x4 v) { #if defined(FFX_GLSL) && !defined(FFX_SPD_NO_WAVE_OPERATIONS)