From b9652949b0c70b4254f6e7aba0b0d360f4ce5fed Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Tue, 19 Apr 2022 17:15:54 +0200 Subject: [PATCH] Minor improvements --- Content/Shaders/GlobalSurfaceAtlas.flax | 4 ++-- Source/Engine/Graphics/RenderBuffers.h | 3 +++ Source/Engine/Graphics/RenderTask.cpp | 5 +++-- Source/Engine/Level/Scene/SceneRendering.cpp | 11 +++-------- Source/Engine/Profiler/ProfilerCPU.h | 3 +++ 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Content/Shaders/GlobalSurfaceAtlas.flax b/Content/Shaders/GlobalSurfaceAtlas.flax index 038465b36..900052f79 100644 --- a/Content/Shaders/GlobalSurfaceAtlas.flax +++ b/Content/Shaders/GlobalSurfaceAtlas.flax @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da4ac86323889084590fe12325b00acae1294dbdf2e28077f3af5a93ea7a7162 -size 7125 +oid sha256:7444088469d72ca5bd6f3507726e4ba68a2f550fcd78cfbd5c7a7b2fbee5e982 +size 7113 diff --git a/Source/Engine/Graphics/RenderBuffers.h b/Source/Engine/Graphics/RenderBuffers.h index c0fc51808..149b4c12b 100644 --- a/Source/Engine/Graphics/RenderBuffers.h +++ b/Source/Engine/Graphics/RenderBuffers.h @@ -26,6 +26,9 @@ API_CLASS() class FLAXENGINE_API RenderBuffers : public ScriptingObject { DECLARE_SCRIPTING_TYPE(RenderBuffers); + /// + /// The custom rendering state. + /// class CustomBuffer : public Object { public: diff --git a/Source/Engine/Graphics/RenderTask.cpp b/Source/Engine/Graphics/RenderTask.cpp index 23ac08591..5d4b09b9e 100644 --- a/Source/Engine/Graphics/RenderTask.cpp +++ b/Source/Engine/Graphics/RenderTask.cpp @@ -289,7 +289,8 @@ void SceneRenderTask::OnCollectDrawCalls(RenderContext& renderContext) { if (_customActorsScene == nullptr) _customActorsScene = New(); - _customActorsScene->Clear(); + else + _customActorsScene->Clear(); for (Actor* a : CustomActors) AddActorToSceneRendering(_customActorsScene, a); _customActorsScene->Draw(renderContext); @@ -414,7 +415,7 @@ void SceneRenderTask::OnEnd(GPUContext* context) // Swap matrices View.PrevView = View.View; View.PrevProjection = View.Projection; - Matrix::Multiply(View.PrevView, View.PrevProjection, View.PrevViewProjection); + View.PrevViewProjection = View.ViewProjection(); } bool SceneRenderTask::Resize(int32 width, int32 height) diff --git a/Source/Engine/Level/Scene/SceneRendering.cpp b/Source/Engine/Level/Scene/SceneRendering.cpp index 72acf14e9..740a87a91 100644 --- a/Source/Engine/Level/Scene/SceneRendering.cpp +++ b/Source/Engine/Level/Scene/SceneRendering.cpp @@ -25,10 +25,7 @@ void SceneRendering::Draw(RenderContext& renderContext) if (view.RenderLayersMask.Mask & e.LayerMask && (e.NoCulling || frustum.Intersects(e.Bounds)) && e.Actor->GetStaticFlags() & view.StaticFlagsMask) { #if SCENE_RENDERING_USE_PROFILER - PROFILE_CPU(); -#if TRACY_ENABLE - ___tracy_scoped_zone.Name(*e.Actor->GetName(), e.Actor->GetName().Length()); -#endif + PROFILE_CPU_ACTOR(e.Actor); #endif e.Actor->Draw(renderContext); } @@ -42,10 +39,7 @@ void SceneRendering::Draw(RenderContext& renderContext) if (view.RenderLayersMask.Mask & e.LayerMask && (e.NoCulling || frustum.Intersects(e.Bounds))) { #if SCENE_RENDERING_USE_PROFILER - PROFILE_CPU(); -#if TRACY_ENABLE - ___tracy_scoped_zone.Name(*e.Actor->GetName(), e.Actor->GetName().Length()); -#endif + PROFILE_CPU_ACTOR(e.Actor); #endif e.Actor->Draw(renderContext); } @@ -88,6 +82,7 @@ void SceneRendering::Clear() int32 SceneRendering::AddActor(Actor* a) { int32 key = 0; + // TODO: track removedCount and skip searching for free entry if there is none for (; key < Actors.Count(); key++) { if (Actors[key].Actor == nullptr) diff --git a/Source/Engine/Profiler/ProfilerCPU.h b/Source/Engine/Profiler/ProfilerCPU.h index b9e070bb0..e4d40a444 100644 --- a/Source/Engine/Profiler/ProfilerCPU.h +++ b/Source/Engine/Profiler/ProfilerCPU.h @@ -403,9 +403,11 @@ struct TIsPODType #ifdef TRACY_ENABLE #define PROFILE_CPU_SRC_LOC(srcLoc) tracy::ScopedZone ___tracy_scoped_zone( (tracy::SourceLocationData*)&(srcLoc) ); ScopeProfileBlockCPU ProfileBlockCPU((srcLoc).name) #define PROFILE_CPU_ASSET(asset) ZoneScoped; const StringView __tracy_asset_name((asset)->GetPath()); ZoneName(*__tracy_asset_name, __tracy_asset_name.Length()) +#define PROFILE_CPU_ACTOR(actor) ZoneScoped; const StringView __tracy_actor_name((actor)->GetName()); ZoneName(*__tracy_actor_name, __tracy_actor_name.Length()) #else #define PROFILE_CPU_SRC_LOC(srcLoc) ScopeProfileBlockCPU ProfileBlockCPU((srcLoc).name) #define PROFILE_CPU_ASSET(asset) +#define PROFILE_CPU_ACTOR(actor) #endif #else @@ -415,5 +417,6 @@ struct TIsPODType #define PROFILE_CPU_NAMED(name) #define PROFILE_CPU_SRC_LOC(srcLoc) #define PROFILE_CPU_ASSET(asset) +#define PROFILE_CPU_ACTOR(actor) #endif