Add toggle for enabling or disabling RenderingDevice's pipeline cache.
This commit is contained in:
parent
655e93d584
commit
ecaafa6001
|
@ -1538,6 +1538,7 @@ ProjectSettings::ProjectSettings() {
|
||||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/staging_buffer/block_size_kb", PROPERTY_HINT_RANGE, "4,2048,1,or_greater"), 256);
|
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/staging_buffer/block_size_kb", PROPERTY_HINT_RANGE, "4,2048,1,or_greater"), 256);
|
||||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/staging_buffer/max_size_mb", PROPERTY_HINT_RANGE, "1,1024,1,or_greater"), 128);
|
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/staging_buffer/max_size_mb", PROPERTY_HINT_RANGE, "1,1024,1,or_greater"), 128);
|
||||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/staging_buffer/texture_upload_region_size_px", PROPERTY_HINT_RANGE, "1,256,1,or_greater"), 64);
|
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/staging_buffer/texture_upload_region_size_px", PROPERTY_HINT_RANGE, "1,256,1,or_greater"), 64);
|
||||||
|
GLOBAL_DEF_RST(PropertyInfo(Variant::BOOL, "rendering/rendering_device/pipeline_cache/enable"), true);
|
||||||
GLOBAL_DEF(PropertyInfo(Variant::FLOAT, "rendering/rendering_device/pipeline_cache/save_chunk_size_mb", PROPERTY_HINT_RANGE, "0.000001,64.0,0.001,or_greater"), 3.0);
|
GLOBAL_DEF(PropertyInfo(Variant::FLOAT, "rendering/rendering_device/pipeline_cache/save_chunk_size_mb", PROPERTY_HINT_RANGE, "0.000001,64.0,0.001,or_greater"), 3.0);
|
||||||
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/vulkan/max_descriptors_per_pool", PROPERTY_HINT_RANGE, "1,256,1,or_greater"), 64);
|
GLOBAL_DEF(PropertyInfo(Variant::INT, "rendering/rendering_device/vulkan/max_descriptors_per_pool", PROPERTY_HINT_RANGE, "1,256,1,or_greater"), 64);
|
||||||
|
|
||||||
|
|
|
@ -2727,6 +2727,10 @@
|
||||||
<member name="rendering/rendering_device/driver.windows" type="String" setter="" getter="">
|
<member name="rendering/rendering_device/driver.windows" type="String" setter="" getter="">
|
||||||
Windows override for [member rendering/rendering_device/driver].
|
Windows override for [member rendering/rendering_device/driver].
|
||||||
</member>
|
</member>
|
||||||
|
<member name="rendering/rendering_device/pipeline_cache/enable" type="bool" setter="" getter="" default="true">
|
||||||
|
Enable the pipeline cache that is saved to disk if the graphics API supports it.
|
||||||
|
[b]Note:[/b] This property is unable to control the pipeline caching the GPU driver itself does. Only turn this off along with deleting the contents of the driver's cache if you wish to simulate the experience a user will get when starting the game for the first time.
|
||||||
|
</member>
|
||||||
<member name="rendering/rendering_device/pipeline_cache/save_chunk_size_mb" type="float" setter="" getter="" default="3.0">
|
<member name="rendering/rendering_device/pipeline_cache/save_chunk_size_mb" type="float" setter="" getter="" default="3.0">
|
||||||
Determines at which interval pipeline cache is saved to disk. The lower the value, the more often it is saved.
|
Determines at which interval pipeline cache is saved to disk. The lower the value, the more often it is saved.
|
||||||
</member>
|
</member>
|
||||||
|
|
|
@ -5089,7 +5089,8 @@ Error RenderingDevice::initialize(RenderingContextDriver *p_context, DisplayServ
|
||||||
draw_list = nullptr;
|
draw_list = nullptr;
|
||||||
compute_list = nullptr;
|
compute_list = nullptr;
|
||||||
|
|
||||||
if (main_instance) {
|
bool project_pipeline_cache_enable = GLOBAL_GET("rendering/rendering_device/pipeline_cache/enable");
|
||||||
|
if (main_instance && project_pipeline_cache_enable) {
|
||||||
// Only the instance that is not a local device and is also the singleton is allowed to manage a pipeline cache.
|
// Only the instance that is not a local device and is also the singleton is allowed to manage a pipeline cache.
|
||||||
pipeline_cache_file_path = vformat("user://vulkan/pipelines.%s.%s",
|
pipeline_cache_file_path = vformat("user://vulkan/pipelines.%s.%s",
|
||||||
OS::get_singleton()->get_current_rendering_method(),
|
OS::get_singleton()->get_current_rendering_method(),
|
||||||
|
|
Loading…
Reference in New Issue