Browse Source
gl_shader_cache: Enable extensions only when available
Silence GLSL compilation warnings.
pull/15/merge
ReinUsesLisp
6 years ago
No known key found for this signature in database
GPG Key ID: 2DFC508897B39CFE
1 changed files with
14 additions and
6 deletions
-
src/video_core/renderer_opengl/gl_shader_cache.cpp
|
|
|
@ -275,17 +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_ballot : 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) { |
|
|
|
|