diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-11-14 15:27:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-14 15:27:27 +0100 |
commit | b6f673313104a2c223c40ae8b76068a86be0082d (patch) | |
tree | 27472ef3cde941294b60962c8f83c3ef5c95a66a /src/video_core/renderer_opengl/gl_shader_cache.cpp | |
parent | Merge pull request #3107 from lioncash/hashable (diff) | |
parent | gl_shader_cache: Enable extensions only when available (diff) | |
download | yuzu-b6f673313104a2c223c40ae8b76068a86be0082d.tar yuzu-b6f673313104a2c223c40ae8b76068a86be0082d.tar.gz yuzu-b6f673313104a2c223c40ae8b76068a86be0082d.tar.bz2 yuzu-b6f673313104a2c223c40ae8b76068a86be0082d.tar.lz yuzu-b6f673313104a2c223c40ae8b76068a86be0082d.tar.xz yuzu-b6f673313104a2c223c40ae8b76068a86be0082d.tar.zst yuzu-b6f673313104a2c223c40ae8b76068a86be0082d.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_shader_cache.cpp')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_cache.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp index 35e5214a5..04a239a39 100644 --- a/src/video_core/renderer_opengl/gl_shader_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp @@ -275,16 +275,25 @@ CachedProgram BuildShader(const Device& device, u64 unique_identifier, ProgramTy std::string source = fmt::format(R"(// {} #version 430 core #extension GL_ARB_separate_shader_objects : enable -#extension GL_ARB_shader_viewport_layer_array : enable -#extension GL_EXT_shader_image_load_formatted : enable -#extension GL_NV_gpu_shader5 : enable -#extension GL_NV_shader_thread_group : enable -#extension GL_NV_shader_thread_shuffle : enable )", GetShaderId(unique_identifier, program_type)); if (is_compute) { source += "#extension GL_ARB_compute_variable_group_size : require\n"; } + if (device.HasShaderBallot()) { + source += "#extension GL_ARB_shader_ballot : require\n"; + } + if (device.HasVertexViewportLayer()) { + source += "#extension GL_ARB_shader_viewport_layer_array : require\n"; + } + if (device.HasImageLoadFormatted()) { + source += "#extension GL_EXT_shader_image_load_formatted : require\n"; + } + if (device.HasWarpIntrinsics()) { + source += "#extension GL_NV_gpu_shader5 : require\n" + "#extension GL_NV_shader_thread_group : require\n" + "#extension GL_NV_shader_thread_shuffle : require\n"; + } source += '\n'; if (!is_compute) { |