Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-01-25 20:51:46 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-01-25 20:51:46 +0300
commitbe4f593758c5913705b43fa092ee0294b4e1bb0a (patch)
tree3177ea0dbbfe7fd7626335369ae00883f4ebad1f /source/blender/gpu/opengl/gl_shader.cc
parenta9d9ec0586d0a48a2c9bd363db8985fee84ab584 (diff)
parentc89d6b095301e7f7870233091c178fdc78ba54ae (diff)
Merge branch 'master' into tmp-workbench-shader-create-infos
Diffstat (limited to 'source/blender/gpu/opengl/gl_shader.cc')
-rw-r--r--source/blender/gpu/opengl/gl_shader.cc21
1 files changed, 17 insertions, 4 deletions
diff --git a/source/blender/gpu/opengl/gl_shader.cc b/source/blender/gpu/opengl/gl_shader.cc
index 062758d4d0e..0d4f1d15f39 100644
--- a/source/blender/gpu/opengl/gl_shader.cc
+++ b/source/blender/gpu/opengl/gl_shader.cc
@@ -585,10 +585,6 @@ static char *glsl_patch_default_get()
STR_CONCAT(patch, slen, "#define GPU_ARB_shader_draw_parameters\n");
STR_CONCAT(patch, slen, "#define gpu_BaseInstance gl_BaseInstanceARB\n");
}
- else {
- /* Fallback: Emulate base instance using a uniform. */
- STR_CONCAT(patch, slen, "uniform int gpu_BaseInstance\n");
- }
if (GLContext::geometry_shader_invocations) {
STR_CONCAT(patch, slen, "#extension GL_ARB_gpu_shader5 : enable\n");
STR_CONCAT(patch, slen, "#define GPU_ARB_gpu_shader5\n");
@@ -597,6 +593,23 @@ static char *glsl_patch_default_get()
STR_CONCAT(patch, slen, "#extension GL_ARB_texture_cube_map_array : enable\n");
STR_CONCAT(patch, slen, "#define GPU_ARB_texture_cube_map_array\n");
}
+ if (GLEW_ARB_conservative_depth) {
+ STR_CONCAT(patch, slen, "#extension GL_ARB_conservative_depth : enable\n");
+ }
+ if (GPU_shader_image_load_store_support()) {
+ STR_CONCAT(patch, slen, "#extension GL_ARB_shader_image_load_store: enable\n");
+ STR_CONCAT(patch, slen, "#extension GL_ARB_shading_language_420pack: enable\n");
+ }
+
+ if (!GLContext::shader_draw_parameters_support) {
+ /* Fallback: Emulate base instance using a uniform. */
+ STR_CONCAT(patch, slen, "uniform int gpu_BaseInstance;\n");
+ }
+
+ /* Fallbacks. */
+ if (!GLContext::shader_draw_parameters_support) {
+ STR_CONCAT(patch, slen, "uniform int gpu_BaseInstance;\n");
+ }
/* Vulkan GLSL compat. */
STR_CONCAT(patch, slen, "#define gpu_InstanceIndex (gl_InstanceID + gpu_BaseInstance)\n");