2
0
Эх сурвалжийг харах

ATOM-16063 Remove SetShaderResourceGroupCallback in scene and update scene srg handling (#215)

Removed all the code use Scene::SetShaderResourceGroupCallback() function

Signed-off-by: Qing Tao <[email protected]>
Qing Tao 3 жил өмнө
parent
commit
4b46cbbe01

+ 1 - 27
Gem/Code/Source/MultiSceneExampleComponent.cpp

@@ -88,29 +88,6 @@ namespace AtomSampleViewer
         sceneDesc.m_featureProcessorNames.push_back("AZ::Render::ProjectedShadowFeatureProcessor");
         m_scene = RPI::Scene::CreateScene(sceneDesc);
 
-        // Setup scene srg modification callback (to push per-frame values to the shaders)
-        RPI::ShaderResourceGroupCallback srgCallback = [this](RPI::ShaderResourceGroup* srg)
-        {
-            if (srg == nullptr)
-            {
-                return;
-            }
-
-            RHI::ShaderInputNameIndex timeIndex = "m_time";
-            RHI::ShaderInputNameIndex deltaTimeIndex = "m_deltaTime";
-
-            srg->SetConstant(timeIndex, aznumeric_cast<float>(m_simulateTime));
-            srg->SetConstant(deltaTimeIndex, m_deltaTime);
-
-            bool needCompile = timeIndex.IsValid() || deltaTimeIndex.IsValid();
-
-            if (needCompile)
-            {
-                srg->Compile();
-            }
-        };
-        m_scene->SetShaderResourceGroupCallback(srgCallback);
-
         // Link our RPI::Scene to the AzFramework::Scene
         m_frameworkScene->SetSubsystem(m_scene);
 
@@ -369,13 +346,10 @@ namespace AtomSampleViewer
     }
 
     // AZ::TickBus::Handler overrides ...
-    void SecondWindowedScene::OnTick(float deltaTime, AZ::ScriptTimePoint timePoint)
+    void SecondWindowedScene::OnTick([[maybe_unused]] float deltaTime, [[maybe_unused]] AZ::ScriptTimePoint timePoint)
     {
         using namespace AZ;
 
-        m_deltaTime = deltaTime;
-        m_simulateTime = timePoint.GetSeconds();
-
         // Move the camera a bit each frame
         // Note: view space in this scene is right-handed, Z-up, Y-forward
         const float dynamicOffsetScale = 4.0f;

+ 0 - 2
Gem/Code/Source/MultiSceneExampleComponent.h

@@ -95,8 +95,6 @@ namespace AtomSampleViewer
         DirectionalLightHandle m_directionalLightHandle;
         ReflectinoProbeHandle m_reflectionProbeHandle;
 
-        double m_simulateTime = 0.0f;
-        float m_deltaTime = 0.0f;
         MultiSceneExampleComponent* m_parent = nullptr;
         const AZ::Vector3 m_cameraOffset{ 0.0f, -4.0f, 2.0f };
         AZ::Vector3 m_dynamicCameraOffset{ 3.73f, 0.0f, 0.0f };

+ 0 - 2
Gem/Code/Source/MultiViewSingleSceneAuxGeomExampleComponent.cpp

@@ -53,8 +53,6 @@ namespace AtomSampleViewer
         AZ::RPI::RenderPipelinePtr m_pipeline;
         AZ::Entity* m_cameraEntity = nullptr;
         AZ::RPI::ViewPtr m_view;
-        double m_simulateTime = 0.0f;
-        float m_deltaTime = 0.0f;
         MultiViewSingleSceneAuxGeomExampleComponent* m_parent;
 
     public:

+ 0 - 31
Gem/Code/Source/SampleComponentManager.cpp

@@ -468,9 +468,6 @@ namespace AtomSampleViewer
 
     void SampleComponentManager::OnTick(float deltaTime, [[maybe_unused]] AZ::ScriptTimePoint time)
     {
-        m_simulateTime += deltaTime;
-        m_deltaTime = deltaTime;
-
         m_imGuiFrameTimer.PushValue(deltaTime);
 
         bool screenshotRequest = false;
@@ -1463,34 +1460,6 @@ namespace AtomSampleViewer
         m_rpiScene = RPI::Scene::CreateScene(sceneDesc);
         m_rpiScene->EnableAllFeatureProcessors();
 
-        // Setup scene srg modification callback.
-        RPI::ShaderResourceGroupCallback callback = [this](RPI::ShaderResourceGroup* srg)
-        {
-            if (srg == nullptr)
-            {
-                return;
-            }
-            bool needCompile = false;
-            RHI::ShaderInputConstantIndex timeIndex = srg->FindShaderInputConstantIndex(Name{ "m_time" });
-            if (timeIndex.IsValid())
-            {
-                srg->SetConstant(timeIndex, m_simulateTime);
-                needCompile = true;
-            }
-            RHI::ShaderInputConstantIndex deltaTimeIndex = srg->FindShaderInputConstantIndex(Name{ "m_deltaTime" });
-            if (deltaTimeIndex.IsValid())
-            {
-                srg->SetConstant(deltaTimeIndex, m_deltaTime);
-                needCompile = true;
-            }
-
-            if (needCompile)
-            {
-                srg->Compile();
-            }
-        };
-        m_rpiScene->SetShaderResourceGroupCallback(callback);
-
         // Bind m_rpiScene to the GameEntityContext's AzFramework::Scene so the RPI Scene can be found by the entity context
         auto sceneSystem = AzFramework::SceneSystemInterface::Get();
         AZ_Assert(sceneSystem, "SampleComponentManager requires an implementation of the scene system.");

+ 0 - 2
Gem/Code/Source/SampleComponentManager.h

@@ -251,8 +251,6 @@ namespace AtomSampleViewer
 
         // Scene and some variables for RPI samples
         AZ::RPI::ScenePtr m_rpiScene;
-        float m_simulateTime = 0;
-        float m_deltaTime = 0.016f;
 
         // number of MSAA samples, initialized in Activate() and can vary by platform
         int m_numMSAASamples = 0;

+ 1 - 2
ShaderLib/scenesrg.srgi

@@ -15,6 +15,5 @@ partial ShaderResourceGroup SceneSrg : SRG_PerScene
 };
 
 #define AZ_COLLECTING_PARTIAL_SRGS
-#include <Shaders/ShaderResourceGroups/SceneSrg.azsli>
-#include <Atom/Feature/Common/Assets/ShaderResourceGroups/SceneSrg.azsli>
+#include <Atom/Feature/Common/Assets/ShaderResourceGroups/SceneSrgAll.azsli>
 #undef AZ_COLLECTING_PARTIAL_SRGS

+ 0 - 18
Shaders/ShaderResourceGroups/SceneSrg.azsli

@@ -1,18 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project.
- * For complete copyright and license terms please see the LICENSE at the root of this distribution.
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#ifndef AZ_COLLECTING_PARTIAL_SRGS
-#error Do not include this file directly. Include the main .srgi file instead.
-#endif
-
-partial ShaderResourceGroup SceneSrg
-{
-    float m_time;
-    float m_deltaTime;
-}
-

+ 0 - 1
atomsampleviewer_asset_files.cmake

@@ -168,7 +168,6 @@ set(FILES
     Shaders/RHI/TrianglesConstantBuffer.shader
     Shaders/RootConstantsExample/ColorMesh.azsl
     Shaders/RootConstantsExample/ColorMesh.shader
-    Shaders/ShaderResourceGroups/SceneSrg.azsli
     Shaders/StreamingImageExample/Image3d.azsl
     Shaders/StreamingImageExample/Image3d.shader
     Shaders/StreamingImageExample/ImageMips.azsl