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:
authorJeroen Bakker <jbakker>2020-06-11 16:34:16 +0300
committerJeroen Bakker <jeroen@blender.org>2020-06-11 16:34:35 +0300
commited00b5def64c10a5a243399aeda383c30eb886ff (patch)
tree68de42c131a673a08430a745ab3f9b31449c61e9 /source/blender/gpu
parent9385d887d17c529059d9f60008dc08fcec1d295f (diff)
Fix T77657: NVIDIA Quadro FX4800 crash on startup
Limit support for `GLEW_ARB_base_instance` to OpenGL 4.0 and higher. NVIDIA Quadro FX 4800 (TeraScale) report that they support GLEW_ARB_base_instance, but the driver does not support `GLEW_ARB_draw_indirect` as it has an OpenGL3 context what also matches the minimum needed requirements. We use `GLEW_ARB_draw_indirect` as a target for `glMapBuffer(Range)` what is part of the OpenGL 4 API. So better disable it when we don't have an OpenGL4 context. Note: fix should be ported to Blender 2.83 LTS Reviewed By: Clément Foucault Differential Revision: https://developer.blender.org/D7994
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/intern/gpu_extensions.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index 469abefca68..ab55fcfb1e0 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -304,7 +304,14 @@ void gpu_extensions_init(void)
}
}
- GG.glew_arb_base_instance_is_supported = GLEW_ARB_base_instance;
+ /* Limit support for GLEW_ARB_base_instance to OpenGL 4.0 and higher. NVIDIA Quadro FX 4800
+ * (TeraScale) report that they support GLEW_ARB_base_instance, but the driver does not support
+ * GLEW_ARB_draw_indirect as it has an OpenGL3 context what also matches the minimum needed
+ * requirements.
+ *
+ * We use it as a target for glMapBuffer(Range) what is part of the OpenGL 4 API. So better
+ * disable it when we don't have an OpenGL4 context (See T77657) */
+ GG.glew_arb_base_instance_is_supported = GLEW_ARB_base_instance && GLEW_VERSION_4_0;
GG.glew_arb_texture_cube_map_array_is_supported = GLEW_ARB_texture_cube_map_array;
gpu_detect_mip_render_workaround();