You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
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.
This commit is contained in:
@@ -281,6 +281,16 @@ uint64_t RenderingServerDefault::get_rendering_info(RenderingInfo p_info) {
|
||||
return RSG::viewport->get_total_primitives_drawn();
|
||||
} else if (p_info == RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME) {
|
||||
return RSG::viewport->get_total_draw_calls_used();
|
||||
} else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_CANVAS) {
|
||||
return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_CANVAS);
|
||||
} else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_MESH) {
|
||||
return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_MESH) + RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_MESH);
|
||||
} else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_SURFACE) {
|
||||
return RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_SURFACE);
|
||||
} else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_DRAW) {
|
||||
return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_DRAW) + RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_DRAW);
|
||||
} else if (p_info == RENDERING_INFO_PIPELINE_COMPILATIONS_SPECIALIZATION) {
|
||||
return RSG::canvas_render->get_pipeline_compilations(PIPELINE_SOURCE_SPECIALIZATION) + RSG::scene->get_pipeline_compilations(PIPELINE_SOURCE_SPECIALIZATION);
|
||||
}
|
||||
return RSG::utilities->get_rendering_info(p_info);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user