diff options
| author | 2021-06-02 03:02:33 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:34 -0400 | |
| commit | 79f2fe1a39120f498e915fa0c740b15dc0f09793 (patch) | |
| tree | ee1fb2edc8193295930abbf1ad157bdaf4a682d5 /src/video_core | |
| parent | buffer_cache: Reduce uniform buffer size from shader usage (diff) | |
| download | yuzu-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.cpp | 1 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_device.h | 5 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_cache.cpp | 1 |
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 | ||