diff options
author | Jeroen Bakker <jbakker> | 2020-06-11 16:34:16 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-06-11 16:34:35 +0300 |
commit | ed00b5def64c10a5a243399aeda383c30eb886ff (patch) | |
tree | 68de42c131a673a08430a745ab3f9b31449c61e9 | |
parent | 9385d887d17c529059d9f60008dc08fcec1d295f (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
-rw-r--r-- | source/blender/gpu/intern/gpu_extensions.c | 9 |
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(); |