summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-06-13 06:05:19 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:38 +0200
commit5e7b2b9661bf685c3950d7c4065d0d35b488f95c (patch)
tree957dc64090b0e376604322e7d801fff4fa46abf5 /src/video_core/renderer_opengl
parentglsl: Implement legacy varyings (diff)
downloadyuzu-5e7b2b9661bf685c3950d7c4065d0d35b488f95c.tar
yuzu-5e7b2b9661bf685c3950d7c4065d0d35b488f95c.tar.gz
yuzu-5e7b2b9661bf685c3950d7c4065d0d35b488f95c.tar.bz2
yuzu-5e7b2b9661bf685c3950d7c4065d0d35b488f95c.tar.lz
yuzu-5e7b2b9661bf685c3950d7c4065d0d35b488f95c.tar.xz
yuzu-5e7b2b9661bf685c3950d7c4065d0d35b488f95c.tar.zst
yuzu-5e7b2b9661bf685c3950d7c4065d0d35b488f95c.zip
Diffstat (limited to 'src/video_core/renderer_opengl')
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_device.h5
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp2
3 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 20ea42cff..bf08a6d93 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -160,6 +160,7 @@ Device::Device() {
has_depth_buffer_float = HasExtension(extensions, "GL_NV_depth_buffer_float");
has_nv_gpu_shader_5 = GLAD_GL_NV_gpu_shader5;
has_amd_shader_half_float = GLAD_GL_AMD_gpu_shader_half_float;
+ has_sparse_texture_2 = GLAD_GL_ARB_sparse_texture2;
warp_size_potentially_larger_than_guest = !is_nvidia && !is_intel;
// At the moment of writing this, only Nvidia's driver optimizes BufferSubData on exclusive
diff --git a/src/video_core/renderer_opengl/gl_device.h b/src/video_core/renderer_opengl/gl_device.h
index ff0ff2b08..0b59c9df0 100644
--- a/src/video_core/renderer_opengl/gl_device.h
+++ b/src/video_core/renderer_opengl/gl_device.h
@@ -128,6 +128,10 @@ public:
return has_amd_shader_half_float;
}
+ bool HasSparseTexture2() const {
+ return has_sparse_texture_2;
+ }
+
bool IsWarpSizePotentiallyLargerThanGuest() const {
return warp_size_potentially_larger_than_guest;
}
@@ -165,6 +169,7 @@ private:
bool has_depth_buffer_float{};
bool has_nv_gpu_shader_5{};
bool has_amd_shader_half_float{};
+ bool has_sparse_texture_2{};
bool warp_size_potentially_larger_than_guest{};
};
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index 884739aec..3d59d34d7 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -193,6 +193,8 @@ ShaderCache::ShaderCache(RasterizerOpenGL& rasterizer_, Core::Frontend::EmuWindo
.support_gl_amd_gpu_shader_half_float = device.HasAmdShaderHalfFloat(),
.support_gl_texture_shadow_lod = device.HasTextureShadowLod(),
.support_gl_warp_intrinsics = false,
+ .support_gl_variable_aoffi = device.HasVariableAoffi(),
+ .support_gl_sparse_textures = device.HasSparseTexture2(),
.warp_size_potentially_larger_than_guest = device.IsWarpSizePotentiallyLargerThanGuest(),