58 lines
2.1 KiB
C
58 lines
2.1 KiB
C
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#if defined(__cplusplus)
|
|
#define INCLUDED_FROM_CPP_CODE 1
|
|
#define INCLUDED_FROM_HLSL_CODE 0
|
|
#else
|
|
#define INCLUDED_FROM_CPP_CODE 0
|
|
#define INCLUDED_FROM_HLSL_CODE 1
|
|
#endif
|
|
|
|
#if INCLUDED_FROM_HLSL_CODE
|
|
#define UE_REG_CONCATENATE2(a, b) a##b
|
|
#define UE_REG_CONCATENATE(a, b) UE_REG_CONCATENATE2(a, b)
|
|
#define UE_HLSL_REGISTER(InType, InIndex, InSpace) register(UE_REG_CONCATENATE(InType, InIndex), UE_REG_CONCATENATE(space, InSpace))
|
|
#endif
|
|
|
|
// Default binding space
|
|
#define UE_HLSL_SPACE_DEFAULT 0
|
|
|
|
// Default register space for hit group (closest hit, any hit, intersection) shader resources
|
|
#define UE_HLSL_SPACE_RAY_TRACING_LOCAL 0
|
|
|
|
// Register space for ray generation and miss shaders
|
|
#define UE_HLSL_SPACE_RAY_TRACING_GLOBAL 1
|
|
|
|
// Register space for "system" parameters (index buffer, vertex buffer, fetch parameters)
|
|
#define UE_HLSL_SPACE_RAY_TRACING_SYSTEM 2
|
|
|
|
// Register space for for resources referenced by a work graph pixel shader local root signature
|
|
// Needs to match the default binding space since we don't specialize work graph pixel shader compilation
|
|
#define UE_HLSL_SPACE_WORK_GRAPH_LOCAL_PIXEL UE_HLSL_SPACE_DEFAULT
|
|
|
|
// Register space for for resources referenced by a global work graph root signature
|
|
#define UE_HLSL_SPACE_WORK_GRAPH_GLOBAL 1
|
|
|
|
// Register space for resources referenced by a work graph compute or mesh shader local root signature
|
|
#define UE_HLSL_SPACE_WORK_GRAPH_LOCAL 2
|
|
|
|
// Register space for shader root constants (4xu32)
|
|
#define UE_HLSL_SPACE_SHADER_ROOT_CONSTANTS 3
|
|
|
|
// Register space for static shader bindings
|
|
#define UE_HLSL_SPACE_STATIC_SHADER_BINDINGS 4
|
|
|
|
// Register space for UE diagnotic debug buffer
|
|
#define UE_HLSL_SPACE_DIAGNOSTIC 999
|
|
|
|
// NOTE: AMD AGS uses AGS_DX12_SHADER_INSTRINSICS_SPACE_ID=2147420894
|
|
|
|
// Nvidia Shader Extensions
|
|
#define UE_HLSL_SLOT_NV_SHADER_EXTN 0
|
|
#define UE_HLSL_SPACE_NV_SHADER_EXTN 1001
|
|
|
|
#define NV_SHADER_EXTN_SLOT UE_REG_CONCATENATE(u, UE_HLSL_SLOT_NV_SHADER_EXTN)
|
|
#define NV_SHADER_EXTN_REGISTER_SPACE UE_REG_CONCATENATE(space, UE_HLSL_SPACE_NV_SHADER_EXTN)
|