diff --git a/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs
index ff606f331..45b118501 100644
--- a/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs
+++ b/src/Ryujinx.Ava/UI/ViewModels/SettingsViewModel.cs
@@ -215,17 +215,11 @@ namespace Ryujinx.Ava.UI.ViewModels
                 _graphicsBackendIndex = value;
                 OnPropertyChanged();
                 OnPropertyChanged(nameof(IsVulkanSelected));
-                OnPropertyChanged(nameof(IsSpirVAvailable));
+                OnPropertyChanged(nameof(IsOpenGLSelected));
             }
         }
         
-        public bool SpirVCapability()
-        {
-            bool isSpirVSupported = HwCapabilitiesFacade.SupportsSpirV;
-            return isSpirVSupported;
-        }
-
-        public bool IsSpirVAvailable => !IsVulkanSelected && SpirVCapability();
+        public bool IsOpenGLSelected => !IsVulkanSelected;
         
         public int ScalingFilter
         {
diff --git a/src/Ryujinx.Ava/UI/Views/Settings/SettingsGraphicsView.axaml b/src/Ryujinx.Ava/UI/Views/Settings/SettingsGraphicsView.axaml
index 42d29948d..1e3bb4ba4 100644
--- a/src/Ryujinx.Ava/UI/Views/Settings/SettingsGraphicsView.axaml
+++ b/src/Ryujinx.Ava/UI/Views/Settings/SettingsGraphicsView.axaml
@@ -64,7 +64,7 @@
                             ToolTip.Tip="{locale:Locale ShaderCacheToggleTooltip}">
                             <TextBlock Text="{locale:Locale SettingsTabGraphicsEnableShaderCache}" />
                         </CheckBox>
-                        <CheckBox IsChecked="{Binding EnableOGLSpirV}" IsVisible="{Binding IsSpirVAvailable}"
+                        <CheckBox IsChecked="{Binding EnableOGLSpirV}" IsVisible="{Binding IsOpenGLSelected}"
                                   ToolTip.Tip="{locale:Locale OGLSpirVTooltip}">
                             <TextBlock Text="{locale:Locale SettingsTabGraphicsEnableOGLSpirV}" />
                         </CheckBox>
diff --git a/src/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs b/src/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
index d2a06ac0e..bd72ca1cc 100644
--- a/src/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
+++ b/src/Ryujinx.Graphics.Gpu/Shader/ShaderCache.cs
@@ -78,6 +78,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
         private readonly ShaderCacheHashTable _graphicsShaderCache;
         private readonly DiskCacheHostStorage _diskCacheHostStorage;
         private readonly BackgroundDiskCacheWriter _cacheWriter;
+        private static bool _isSpirVCapable;
 
         /// <summary>
         /// Event for signalling shader cache loading progress.
@@ -101,6 +102,8 @@ namespace Ryujinx.Graphics.Gpu.Shader
 
             string diskCacheTitleId = GetDiskCachePath();
 
+            _isSpirVCapable = OpenGlSpirVCapable();
+
             _computeShaderCache = new ComputeShaderCacheHashTable();
             _graphicsShaderCache = new ShaderCacheHashTable();
             _diskCacheHostStorage = new DiskCacheHostStorage(diskCacheTitleId);
@@ -718,6 +721,27 @@ namespace Ryujinx.Graphics.Gpu.Shader
             };
         }
 
+        
+        /// <summary>
+        /// Checks if SpirV is available on OpenGL
+        /// </summary>
+        /// <remarks>
+        /// True or false
+        /// </remarks>
+        private bool OpenGlSpirVCapable()
+        {
+            bool spirV = _context.Capabilities.SupportsSpirV;
+            if (!spirV)
+            {
+                Logger.Warning?.PrintMsg(LogClass.Gpu, $"Spir-V Not Available on OpenGL for your GPU");
+            }
+            else
+            {
+                Logger.Warning?.PrintMsg(LogClass.Gpu, $"Spir-V !Available! on OpenGL for your GPU");
+            }
+            return spirV;
+        }
+        
         /// <summary>
         /// Creates shader translation options with the requested graphics API and flags.
         /// The shader language is choosen based on the current configuration and graphics API.
@@ -727,7 +751,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
         /// <returns>Translation options</returns>
         private static TranslationOptions CreateTranslationOptions(TargetApi api, TranslationFlags flags)
         {
-            TargetLanguage lang = (GraphicsConfig.EnableSpirvCompilationOnVulkan && api == TargetApi.Vulkan) || (GraphicsConfig.EnableOGLSpirV && api == TargetApi.OpenGL)
+            TargetLanguage lang = (GraphicsConfig.EnableSpirvCompilationOnVulkan && api == TargetApi.Vulkan) || (GraphicsConfig.EnableOGLSpirV && _isSpirVCapable)
                 ? TargetLanguage.Spirv
                 : TargetLanguage.Glsl;