2019-12-26 14:45:42 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "ClearReplacementShaders.h"
|
2014-06-05 16:38:54 -04:00
|
|
|
#include "ShaderParameterUtils.h"
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2021-01-07 05:19:11 -04:00
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementVS , SF_Vertex);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementVS_Bounds , SF_Vertex);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementVS_Depth , SF_Vertex);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementPS , SF_Pixel);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementPS_128 , SF_Pixel);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementPS_Zero , SF_Pixel);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Uint_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Uint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Uint4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Float_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Float4_Bounds , SF_Compute);
|
2021-05-11 03:24:16 -04:00
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_LargeBuffer_Uint_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_LargeBuffer_Uint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_LargeBuffer_Uint4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_LargeBuffer_Float_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_LargeBuffer_Float4_Bounds , SF_Compute);
|
2021-01-07 05:19:11 -04:00
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Uint_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Uint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Uint4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Float_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Float4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture3D_Float4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2DArray_Float4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2D_Float4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Uint_Zero , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Uint_Zero , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2DArray_Uint_Zero , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Uint , SF_Compute);
|
2021-05-11 03:24:16 -04:00
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_LargeBuffer_Uint , SF_Compute);
|
2021-01-07 05:19:11 -04:00
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Uint , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2DArray_Uint , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture3D_Float4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2D_Float4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2DArray_Float4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture3D_Uint4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2D_Uint4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2DArray_Uint4 , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture3D_Uint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2D_Uint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2DArray_Uint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Buffer_Sint4_Bounds , SF_Compute);
|
2021-05-11 03:24:16 -04:00
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_LargeBuffer_Sint4_Bounds , SF_Compute);
|
2021-01-07 05:19:11 -04:00
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_StructuredBuffer_Sint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture3D_Sint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2D_Sint4_Bounds , SF_Compute);
|
|
|
|
|
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FClearReplacementCS_Texture2DArray_Sint4_Bounds , SF_Compute);
|
2021-09-21 15:07:55 -04:00
|
|
|
|
|
|
|
|
void CreateClearReplacementShaders()
|
|
|
|
|
{
|
2023-02-17 04:18:07 -05:00
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Uint_Bounds>();
|
2021-09-21 15:07:55 -04:00
|
|
|
|
2023-02-17 04:18:07 -05:00
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Float_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Float4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_LargeBuffer_Uint_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_LargeBuffer_Float_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_LargeBuffer_Float4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Uint_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Float_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Float4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture3D_Float4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2D_Float4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2DArray_Float4_Bounds>();
|
2021-09-21 15:07:55 -04:00
|
|
|
|
|
|
|
|
// Compute shaders for clearing each resource type. No bounds checks enabled.
|
2023-02-17 04:18:07 -05:00
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Uint_Zero>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Uint_Zero>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2DArray_Uint_Zero>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Uint>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_LargeBuffer_Uint>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Uint>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2DArray_Uint>();
|
2021-09-21 15:07:55 -04:00
|
|
|
|
2023-02-17 04:18:07 -05:00
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture3D_Float4>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2D_Float4>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2DArray_Float4>();
|
2021-09-21 15:07:55 -04:00
|
|
|
|
|
|
|
|
// Used by ClearUAV_T in ClearQuad.cpp
|
2023-02-17 04:18:07 -05:00
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture3D_Uint4>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2D_Uint4>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2DArray_Uint4>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Uint4>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_LargeBuffer_Uint4>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Uint4>();
|
2021-09-21 15:07:55 -04:00
|
|
|
|
2023-02-17 04:18:07 -05:00
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Uint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_LargeBuffer_Uint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Uint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture3D_Uint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2D_Uint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2DArray_Uint4_Bounds>();
|
2021-09-21 15:07:55 -04:00
|
|
|
|
2023-02-17 04:18:07 -05:00
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Buffer_Sint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_LargeBuffer_Sint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_StructuredBuffer_Sint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture3D_Sint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2D_Sint4_Bounds>();
|
|
|
|
|
ForceInitGlobalShaderType<FClearReplacementCS_Texture2DArray_Sint4_Bounds>();
|
2021-09-21 15:07:55 -04:00
|
|
|
}
|