Repository navigation
Closed
Description
flutter/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.h
Lines 285 to 306 in c180b42
| #define FOR_EACH_IMPELLER_EXT_PROC(PROC) \ | |
| PROC(DebugMessageControlKHR); \ | |
| PROC(DebugMessageCallbackKHR); \ | |
| PROC(DiscardFramebufferEXT); \ | |
| PROC(FramebufferTexture2DMultisampleEXT); \ | |
| PROC(PushDebugGroupKHR); \ | |
| PROC(PopDebugGroupKHR); \ | |
| PROC(ObjectLabelKHR); \ | |
| PROC(RenderbufferStorageMultisampleEXT); \ | |
| PROC(GenQueriesEXT); \ | |
| PROC(DeleteQueriesEXT); \ | |
| PROC(GetQueryObjectui64vEXT); \ | |
| PROC(BeginQueryEXT); \ | |
| PROC(EndQueryEXT); \ | |
| PROC(GetQueryObjectuivEXT); \ | |
| PROC(BlitFramebufferANGLE); \ | |
| PROC(VertexAttribDivisor); \ | |
| PROC(VertexAttribDivisorEXT); \ | |
| PROC(DrawArraysInstanced); \ | |
| PROC(DrawArraysInstancedEXT); \ | |
| PROC(DrawElementsInstanced); \ | |
| PROC(DrawElementsInstancedEXT); |
The VertexAttribDivisor, DrawArraysInstanced, and DrawElementsInstanced GLES functions were added to proc_table_gles in #187313. These are GLES3 functions not available on GLES2. But they are listed in FOR_EACH_IMPELLER_EXT_PROC, which is used for both GLES2 and GLES3. They should be moved to FOR_EACH_IMPELLER_GLES3_PROC instead.
Currently, on GLES2, FOR_EACH_IMPELLER_EXT_PROC makes these functions incorrectly resolve as available.
- When running on a non-unopt build, this results in GL errors like "
glVertexAttribDivisorINVALID_OPERATION" on every draw call. (Noticed in [Impeller] [Windows] BackdropFilter erases content drawn before it when offscreen MSAA is unavailable (OpenGL ES 2.0, D3D11 feature level 10_0) #192918). The error is harmless as long as instanced rendering is not used (which is only available with Flutter GPU).- If trying to use instanced rendering, these draws will render nothing.
- When running on an unopt build, the GL error is fatal and the app crashes when trying to draw anything.
Metadata
Metadata
Assignees
Labels
No labels
Activity
Move GLES3 instancing API entry points to FOR_EACH_IMPELLER_GLES3_PROC (
[windows] Add OpenGL golden test against ANGLE at D3D11 feature level…
github-actions commentedon Oct 28, 2026
This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of
flutter doctor -vand a minimal reproduction of the issue.Move GLES3 instancing API entry points to FOR_EACH_IMPELLER_GLES3_PROC (