Changing all ClearPass to SlowClearPass
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
// If you want to clear an attachment you should
|
||||
// use the LoadStoreAction on your pass slot.
|
||||
"Name": "SlowClearPassTemplate",
|
||||
"PassClass": "ClearPass",
|
||||
"PassClass": "SlowClearPass",
|
||||
"Slots": [
|
||||
{
|
||||
"Name": "ClearInputOutput",
|
||||
|
||||
+8
-8
@@ -17,21 +17,21 @@ namespace AZ
|
||||
//! Only use this for debug purposes and edge cases
|
||||
//! The correct and efficient way to clear a pass is through the LoadStoreAction on the pass slot
|
||||
//! This will clear a given image attachment to the specified clear value.
|
||||
class ClearPass
|
||||
class SlowClearPass
|
||||
: public RenderPass
|
||||
{
|
||||
AZ_RPI_PASS(ClearPass);
|
||||
AZ_RPI_PASS(SlowClearPass);
|
||||
|
||||
public:
|
||||
AZ_RTTI(ClearPass, "{31CBAD6C-108F-4F3F-B498-ED968DFCFCE2}", RenderPass);
|
||||
AZ_CLASS_ALLOCATOR(ClearPass, SystemAllocator, 0);
|
||||
virtual ~ClearPass() = default;
|
||||
AZ_RTTI(SlowClearPass, "{31CBAD6C-108F-4F3F-B498-ED968DFCFCE2}", RenderPass);
|
||||
AZ_CLASS_ALLOCATOR(SlowClearPass, SystemAllocator, 0);
|
||||
virtual ~SlowClearPass() = default;
|
||||
|
||||
//! Creates a ClearPass
|
||||
static Ptr<ClearPass> Create(const PassDescriptor& descriptor);
|
||||
//! Creates a SlowClearPass
|
||||
static Ptr<SlowClearPass> Create(const PassDescriptor& descriptor);
|
||||
|
||||
protected:
|
||||
ClearPass(const PassDescriptor& descriptor);
|
||||
SlowClearPass(const PassDescriptor& descriptor);
|
||||
void InitializeInternal() override;
|
||||
|
||||
private:
|
||||
+8
-8
@@ -14,23 +14,23 @@ namespace AZ
|
||||
{
|
||||
namespace RPI
|
||||
{
|
||||
//! Custom data for the ClearPass. Should be specified in the PassRequest.
|
||||
struct ClearPassData
|
||||
//! Custom data for the SlowClearPass. Should be specified in the PassRequest.
|
||||
struct SlowClearPassData
|
||||
: public RenderPassData
|
||||
{
|
||||
AZ_RTTI(ClearPassData, "{5F2C24A4-62D0-4E60-91EC-C207C10D15C6}", RenderPassData);
|
||||
AZ_CLASS_ALLOCATOR(ClearPassData, SystemAllocator, 0);
|
||||
AZ_RTTI(SlowClearPassData, "{5F2C24A4-62D0-4E60-91EC-C207C10D15C6}", RenderPassData);
|
||||
AZ_CLASS_ALLOCATOR(SlowClearPassData, SystemAllocator, 0);
|
||||
|
||||
ClearPassData() = default;
|
||||
virtual ~ClearPassData() = default;
|
||||
SlowClearPassData() = default;
|
||||
virtual ~SlowClearPassData() = default;
|
||||
|
||||
static void Reflect(ReflectContext* context)
|
||||
{
|
||||
if (auto* serializeContext = azrtti_cast<SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<ClearPassData, RenderPassData>()
|
||||
serializeContext->Class<SlowClearPassData, RenderPassData>()
|
||||
->Version(0)
|
||||
->Field("ClearValue", &ClearPassData::m_clearValue)
|
||||
->Field("ClearValue", &SlowClearPassData::m_clearValue)
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -9,14 +9,14 @@
|
||||
#include <AtomCore/Instance/InstanceDatabase.h>
|
||||
#include <AtomCore/std/containers/vector_set.h>
|
||||
|
||||
#include <Atom/RPI.Public/Pass/ClearPass.h>
|
||||
#include <Atom/RPI.Public/Pass/SlowClearPass.h>
|
||||
#include <Atom/RPI.Public/Pass/ParentPass.h>
|
||||
#include <Atom/RPI.Public/Pass/PassAttachment.h>
|
||||
#include <Atom/RPI.Public/Pass/PassDefines.h>
|
||||
#include <Atom/RPI.Public/Pass/PassSystemInterface.h>
|
||||
#include <Atom/RPI.Public/RenderPipeline.h>
|
||||
|
||||
#include <Atom/RPI.Reflect/Pass/ClearPassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/SlowClearPassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/PassName.h>
|
||||
#include <Atom/RPI.Reflect/Pass/PassRequest.h>
|
||||
|
||||
@@ -231,7 +231,7 @@ namespace AZ
|
||||
clearRequest.m_connections[0].m_attachmentRef.m_attachment = binding.m_name;
|
||||
|
||||
// Set the pass clear value to the clear value of the attachment binding
|
||||
ClearPassData* clearData = static_cast<ClearPassData*>(clearRequest.m_passData.get());
|
||||
SlowClearPassData* clearData = static_cast<SlowClearPassData*>(clearRequest.m_passData.get());
|
||||
clearData->m_clearValue = binding.m_unifiedScopeDesc.m_loadStoreAction.m_clearValue;
|
||||
|
||||
// Create and add the pass
|
||||
@@ -248,7 +248,7 @@ namespace AZ
|
||||
{
|
||||
PassRequest clearRequest;
|
||||
clearRequest.m_templateName = Name("SlowClearPassTemplate");
|
||||
clearRequest.m_passData = AZStd::make_shared<ClearPassData>();
|
||||
clearRequest.m_passData = AZStd::make_shared<SlowClearPassData>();
|
||||
clearRequest.m_connections.push_back();
|
||||
clearRequest.m_connections[0].m_localSlot = Name("ClearInputOutput");
|
||||
clearRequest.m_connections[0].m_attachmentRef.m_pass = Name("Parent");
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
#include <AzCore/Interface/Interface.h>
|
||||
|
||||
#include <Atom/RPI.Public/Pass/ClearPass.h>
|
||||
#include <Atom/RPI.Public/Pass/ComputePass.h>
|
||||
#include <Atom/RPI.Public/Pass/CopyPass.h>
|
||||
#include <Atom/RPI.Public/Pass/FullscreenTrianglePass.h>
|
||||
@@ -20,6 +19,7 @@
|
||||
#include <Atom/RPI.Public/Pass/PassFilter.h>
|
||||
#include <Atom/RPI.Public/Pass/RasterPass.h>
|
||||
#include <Atom/RPI.Public/Pass/MSAAResolvePass.h>
|
||||
#include <Atom/RPI.Public/Pass/SlowClearPass.h>
|
||||
#include <Atom/RPI.Public/Pass/Specific/MSAAResolveFullScreenPass.h>
|
||||
#include <Atom/RPI.Public/Pass/Specific/EnvironmentCubeMapPass.h>
|
||||
#include <Atom/RPI.Public/Pass/Specific/RenderToTexturePass.h>
|
||||
@@ -61,7 +61,7 @@ namespace AZ
|
||||
{
|
||||
AddPassCreator(Name("ParentPass"), &ParentPass::Create);
|
||||
AddPassCreator(Name("RasterPass"), &RasterPass::Create);
|
||||
AddPassCreator(Name("ClearPass"), &ClearPass::Create);
|
||||
AddPassCreator(Name("SlowClearPass"), &SlowClearPass::Create);
|
||||
AddPassCreator(Name("CopyPass"), &CopyPass::Create);
|
||||
AddPassCreator(Name("FullScreenTriangle"), &FullscreenTrianglePass::Create);
|
||||
AddPassCreator(Name("ComputePass"), &ComputePass::Create);
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
#include <Atom/RPI.Public/Pass/Specific/SwapChainPass.h>
|
||||
#include <Atom/RPI.Public/RenderPipeline.h>
|
||||
|
||||
#include <Atom/RPI.Reflect/Pass/ClearPassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/ComputePassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/CopyPassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/DownsampleMipChainPassData.h>
|
||||
@@ -40,6 +39,7 @@
|
||||
#include <Atom/RPI.Reflect/Pass/PassTemplate.h>
|
||||
#include <Atom/RPI.Reflect/Pass/RasterPassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/RenderPassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/SlowClearPassData.h>
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
@@ -68,7 +68,7 @@ namespace AZ
|
||||
PassSlot::Reflect(context);
|
||||
|
||||
PassData::Reflect(context);
|
||||
ClearPassData::Reflect(context);
|
||||
SlowClearPassData::Reflect(context);
|
||||
CopyPassData::Reflect(context);
|
||||
RenderPassData::Reflect(context);
|
||||
ComputePassData::Reflect(context);
|
||||
|
||||
+8
-8
@@ -6,37 +6,37 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Atom/RPI.Public/Pass/ClearPass.h>
|
||||
#include <Atom/RPI.Public/Pass/SlowClearPass.h>
|
||||
#include <Atom/RPI.Public/Pass/PassUtils.h>
|
||||
|
||||
#include <Atom/RPI.Reflect/Pass/ClearPassData.h>
|
||||
#include <Atom/RPI.Reflect/Pass/SlowClearPassData.h>
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
namespace RPI
|
||||
{
|
||||
Ptr<ClearPass> ClearPass::Create(const PassDescriptor& descriptor)
|
||||
Ptr<SlowClearPass> SlowClearPass::Create(const PassDescriptor& descriptor)
|
||||
{
|
||||
Ptr<ClearPass> pass = aznew ClearPass(descriptor);
|
||||
Ptr<SlowClearPass> pass = aznew SlowClearPass(descriptor);
|
||||
return pass;
|
||||
}
|
||||
|
||||
ClearPass::ClearPass(const PassDescriptor& descriptor)
|
||||
SlowClearPass::SlowClearPass(const PassDescriptor& descriptor)
|
||||
: RenderPass(descriptor)
|
||||
{
|
||||
const ClearPassData* passData = PassUtils::GetPassData<ClearPassData>(descriptor);
|
||||
const SlowClearPassData* passData = PassUtils::GetPassData<SlowClearPassData>(descriptor);
|
||||
if (passData != nullptr)
|
||||
{
|
||||
m_clearValue = passData->m_clearValue;
|
||||
}
|
||||
}
|
||||
|
||||
void ClearPass::InitializeInternal()
|
||||
void SlowClearPass::InitializeInternal()
|
||||
{
|
||||
RenderPass::InitializeInternal();
|
||||
|
||||
// Set clear value
|
||||
AZ_Assert(GetInputOutputCount() > 0, "ClearPass: Missing InputOutput binding!");
|
||||
AZ_Assert(GetInputOutputCount() > 0, "SlowClearPass: Missing InputOutput binding!");
|
||||
RPI::PassAttachmentBinding& binding = GetInputOutputBinding(0);
|
||||
binding.m_unifiedScopeDesc.m_loadStoreAction.m_clearValue = m_clearValue;
|
||||
}
|
||||
@@ -57,7 +57,6 @@ set(FILES
|
||||
Include/Atom/RPI.Public/Model/ModelSystem.h
|
||||
Include/Atom/RPI.Public/Model/UvStreamTangentBitmask.h
|
||||
Include/Atom/RPI.Public/Pass/AttachmentReadback.h
|
||||
Include/Atom/RPI.Public/Pass/ClearPass.h
|
||||
Include/Atom/RPI.Public/Pass/ComputePass.h
|
||||
Include/Atom/RPI.Public/Pass/CopyPass.h
|
||||
Include/Atom/RPI.Public/Pass/FullscreenTrianglePass.h
|
||||
@@ -74,6 +73,7 @@ set(FILES
|
||||
Include/Atom/RPI.Public/Pass/RasterPass.h
|
||||
Include/Atom/RPI.Public/Pass/RenderPass.h
|
||||
Include/Atom/RPI.Public/Pass/MSAAResolvePass.h
|
||||
Include/Atom/RPI.Public/Pass/SlowClearPass.h
|
||||
Include/Atom/RPI.Public/Pass/Specific/DownsampleMipChainPass.h
|
||||
Include/Atom/RPI.Public/Pass/Specific/ImageAttachmentPreviewPass.h
|
||||
Include/Atom/RPI.Public/Pass/Specific/EnvironmentCubeMapPass.h
|
||||
@@ -136,7 +136,6 @@ set(FILES
|
||||
Source/RPI.Public/Model/ModelSystem.cpp
|
||||
Source/RPI.Public/Model/UvStreamTangentBitmask.cpp
|
||||
Source/RPI.Public/Pass/AttachmentReadback.cpp
|
||||
Source/RPI.Public/Pass/ClearPass.cpp
|
||||
Source/RPI.Public/Pass/ComputePass.cpp
|
||||
Source/RPI.Public/Pass/CopyPass.cpp
|
||||
Source/RPI.Public/Pass/FullscreenTrianglePass.cpp
|
||||
@@ -151,6 +150,7 @@ set(FILES
|
||||
Source/RPI.Public/Pass/RasterPass.cpp
|
||||
Source/RPI.Public/Pass/RenderPass.cpp
|
||||
Source/RPI.Public/Pass/MSAAResolvePass.cpp
|
||||
Source/RPI.Public/Pass/SlowClearPass.cpp
|
||||
Source/RPI.Public/Pass/Specific/DownsampleMipChainPass.cpp
|
||||
Source/RPI.Public/Pass/Specific/ImageAttachmentPreviewPass.cpp
|
||||
Source/RPI.Public/Pass/Specific/EnvironmentCubeMapPass.cpp
|
||||
|
||||
@@ -62,7 +62,6 @@ set(FILES
|
||||
Include/Atom/RPI.Reflect/Material/ShaderCollection.h
|
||||
Include/Atom/RPI.Reflect/Material/MaterialFunctor.h
|
||||
Include/Atom/RPI.Reflect/Material/MaterialVersionUpdate.h
|
||||
Include/Atom/RPI.Reflect/Pass/ClearPassData.h
|
||||
Include/Atom/RPI.Reflect/Pass/ComputePassData.h
|
||||
Include/Atom/RPI.Reflect/Pass/CopyPassData.h
|
||||
Include/Atom/RPI.Reflect/Pass/DownsampleMipChainPassData.h
|
||||
@@ -76,6 +75,7 @@ set(FILES
|
||||
Include/Atom/RPI.Reflect/Pass/PassTemplate.h
|
||||
Include/Atom/RPI.Reflect/Pass/RasterPassData.h
|
||||
Include/Atom/RPI.Reflect/Pass/RenderPassData.h
|
||||
Include/Atom/RPI.Reflect/Pass/SlowClearPassData.h
|
||||
Include/Atom/RPI.Reflect/Shader/ShaderCommonTypes.h
|
||||
Include/Atom/RPI.Reflect/Shader/ShaderAsset.h
|
||||
Include/Atom/RPI.Reflect/Shader/ShaderAssetCreator.h
|
||||
|
||||
Reference in New Issue
Block a user