diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-01-25 20:48:40 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-01-25 20:48:58 +0300 |
commit | 2637f94358329e1a8fce59dd036c577459e5a847 (patch) | |
tree | b8a434b788565700694b4722e2f2a9cf6f2d5a41 /source/blender/draw/engines | |
parent | 3e2591c83ed6c4eb8adecfe06c976717f161cd23 (diff) |
GLShader: Fix buffer overflow caused by workaround uniform
In order to use a workaround builtin uniform, we need to count it
just like other uniforms and give it some space in the name buffer.
This also fixes extensions being added after the uniform declaration.
All `#extension` directives are now part of the gl backend.
Diffstat (limited to 'source/blender/draw/engines')
4 files changed, 2 insertions, 9 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_shaders.c b/source/blender/draw/engines/eevee/eevee_shaders.c index e56097df6b7..c4108969c99 100644 --- a/source/blender/draw/engines/eevee/eevee_shaders.c +++ b/source/blender/draw/engines/eevee/eevee_shaders.c @@ -887,10 +887,7 @@ struct GPUShader *EEVEE_shaders_volumes_integration_sh_get() datatoc_volumetric_geom_glsl, datatoc_volumetric_integration_frag_glsl, e_data.lib, - USE_VOLUME_OPTI ? "#extension GL_ARB_shader_image_load_store: enable\n" - "#extension GL_ARB_shading_language_420pack: enable\n" - "#define USE_VOLUME_OPTI\n" SHADER_DEFINES : - SHADER_DEFINES); + USE_VOLUME_OPTI ? "#define USE_VOLUME_OPTI\n" SHADER_DEFINES : SHADER_DEFINES); } return e_data.volumetric_integration_sh; } diff --git a/source/blender/draw/engines/overlay/overlay_shader.c b/source/blender/draw/engines/overlay/overlay_shader.c index 9899dce5df6..4c09349c35d 100644 --- a/source/blender/draw/engines/overlay/overlay_shader.c +++ b/source/blender/draw/engines/overlay/overlay_shader.c @@ -385,7 +385,7 @@ GPUShader *OVERLAY_shader_armature_sphere(bool use_outline) const DRWContextState *draw_ctx = DRW_context_state_get(); const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg]; OVERLAY_Shaders *sh_data = &e_data.sh_data[draw_ctx->sh_cfg]; - const char extensions[] = "#extension GL_ARB_conservative_depth : enable\n"; + const char extensions[] = ""; if (use_outline && !sh_data->armature_sphere_outline) { sh_data->armature_sphere_outline = GPU_shader_create_from_arrays({ .vert = (const char *[]){sh_cfg->lib, diff --git a/source/blender/draw/engines/workbench/shaders/workbench_shadow_caps_geom.glsl b/source/blender/draw/engines/workbench/shaders/workbench_shadow_caps_geom.glsl index 09bafb8ff11..1f172de1e12 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_shadow_caps_geom.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_shadow_caps_geom.glsl @@ -1,5 +1,3 @@ -#extension GL_ARB_gpu_shader5 : enable - #ifdef GL_ARB_gpu_shader5 # define USE_INVOC_EXT #endif diff --git a/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl b/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl index 2c9190bfcf4..b49ade13034 100644 --- a/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl +++ b/source/blender/draw/engines/workbench/shaders/workbench_shadow_geom.glsl @@ -1,5 +1,3 @@ -#extension GL_ARB_gpu_shader5 : enable - #ifdef GL_ARB_gpu_shader5 # define USE_INVOC_EXT #endif |