|
|
|
@ -0,0 +1,19 @@ |
|
|
|
#define FFX_GPU // Compiling for GPU |
|
|
|
#define FFX_HLSL // Compile for plain HLSL |
|
|
|
|
|
|
|
// Use the DXC shader compiler on modern graphics APIs to enable a few advanced features |
|
|
|
#if defined(SHADER_API_D3D12) || defined(SHADER_API_VULKAN) || defined(SHADER_API_METAL) |
|
|
|
#pragma use_dxc |
|
|
|
#endif |
|
|
|
|
|
|
|
// Enable half precision data types on platforms that support it |
|
|
|
#if defined(UNITY_COMPILER_DXC) && defined(FFX_HALF) |
|
|
|
#pragma require Native16Bit |
|
|
|
#endif |
|
|
|
|
|
|
|
// Hack to work around the lack of texture atomics on Metal |
|
|
|
#if defined(SHADER_API_METAL) |
|
|
|
#define InterlockedAdd(dest, val, orig) { (orig) = (dest); (dest) += (val); } |
|
|
|
#define InterlockedMin(dest, val) { (dest) = min((dest), (val)); } |
|
|
|
#define InterlockedMax(dest, val) { (dest) = max((dest), (val)); } |
|
|
|
#endif |