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:
@@ -1690,6 +1690,14 @@ Variant RendererSceneCull::instance_geometry_get_shader_parameter_default_value(
|
||||
return Variant();
|
||||
}
|
||||
|
||||
void RendererSceneCull::mesh_generate_pipelines(RID p_mesh, bool p_background_compilation) {
|
||||
scene_render->mesh_generate_pipelines(p_mesh, p_background_compilation);
|
||||
}
|
||||
|
||||
uint32_t RendererSceneCull::get_pipeline_compilations(RS::PipelineSource p_source) {
|
||||
return scene_render->get_pipeline_compilations(p_source);
|
||||
}
|
||||
|
||||
void RendererSceneCull::instance_geometry_get_shader_parameter_list(RID p_instance, List<PropertyInfo> *p_parameters) const {
|
||||
const Instance *instance = const_cast<RendererSceneCull *>(this)->instance_owner.get_or_null(p_instance);
|
||||
ERR_FAIL_NULL(instance);
|
||||
|
||||
Reference in New Issue
Block a user