Vulkan: Don't warn about pipelines cache if missing
It used to warn when opening a new project because no cache pre-exists, which isn't particularly helpful. Also include the rendering method in the cache filename, as it differs between Forward+ and Mobile for a same GPU.
This commit is contained in:
parent
f9ebd84b5a
commit
e74f4ea115
|
@ -3828,7 +3828,9 @@ bool RenderingDeviceDriverVulkan::pipeline_cache_create(const Vector<uint8_t> &p
|
|||
|
||||
// Parse.
|
||||
{
|
||||
if (p_data.size() <= (int)sizeof(PipelineCacheHeader)) {
|
||||
if (p_data.is_empty()) {
|
||||
// No pre-existing cache, just create it.
|
||||
} else if (p_data.size() <= (int)sizeof(PipelineCacheHeader)) {
|
||||
WARN_PRINT("Invalid/corrupt pipelines cache.");
|
||||
} else {
|
||||
const PipelineCacheHeader *loaded_header = reinterpret_cast<const PipelineCacheHeader *>(p_data.ptr());
|
||||
|
|
|
@ -5091,12 +5091,12 @@ Error RenderingDevice::initialize(RenderingContextDriver *p_context, DisplayServ
|
|||
|
||||
if (main_instance) {
|
||||
// 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 = "user://vulkan/pipelines";
|
||||
pipeline_cache_file_path += "." + device.name.validate_filename().replace(" ", "_").to_lower();
|
||||
pipeline_cache_file_path = vformat("user://vulkan/pipelines.%s.%s",
|
||||
OS::get_singleton()->get_current_rendering_method(),
|
||||
device.name.validate_filename().replace(" ", "_").to_lower());
|
||||
if (Engine::get_singleton()->is_editor_hint()) {
|
||||
pipeline_cache_file_path += ".editor";
|
||||
}
|
||||
|
||||
pipeline_cache_file_path += ".cache";
|
||||
|
||||
Vector<uint8_t> cache_data = _load_pipeline_cache();
|
||||
|
|
Loading…
Reference in New Issue