From e2c6daf7eff6e0b7e2e8d967e95a9ad56e948231 Mon Sep 17 00:00:00 2001 From: Dario Date: Fri, 15 Mar 2024 14:13:31 -0300 Subject: Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile. - Implements asynchronous transfer queues from PR #87590. - Adds ubershaders that can run with specialization constants specified as push constants. - Pipelines with specialization constants can compile in the background. - Added monitoring for pipeline compilations. - Materials and shaders can now be created asynchronously on background threads. - Meshes that are loaded on background threads can also compile pipelines as part of the loading process. --- doc/classes/Performance.xml | 17 ++++++++++++++++- doc/classes/RenderingServer.xml | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/classes/Performance.xml b/doc/classes/Performance.xml index 6bb71932dd..66078d2642 100644 --- a/doc/classes/Performance.xml +++ b/doc/classes/Performance.xml @@ -224,7 +224,22 @@ Number of active navigation obstacles in the [NavigationServer3D]. - + + Number of pipeline compilations that were triggered by the 2D canvas renderer. + + + Number of pipeline compilations that were triggered by loading meshes. These compilations will show up as longer loading times the first time a user runs the game and the pipeline is required. + + + Number of pipeline compilations that were triggered by building the surface cache before rendering the scene. These compilations will show up as a stutter when loading an scene the first time a user runs the game and the pipeline is required. + + + Number of pipeline compilations that were triggered while drawing the scene. These compilations will show up as stutters during gameplay the first time a user runs the game and the pipeline is required. + + + Number of pipeline compilations that were triggered to optimize the current scene. These compilations are done in the background and should not cause any stutters whatsoever. + + Represents the size of the [enum Monitor] enum. diff --git a/doc/classes/RenderingServer.xml b/doc/classes/RenderingServer.xml index 91af70b565..b73315219b 100644 --- a/doc/classes/RenderingServer.xml +++ b/doc/classes/RenderingServer.xml @@ -5687,6 +5687,39 @@ Video memory used (in bytes). When using the Forward+ or mobile rendering backends, this is always greater than the sum of [constant RENDERING_INFO_TEXTURE_MEM_USED] and [constant RENDERING_INFO_BUFFER_MEM_USED], since there is miscellaneous data not accounted for by those two metrics. When using the GL Compatibility backend, this is equal to the sum of [constant RENDERING_INFO_TEXTURE_MEM_USED] and [constant RENDERING_INFO_BUFFER_MEM_USED]. + + Number of pipeline compilations that were triggered by the 2D canvas renderer. + + + Number of pipeline compilations that were triggered by loading meshes. These compilations will show up as longer loading times the first time a user runs the game and the pipeline is required. + + + Number of pipeline compilations that were triggered by building the surface cache before rendering the scene. These compilations will show up as a stutter when loading an scene the first time a user runs the game and the pipeline is required. + + + Number of pipeline compilations that were triggered while drawing the scene. These compilations will show up as stutters during gameplay the first time a user runs the game and the pipeline is required. + + + Number of pipeline compilations that were triggered to optimize the current scene. These compilations are done in the background and should not cause any stutters whatsoever. + + + Pipeline compilation that was triggered by the 2D canvas renderer. + + + Pipeline compilation that was triggered by loading a mesh. + + + Pipeline compilation that was triggered by building the surface cache before rendering the scene. + + + Pipeline compilation that was triggered while drawing the scene. + + + Pipeline compilation that was triggered to optimize the current scene. + + + Represents the size of the [enum PipelineSource] enum. + -- cgit v1.2.3