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
2 changed files with 6 additions and 4 deletions
|
@ -3828,7 +3828,9 @@ bool RenderingDeviceDriverVulkan::pipeline_cache_create(const Vector<uint8_t> &p
|
||||||
|
|
||||||
// Parse.
|
// 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.");
|
WARN_PRINT("Invalid/corrupt pipelines cache.");
|
||||||
} else {
|
} else {
|
||||||
const PipelineCacheHeader *loaded_header = reinterpret_cast<const PipelineCacheHeader *>(p_data.ptr());
|
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) {
|
if (main_instance) {
|
||||||
// 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 = "user://vulkan/pipelines";
|
pipeline_cache_file_path = vformat("user://vulkan/pipelines.%s.%s",
|
||||||
pipeline_cache_file_path += "." + device.name.validate_filename().replace(" ", "_").to_lower();
|
OS::get_singleton()->get_current_rendering_method(),
|
||||||
|
device.name.validate_filename().replace(" ", "_").to_lower());
|
||||||
if (Engine::get_singleton()->is_editor_hint()) {
|
if (Engine::get_singleton()->is_editor_hint()) {
|
||||||
pipeline_cache_file_path += ".editor";
|
pipeline_cache_file_path += ".editor";
|
||||||
}
|
}
|
||||||
|
|
||||||
pipeline_cache_file_path += ".cache";
|
pipeline_cache_file_path += ".cache";
|
||||||
|
|
||||||
Vector<uint8_t> cache_data = _load_pipeline_cache();
|
Vector<uint8_t> cache_data = _load_pipeline_cache();
|
||||||
|
|
Loading…
Reference in a new issue