From 2e4d1f3f54900246cce409e1edf1d647697a0ecf Mon Sep 17 00:00:00 2001 From: derrod Date: Sun, 23 Jul 2023 02:02:03 +0200 Subject: [PATCH] libobs-d3d11: Create shader cache directory when creating device --- libobs-d3d11/d3d11-subsystem.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libobs-d3d11/d3d11-subsystem.cpp b/libobs-d3d11/d3d11-subsystem.cpp index e2f9bd49a..2c70a15e6 100644 --- a/libobs-d3d11/d3d11-subsystem.cpp +++ b/libobs-d3d11/d3d11-subsystem.cpp @@ -1494,6 +1494,17 @@ static inline void LogD3DAdapters() } } +static void CreateShaderCacheDirectory() +{ + BPtr cachePath = + os_get_program_data_path_ptr("obs-studio/shader-cache"); + + if (os_mkdirs(cachePath) == MKDIR_ERROR) { + blog(LOG_WARNING, "Failed to create shader cache directory, " + "cache may not be available."); + } +} + int device_create(gs_device_t **p_device, uint32_t adapter) { gs_device *device = NULL; @@ -1503,6 +1514,7 @@ int device_create(gs_device_t **p_device, uint32_t adapter) blog(LOG_INFO, "---------------------------------"); blog(LOG_INFO, "Initializing D3D11..."); LogD3DAdapters(); + CreateShaderCacheDirectory(); device = new gs_device(adapter);