diff options
| author | 2019-11-07 20:07:45 -0300 | |
|---|---|---|
| committer | 2019-11-07 20:08:42 -0300 | |
| commit | 3ab05146985f09994fcb98388b22a31f9fbea5bf (patch) | |
| tree | ee10483797b6c4fd8bdbdff6f458c5074f5dbb62 | |
| parent | gl_shader_decompiler: Add safe fallbacks when ARB_shader_ballot is not available (diff) | |
| download | yuzu-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.cpp | 20 |
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) { |