summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2019-11-07 20:07:45 -0300
committerGravatar ReinUsesLisp2019-11-07 20:08:42 -0300
commit3ab05146985f09994fcb98388b22a31f9fbea5bf (patch)
treeee10483797b6c4fd8bdbdff6f458c5074f5dbb62
parentgl_shader_decompiler: Add safe fallbacks when ARB_shader_ballot is not available (diff)
downloadyuzu-3ab05146985f09994fcb98388b22a31f9fbea5bf.tar.gz
yuzu-3ab05146985f09994fcb98388b22a31f9fbea5bf.tar.xz
yuzu-3ab05146985f09994fcb98388b22a31f9fbea5bf.zip
gl_shader_cache: Enable extensions only when available
Silence GLSL compilation warnings.
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index a287b5ee1..21bac11ec 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -275,17 +275,25 @@ CachedProgram BuildShader(const Device& device, u64 unique_identifier, ProgramTy
275 std::string source = fmt::format(R"(// {} 275 std::string source = fmt::format(R"(// {}
276#version 430 core 276#version 430 core
277#extension GL_ARB_separate_shader_objects : enable 277#extension GL_ARB_separate_shader_objects : enable
278#extension GL_ARB_shader_ballot : enable
279#extension GL_ARB_shader_viewport_layer_array : enable
280#extension GL_EXT_shader_image_load_formatted : enable
281#extension GL_NV_gpu_shader5 : enable
282#extension GL_NV_shader_thread_group : enable
283#extension GL_NV_shader_thread_shuffle : enable
284)", 278)",
285 GetShaderId(unique_identifier, program_type)); 279 GetShaderId(unique_identifier, program_type));
286 if (is_compute) { 280 if (is_compute) {
287 source += "#extension GL_ARB_compute_variable_group_size : require\n"; 281 source += "#extension GL_ARB_compute_variable_group_size : require\n";
288 } 282 }
283 if (device.HasShaderBallot()) {
284 source += "#extension GL_ARB_shader_ballot : require\n";
285 }
286 if (device.HasVertexViewportLayer()) {
287 source += "#extension GL_ARB_shader_viewport_layer_array : require\n";
288 }
289 if (device.HasImageLoadFormatted()) {
290 source += "#extension GL_EXT_shader_image_load_formatted : require\n";
291 }
292 if (device.HasWarpIntrinsics()) {
293 source += "#extension GL_NV_gpu_shader5 : require\n"
294 "#extension GL_NV_shader_thread_group : require\n"
295 "#extension GL_NV_shader_thread_shuffle : require\n";
296 }
289 source += '\n'; 297 source += '\n';
290 298
291 if (!is_compute) { 299 if (!is_compute) {