summaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-06-02 03:02:33 -0300
committerGravatar ameerj2021-07-22 21:51:34 -0400
commit79f2fe1a39120f498e915fa0c740b15dc0f09793 (patch)
treeee1fb2edc8193295930abbf1ad157bdaf4a682d5 /src/video_core
parentbuffer_cache: Reduce uniform buffer size from shader usage (diff)
downloadyuzu-79f2fe1a39120f498e915fa0c740b15dc0f09793.tar.gz
yuzu-79f2fe1a39120f498e915fa0c740b15dc0f09793.tar.xz
yuzu-79f2fe1a39120f498e915fa0c740b15dc0f09793.zip
glasm: Use ARB_derivative_control conditionally
Diffstat (limited to 'src/video_core')
-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.cpp1
3 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 01da2bb57..3f7929f9e 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -154,6 +154,7 @@ Device::Device() {
154 has_precise_bug = TestPreciseBug(); 154 has_precise_bug = TestPreciseBug();
155 has_broken_texture_view_formats = is_amd || (!is_linux && is_intel); 155 has_broken_texture_view_formats = is_amd || (!is_linux && is_intel);
156 has_nv_viewport_array2 = GLAD_GL_NV_viewport_array2; 156 has_nv_viewport_array2 = GLAD_GL_NV_viewport_array2;
157 has_derivative_control = GLAD_GL_ARB_derivative_control;
157 has_vertex_buffer_unified_memory = GLAD_GL_NV_vertex_buffer_unified_memory; 158 has_vertex_buffer_unified_memory = GLAD_GL_NV_vertex_buffer_unified_memory;
158 has_debugging_tool_attached = IsDebugToolAttached(extensions); 159 has_debugging_tool_attached = IsDebugToolAttached(extensions);
159 has_depth_buffer_float = HasExtension(extensions, "GL_NV_depth_buffer_float"); 160 has_depth_buffer_float = HasExtension(extensions, "GL_NV_depth_buffer_float");
diff --git a/src/video_core/renderer_opengl/gl_device.h b/src/video_core/renderer_opengl/gl_device.h
index d67f5693c..1ffd24883 100644
--- a/src/video_core/renderer_opengl/gl_device.h
+++ b/src/video_core/renderer_opengl/gl_device.h
@@ -96,6 +96,10 @@ public:
96 return has_nv_viewport_array2; 96 return has_nv_viewport_array2;
97 } 97 }
98 98
99 bool HasDerivativeControl() const {
100 return has_derivative_control;
101 }
102
99 bool HasDebuggingToolAttached() const { 103 bool HasDebuggingToolAttached() const {
100 return has_debugging_tool_attached; 104 return has_debugging_tool_attached;
101 } 105 }
@@ -141,6 +145,7 @@ private:
141 bool has_broken_texture_view_formats{}; 145 bool has_broken_texture_view_formats{};
142 bool has_fast_buffer_sub_data{}; 146 bool has_fast_buffer_sub_data{};
143 bool has_nv_viewport_array2{}; 147 bool has_nv_viewport_array2{};
148 bool has_derivative_control{};
144 bool has_debugging_tool_attached{}; 149 bool has_debugging_tool_attached{};
145 bool use_assembly_shaders{}; 150 bool use_assembly_shaders{};
146 bool use_asynchronous_shaders{}; 151 bool use_asynchronous_shaders{};
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index 6ea7c0ee8..bdffac4b2 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -274,6 +274,7 @@ ShaderCache::ShaderCache(RasterizerOpenGL& rasterizer_, Core::Frontend::EmuWindo
274 .support_typeless_image_loads = device.HasImageLoadFormatted(), 274 .support_typeless_image_loads = device.HasImageLoadFormatted(),
275 .support_demote_to_helper_invocation = false, 275 .support_demote_to_helper_invocation = false,
276 .support_int64_atomics = false, 276 .support_int64_atomics = false,
277 .support_derivative_control = device.HasDerivativeControl(),
277 278
278 .warp_size_potentially_larger_than_guest = true, 279 .warp_size_potentially_larger_than_guest = true,
279 280