[D3D12] Properly setup shareable shader storage.
[D3D12] Properly setup shareable shader storage. - Properly create shareable shader storage directory. - Log errors when failing to create shareable shader storage directory or shareable shader files.
This commit is contained in:
parent
f631b02bcf
commit
aa1c69d7b6
|
@ -202,8 +202,12 @@ void PipelineCache::InitializeShaderStorage(
|
||||||
// cost - though D3D's internal validation would possibly be enough to ensure
|
// cost - though D3D's internal validation would possibly be enough to ensure
|
||||||
// they are up to date).
|
// they are up to date).
|
||||||
auto shader_storage_shareable_root = shader_storage_root / "shareable";
|
auto shader_storage_shareable_root = shader_storage_root / "shareable";
|
||||||
if (!std::filesystem::create_directories(shader_storage_shareable_root)) {
|
if (!std::filesystem::exists(shader_storage_shareable_root)) {
|
||||||
return;
|
if (!std::filesystem::create_directories(shader_storage_shareable_root)) {
|
||||||
|
XELOGE("Failed to create shareable shader storage directory: {}",
|
||||||
|
xe::path_to_utf8(shader_storage_shareable_root));
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t logical_processor_count = xe::threading::logical_processor_count();
|
size_t logical_processor_count = xe::threading::logical_processor_count();
|
||||||
|
@ -215,10 +219,12 @@ void PipelineCache::InitializeShaderStorage(
|
||||||
// Initialize the Xenos shader storage stream.
|
// Initialize the Xenos shader storage stream.
|
||||||
uint64_t shader_storage_initialization_start =
|
uint64_t shader_storage_initialization_start =
|
||||||
xe::Clock::QueryHostTickCount();
|
xe::Clock::QueryHostTickCount();
|
||||||
shader_storage_file_ = xe::filesystem::OpenFile(
|
auto shader_storage_path =
|
||||||
shader_storage_shareable_root / fmt::format("{:08X}.xsh", title_id),
|
shader_storage_shareable_root / fmt::format("{:08X}.xsh", title_id);
|
||||||
"a+b");
|
shader_storage_file_ = xe::filesystem::OpenFile(shader_storage_path, "a+b");
|
||||||
if (!shader_storage_file_) {
|
if (!shader_storage_file_) {
|
||||||
|
XELOGE("Failed to create shareable shader: {}",
|
||||||
|
xe::path_to_utf8(shader_storage_path));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
shader_storage_file_flush_needed_ = false;
|
shader_storage_file_flush_needed_ = false;
|
||||||
|
|
Loading…
Reference in New Issue