diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp
index 6bf3b8171..e94d2dec0 100644
--- a/src/citra_qt/configuration/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -239,6 +239,7 @@ void Config::ReadUtilityValues() {
     Settings::values.dump_textures = ReadSetting("dump_textures", false).toBool();
     Settings::values.custom_textures = ReadSetting("custom_textures", false).toBool();
     Settings::values.preload_textures = ReadSetting("preload_textures", false).toBool();
+    Settings::values.use_disk_shader_cache = ReadSetting("use_disk_shader_cache", false).toBool();
 
     qt_config->endGroup();
 }
@@ -713,6 +714,7 @@ void Config::SaveUtilityValues() {
     WriteSetting("dump_textures", Settings::values.dump_textures, false);
     WriteSetting("custom_textures", Settings::values.custom_textures, false);
     WriteSetting("preload_textures", Settings::values.preload_textures, false);
+    WriteSetting("use_disk_shader_cache", Settings::values.use_disk_shader_cache, false);
 
     qt_config->endGroup();
 }
diff --git a/src/core/settings.cpp b/src/core/settings.cpp
index 81a6d7db6..164ffaf73 100644
--- a/src/core/settings.cpp
+++ b/src/core/settings.cpp
@@ -28,6 +28,7 @@ void Apply() {
     VideoCore::g_shader_jit_enabled = values.use_shader_jit;
     VideoCore::g_hw_shader_enabled = values.use_hw_shader;
     VideoCore::g_hw_shader_accurate_mul = values.shaders_accurate_mul;
+    VideoCore::g_use_disk_shader_cache = values.use_disk_shader_cache;
 
     if (VideoCore::g_renderer) {
         VideoCore::g_renderer->UpdateCurrentFramebufferLayout();
diff --git a/src/core/settings.h b/src/core/settings.h
index d7d351a4c..42f123933 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -141,6 +141,7 @@ struct Values {
     bool use_gles;
     bool use_hw_renderer;
     bool use_hw_shader;
+    bool use_disk_shader_cache;
     bool shaders_accurate_mul;
     bool use_shader_jit;
     u16 resolution_factor;