Browse Source

Defined a vertex/fragment shader for the accumulate pass, with initial modifications to make things compile as a proof of concept:

- Removed vk::binding directives, as they are only meant for Vulkan and don't mean anything to Unity
- Initialize inout struct as zero to stop Unity compiler complaints
- Renamed vertex main function to VertMain to prevent duplicate main function declaration
- Removed duplicate VertexOut struct declaration
- Removed unused header includes in vertex shader code, preventing duplicate declarations
- Fixed up a few relative header include paths
asr-console
Nico de Poel 11 months ago
parent
commit
c27195fb9a
  1. 23
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader
  2. 9
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader.meta
  3. 5
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/ffxm_fsr2_accumulate_pass_fs.hlsl
  4. 5
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/ffxm_fsr2_vs.hlsl
  5. 2
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/fsr2/ffxm_fsr2_accumulate.h
  6. 98
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/fsr2/ffxm_fsr2_callbacks_hlsl.h

23
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader

@ -0,0 +1,23 @@
Shader "TND/ASR/ffx_fsr2_fs"
{
SubShader
{
Cull Off ZWrite Off ZTest Always
Pass
{
Name "Accumulate"
HLSLPROGRAM
#pragma vertex VertMain
#pragma fragment main
#pragma target 4.5
#pragma enable_d3d11_debug_symbols
#include "shaders/ffxm_fsr2_vs.hlsl"
#include "shaders/ffxm_fsr2_accumulate_pass_fs.hlsl"
ENDHLSL
}
}
}

9
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/ffxm_fsr2_fs.shader.meta

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 147cc2cffac69ef4eb3ea8addafc9d10
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

5
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/ffxm_fsr2_accumulate_pass_fs.hlsl

@ -59,11 +59,6 @@
#include "fsr2/ffxm_fsr2_reproject.h"
#include "fsr2/ffxm_fsr2_accumulate.h"
struct VertexOut
{
float4 position : SV_POSITION;
};
struct AccumulateOutputsFS
{
#if !FFXM_SHADER_QUALITY_BALANCED_OR_PERFORMANCE

5
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/ffxm_fsr2_vs.hlsl

@ -32,15 +32,12 @@
#define FSR2_BIND_CB_FSR2 0
#include "fsr2/ffxm_fsr2_callbacks_hlsl.h"
#include "fsr2/ffxm_fsr2_common.h"
struct VertexOut
{
float4 position : SV_POSITION;
};
VertexOut main(uint uVertexId : SV_VERTEXID)
VertexOut VertMain(uint uVertexId : SV_VERTEXID)
{
VertexOut output;
float2 uv = float2(uVertexId & 1, uVertexId >> 1) * 2.0;

2
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/fsr2/ffxm_fsr2_accumulate.h

@ -244,6 +244,8 @@ FfxFloat32 ComputeTemporalReactiveFactor(const AccumulationPassCommonParams para
void initReactiveMaskFactors(FFXM_PARAMETER_INOUT AccumulationPassCommonParams params)
{
params = (AccumulationPassCommonParams)0;
const FFXM_MIN16_F2 fDilatedReactiveMasks = FFXM_MIN16_F2(SampleDilatedReactiveMasks(params.fLrUv_HwSampler));
params.fDilatedReactiveFactor = fDilatedReactiveMasks.x;
params.fAccumulationMask = fDilatedReactiveMasks.y;

98
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/Upscaling/ASR/Shaders/shaders/fsr2/ffxm_fsr2_callbacks_hlsl.h

@ -19,14 +19,14 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#include "./fsr2/ffxm_fsr2_resources.h"
#include "./ffxm_fsr2_resources.h"
#if defined(FFXM_GPU)
#ifdef __hlsl_dx_compiler
#pragma dxc diagnostic push
#pragma dxc diagnostic ignored "-Wambig-lit-shift"
#endif //__hlsl_dx_compiler
#include "./ffxm_core.h"
#include "../ffxm_core.h"
#ifdef __hlsl_dx_compiler
#pragma dxc diagnostic pop
#endif //__hlsl_dx_compiler
@ -57,7 +57,7 @@
#endif
#if defined(FSR2_BIND_CB_FSR2)
[[vk::binding(FSR2_BIND_CB_FSR2 + SET_0_CB_START, 0)]] cbuffer cbFSR2 : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_FSR2)
cbuffer cbFSR2 : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_FSR2)
{
FfxInt32x2 iRenderSize;
FfxInt32x2 iMaxRenderSize;
@ -225,7 +225,7 @@ FfxFloat32 ViewSpaceToMetersFactor()
#endif // #if FFXM_FSR2_EMBED_ROOTSIG
#if defined(FSR2_BIND_CB_RCAS)
[[vk::binding(FSR2_BIND_CB_RCAS + SET_0_CB_START, 0)]] cbuffer cbRCAS : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_RCAS)
cbuffer cbRCAS : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_RCAS)
{
FfxUInt32x4 rcasConfig;
};
@ -238,7 +238,7 @@ FfxUInt32x4 RCASConfig()
#if defined(FSR2_BIND_CB_REACTIVE)
[[vk::binding(FSR2_BIND_CB_REACTIVE + SET_0_CB_START, 0)]] cbuffer cbGenerateReactive : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_REACTIVE)
cbuffer cbGenerateReactive : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_REACTIVE)
{
FfxFloat32 gen_reactive_scale;
FfxFloat32 gen_reactive_threshold;
@ -268,7 +268,7 @@ FfxUInt32 GenReactiveFlags()
#endif // #if defined(FSR2_BIND_CB_REACTIVE)
#if defined(FSR2_BIND_CB_SPD)
[[vk::binding(FSR2_BIND_CB_SPD + SET_0_CB_START, 0)]] cbuffer cbSPD : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_SPD) {
cbuffer cbSPD : FFXM_FSR2_DECLARE_CB(FSR2_BIND_CB_SPD) {
FfxUInt32 mips;
FfxUInt32 numWorkGroups;
@ -297,136 +297,136 @@ FfxUInt32x2 SPD_RenderSize()
}
#endif // #if defined(FSR2_BIND_CB_SPD)
[[vk::binding(0, 0)]] SamplerState s_PointClamp : register(s0);
[[vk::binding(1, 0)]] SamplerState s_LinearClamp : register(s1);
SamplerState s_PointClamp : register(s0);
SamplerState s_LinearClamp : register(s1);
// SRVs
#if defined FSR2_BIND_SRV_INPUT_COLOR
[[vk::binding(FSR2_BIND_SRV_INPUT_COLOR, 1)]] Texture2D<FfxFloat32x4> r_input_color_jittered : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_COLOR);
Texture2D<FfxFloat32x4> r_input_color_jittered : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_COLOR);
#endif
#if defined FSR2_BIND_SRV_INPUT_OPAQUE_ONLY
[[vk::binding(FSR2_BIND_SRV_INPUT_OPAQUE_ONLY, 1)]] Texture2D<FfxFloat32x4> r_input_opaque_only : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_OPAQUE_ONLY);
Texture2D<FfxFloat32x4> r_input_opaque_only : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_OPAQUE_ONLY);
#endif
#if defined FSR2_BIND_SRV_INPUT_MOTION_VECTORS
[[vk::binding(FSR2_BIND_SRV_INPUT_MOTION_VECTORS, 1)]] Texture2D<FfxFloat32x4> r_input_motion_vectors : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_MOTION_VECTORS);
Texture2D<FfxFloat32x4> r_input_motion_vectors : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_MOTION_VECTORS);
#endif
#if defined FSR2_BIND_SRV_INPUT_DEPTH
[[vk::binding(FSR2_BIND_SRV_INPUT_DEPTH, 1)]] Texture2D<FfxFloat32> r_input_depth : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_DEPTH);
Texture2D<FfxFloat32> r_input_depth : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_DEPTH);
#endif
#if defined FSR2_BIND_SRV_INPUT_EXPOSURE
[[vk::binding(FSR2_BIND_SRV_INPUT_EXPOSURE, 1)]] Texture2D<FfxFloat32x2> r_input_exposure : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_EXPOSURE);
Texture2D<FfxFloat32x2> r_input_exposure : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INPUT_EXPOSURE);
#endif
#if defined FSR2_BIND_SRV_AUTO_EXPOSURE
[[vk::binding(FSR2_BIND_SRV_AUTO_EXPOSURE, 1)]] Texture2D<FfxFloat32x2> r_auto_exposure : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_AUTO_EXPOSURE);
Texture2D<FfxFloat32x2> r_auto_exposure : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_AUTO_EXPOSURE);
#endif
#if defined FSR2_BIND_SRV_REACTIVE_MASK
[[vk::binding(FSR2_BIND_SRV_REACTIVE_MASK, 1)]] Texture2D<FfxFloat32> r_reactive_mask : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_REACTIVE_MASK);
Texture2D<FfxFloat32> r_reactive_mask : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_REACTIVE_MASK);
#endif
#if defined FSR2_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK
[[vk::binding(FSR2_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK, 1)]] Texture2D<FfxFloat32> r_transparency_and_composition_mask : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK);
Texture2D<FfxFloat32> r_transparency_and_composition_mask : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_TRANSPARENCY_AND_COMPOSITION_MASK);
#endif
#if defined FSR2_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH
[[vk::binding(FSR2_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH, 1)]] Texture2D<FfxUInt32> r_reconstructed_previous_nearest_depth : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH);
Texture2D<FfxUInt32> r_reconstructed_previous_nearest_depth : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_RECONSTRUCTED_PREV_NEAREST_DEPTH);
#endif
#if defined FSR2_BIND_SRV_DILATED_MOTION_VECTORS
[[vk::binding(FSR2_BIND_SRV_DILATED_MOTION_VECTORS, 1)]] Texture2D<FfxFloat32x2> r_dilated_motion_vectors : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_DILATED_MOTION_VECTORS);
Texture2D<FfxFloat32x2> r_dilated_motion_vectors : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_DILATED_MOTION_VECTORS);
#endif
#if defined FSR2_BIND_SRV_PREVIOUS_DILATED_MOTION_VECTORS
[[vk::binding(FSR2_BIND_SRV_PREVIOUS_DILATED_MOTION_VECTORS, 1)]] Texture2D<FfxFloat32x2> r_previous_dilated_motion_vectors : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_PREVIOUS_DILATED_MOTION_VECTORS);
Texture2D<FfxFloat32x2> r_previous_dilated_motion_vectors : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_PREVIOUS_DILATED_MOTION_VECTORS);
#endif
#if defined FSR2_BIND_SRV_DILATED_DEPTH
[[vk::binding(FSR2_BIND_SRV_DILATED_DEPTH, 1)]] Texture2D<FfxFloat32> r_dilatedDepth : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_DILATED_DEPTH);
Texture2D<FfxFloat32> r_dilatedDepth : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_DILATED_DEPTH);
#endif
#if defined FSR2_BIND_SRV_INTERNAL_UPSCALED
[[vk::binding(FSR2_BIND_SRV_INTERNAL_UPSCALED, 1)]] Texture2D<FfxFloat32x4> r_internal_upscaled_color : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INTERNAL_UPSCALED);
Texture2D<FfxFloat32x4> r_internal_upscaled_color : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_INTERNAL_UPSCALED);
#endif
#if defined FSR2_BIND_SRV_LOCK_STATUS
[[vk::binding(FSR2_BIND_SRV_LOCK_STATUS, 1)]] Texture2D<unorm FfxFloat32x2> r_lock_status : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LOCK_STATUS);
Texture2D<unorm FfxFloat32x2> r_lock_status : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LOCK_STATUS);
#endif
#if defined FSR2_BIND_SRV_LOCK_INPUT_LUMA
[[vk::binding(FSR2_BIND_SRV_LOCK_INPUT_LUMA, 1)]] Texture2D<FfxFloat32> r_lock_input_luma : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LOCK_INPUT_LUMA);
Texture2D<FfxFloat32> r_lock_input_luma : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LOCK_INPUT_LUMA);
#endif
#if defined FSR2_BIND_SRV_NEW_LOCKS
[[vk::binding(FSR2_BIND_SRV_NEW_LOCKS, 1)]] Texture2D<unorm FfxFloat32> r_new_locks : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_NEW_LOCKS);
Texture2D<unorm FfxFloat32> r_new_locks : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_NEW_LOCKS);
#endif
#if defined FSR2_BIND_SRV_PREPARED_INPUT_COLOR
[[vk::binding(FSR2_BIND_SRV_PREPARED_INPUT_COLOR, 1)]] Texture2D<FfxFloat32x4> r_prepared_input_color : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_PREPARED_INPUT_COLOR);
Texture2D<FfxFloat32x4> r_prepared_input_color : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_PREPARED_INPUT_COLOR);
#endif
#if defined FSR2_BIND_SRV_LUMA_HISTORY
[[vk::binding(FSR2_BIND_SRV_LUMA_HISTORY, 1)]] Texture2D<unorm FfxFloat32x4> r_luma_history : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LUMA_HISTORY);
Texture2D<unorm FfxFloat32x4> r_luma_history : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LUMA_HISTORY);
#endif
#if defined FSR2_BIND_SRV_RCAS_INPUT
[[vk::binding(FSR2_BIND_SRV_RCAS_INPUT, 1)]] Texture2D<FfxFloat32x4> r_rcas_input : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_RCAS_INPUT);
Texture2D<FfxFloat32x4> r_rcas_input : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_RCAS_INPUT);
#endif
#if defined FSR2_BIND_SRV_LANCZOS_LUT
[[vk::binding(FSR2_BIND_SRV_LANCZOS_LUT, 1)]] Texture2D<FfxFloat32> r_lanczos_lut : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LANCZOS_LUT);
Texture2D<FfxFloat32> r_lanczos_lut : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_LANCZOS_LUT);
#endif
#if defined FSR2_BIND_SRV_SCENE_LUMINANCE_MIPS
[[vk::binding(FSR2_BIND_SRV_SCENE_LUMINANCE_MIPS, 1)]] Texture2D<FfxFloat32> r_imgMips : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_SCENE_LUMINANCE_MIPS);
Texture2D<FfxFloat32> r_imgMips : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_SCENE_LUMINANCE_MIPS);
#endif
#if defined FSR2_BIND_SRV_UPSCALE_MAXIMUM_BIAS_LUT
[[vk::binding(FSR2_BIND_SRV_UPSCALE_MAXIMUM_BIAS_LUT, 1)]] Texture2D<FfxFloat32> r_upsample_maximum_bias_lut : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_UPSCALE_MAXIMUM_BIAS_LUT);
Texture2D<FfxFloat32> r_upsample_maximum_bias_lut : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_UPSCALE_MAXIMUM_BIAS_LUT);
#endif
#if defined FSR2_BIND_SRV_DILATED_REACTIVE_MASKS
[[vk::binding(FSR2_BIND_SRV_DILATED_REACTIVE_MASKS, 1)]] Texture2D<unorm FfxFloat32x2> r_dilated_reactive_masks : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_DILATED_REACTIVE_MASKS);
Texture2D<unorm FfxFloat32x2> r_dilated_reactive_masks : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_DILATED_REACTIVE_MASKS);
#endif
#if defined FSR2_BIND_SRV_TEMPORAL_REACTIVE
[[vk::binding(FSR2_BIND_SRV_TEMPORAL_REACTIVE, 1)]] Texture2D<FfxFloat32> r_internal_temporal_reactive : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_TEMPORAL_REACTIVE);
Texture2D<FfxFloat32> r_internal_temporal_reactive : FFXM_FSR2_DECLARE_SRV(FSR2_BIND_SRV_TEMPORAL_REACTIVE);
#endif
// UAV declarations
#if defined FSR2_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH
[[vk::binding(FSR2_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH, 1)]] RWTexture2D<FfxUInt32> rw_reconstructed_previous_nearest_depth : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH);
RWTexture2D<FfxUInt32> rw_reconstructed_previous_nearest_depth : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_RECONSTRUCTED_PREV_NEAREST_DEPTH);
#endif
#if defined FSR2_BIND_UAV_DILATED_MOTION_VECTORS
[[vk::binding(FSR2_BIND_UAV_DILATED_MOTION_VECTORS, 1)]] RWTexture2D<FfxFloat32x2> rw_dilated_motion_vectors : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_DILATED_MOTION_VECTORS);
RWTexture2D<FfxFloat32x2> rw_dilated_motion_vectors : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_DILATED_MOTION_VECTORS);
#endif
#if defined FSR2_BIND_UAV_DILATED_DEPTH
[[vk::binding(FSR2_BIND_UAV_DILATED_DEPTH, 1)]] RWTexture2D<FfxFloat32> rw_dilatedDepth : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_DILATED_DEPTH);
RWTexture2D<FfxFloat32> rw_dilatedDepth : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_DILATED_DEPTH);
#endif
#if defined FSR2_BIND_UAV_INTERNAL_UPSCALED
[[vk::binding(FSR2_BIND_UAV_INTERNAL_UPSCALED, 1)]] RWTexture2D<FfxFloat32x4> rw_internal_upscaled_color : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_INTERNAL_UPSCALED);
RWTexture2D<FfxFloat32x4> rw_internal_upscaled_color : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_INTERNAL_UPSCALED);
#endif
#if defined FSR2_BIND_UAV_LOCK_STATUS
[[vk::binding(FSR2_BIND_UAV_LOCK_STATUS, 1)]] RWTexture2D<unorm FfxFloat32x2> rw_lock_status : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_LOCK_STATUS);
RWTexture2D<unorm FfxFloat32x2> rw_lock_status : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_LOCK_STATUS);
#endif
#if defined FSR2_BIND_UAV_LOCK_INPUT_LUMA
[[vk::binding(FSR2_BIND_UAV_LOCK_INPUT_LUMA, 1)]] RWTexture2D<FfxFloat32> rw_lock_input_luma : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_LOCK_INPUT_LUMA);
RWTexture2D<FfxFloat32> rw_lock_input_luma : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_LOCK_INPUT_LUMA);
#endif
#if defined FSR2_BIND_UAV_NEW_LOCKS
[[vk::binding(FSR2_BIND_UAV_NEW_LOCKS, 1)]] RWTexture2D<unorm FfxFloat32> rw_new_locks : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_NEW_LOCKS);
RWTexture2D<unorm FfxFloat32> rw_new_locks : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_NEW_LOCKS);
#endif
#if defined FSR2_BIND_UAV_PREPARED_INPUT_COLOR
[[vk::binding(FSR2_BIND_UAV_PREPARED_INPUT_COLOR, 1)]] RWTexture2D<FfxFloat32x4> rw_prepared_input_color : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_PREPARED_INPUT_COLOR);
RWTexture2D<FfxFloat32x4> rw_prepared_input_color : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_PREPARED_INPUT_COLOR);
#endif
#if defined FSR2_BIND_UAV_LUMA_HISTORY
[[vk::binding(FSR2_BIND_UAV_LUMA_HISTORY, 1)]] RWTexture2D<FfxFloat32x4> rw_luma_history : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_LUMA_HISTORY);
RWTexture2D<FfxFloat32x4> rw_luma_history : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_LUMA_HISTORY);
#endif
#if defined FSR2_BIND_UAV_UPSCALED_OUTPUT
[[vk::binding(FSR2_BIND_UAV_UPSCALED_OUTPUT, 1)]] RWTexture2D<FfxFloat32x4> rw_upscaled_output : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_UPSCALED_OUTPUT);
RWTexture2D<FfxFloat32x4> rw_upscaled_output : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_UPSCALED_OUTPUT);
#endif
#if defined FSR2_BIND_UAV_EXPOSURE_MIP_LUMA_CHANGE
[[vk::binding(FSR2_BIND_UAV_EXPOSURE_MIP_LUMA_CHANGE, 1)]] globallycoherent RWTexture2D<FfxFloat32> rw_img_mip_shading_change : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_EXPOSURE_MIP_LUMA_CHANGE);
globallycoherent RWTexture2D<FfxFloat32> rw_img_mip_shading_change : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_EXPOSURE_MIP_LUMA_CHANGE);
#endif
#if defined FSR2_BIND_UAV_EXPOSURE_MIP_5
[[vk::binding(FSR2_BIND_UAV_EXPOSURE_MIP_5, 1)]] globallycoherent RWTexture2D<FfxFloat32> rw_img_mip_5 : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_EXPOSURE_MIP_5);
globallycoherent RWTexture2D<FfxFloat32> rw_img_mip_5 : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_EXPOSURE_MIP_5);
#endif
#if defined FSR2_BIND_UAV_DILATED_REACTIVE_MASKS
[[vk::binding(FSR2_BIND_UAV_DILATED_REACTIVE_MASKS, 1)]] RWTexture2D<unorm FfxFloat32x2> rw_dilated_reactive_masks : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_DILATED_REACTIVE_MASKS);
RWTexture2D<unorm FfxFloat32x2> rw_dilated_reactive_masks : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_DILATED_REACTIVE_MASKS);
#endif
#if defined FSR2_BIND_UAV_EXPOSURE
[[vk::binding(FSR2_BIND_UAV_EXPOSURE, 1)]] RWTexture2D<FFXM_UAV_RG_QUALIFIER> rw_exposure : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_EXPOSURE);
RWTexture2D<FFXM_UAV_RG_QUALIFIER> rw_exposure : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_EXPOSURE);
#endif
#if defined FSR2_BIND_UAV_AUTO_EXPOSURE
[[vk::binding(FSR2_BIND_UAV_AUTO_EXPOSURE, 1)]] RWTexture2D<FFXM_UAV_RG_QUALIFIER> rw_auto_exposure : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_AUTO_EXPOSURE);
RWTexture2D<FFXM_UAV_RG_QUALIFIER> rw_auto_exposure : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_AUTO_EXPOSURE);
#endif
#if defined FSR2_BIND_UAV_SPD_GLOBAL_ATOMIC
[[vk::binding(FSR2_BIND_UAV_SPD_GLOBAL_ATOMIC, 1)]] globallycoherent RWTexture2D<FfxUInt32> rw_spd_global_atomic : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_SPD_GLOBAL_ATOMIC);
globallycoherent RWTexture2D<FfxUInt32> rw_spd_global_atomic : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_SPD_GLOBAL_ATOMIC);
#endif
#if defined FSR2_BIND_UAV_AUTOREACTIVE
[[vk::binding(FSR2_BIND_UAV_AUTOREACTIVE, 1)]] RWTexture2D<float> rw_output_autoreactive : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_AUTOREACTIVE);
RWTexture2D<float> rw_output_autoreactive : FFXM_FSR2_DECLARE_UAV(FSR2_BIND_UAV_AUTOREACTIVE);
#endif
#if defined(FSR2_BIND_SRV_SCENE_LUMINANCE_MIPS)

Loading…
Cancel
Save