[Impeller] Use glVertexAttribDivisor on GLES3 and glVertexAttribDivisorEXT on GLES2 with the extension#187313
Conversation
There was a problem hiding this comment.
Code Review
This pull request adds support for the standard VertexAttribDivisor in the GLES backend of Impeller, falling back to VertexAttribDivisorEXT if the standard version is unavailable. It also ensures VertexAttribDivisorEXT is reset if the GL_EXT_instanced_arrays extension is not present, and includes corresponding unit tests to verify this behavior. There are no review comments, and I have no additional feedback to provide.
|
In const bool hardware_instanced = instanced && //
gl.DrawArraysInstancedEXT.IsAvailable() &&
gl.DrawElementsInstancedEXT.IsAvailable() &&
gl.VertexAttribDivisorEXT.IsAvailable();... and would need to incorporate Also, should we be giving this same treatment to |
|
Yes - Updated this to check for the |
…orEXT on GLES2 with the extension OpenGL ES 3.0 includes support for glVertexAttribDivisor. The glVertexAttribDivisorEXT API is available on OpenGL ES 2.0 devices with the GL_EXT_instanced_arrays extension. GLES3 devices may be able to resolve a glVertexAttribDivisorEXT function that is not actually implemented. This PR uses the glVertexAttribDivisor API if available and otherwise falls back to glVertexAttribDivisorEXT. See flutter#186653
1806afa to
6560dc5
Compare
flutter/flutter@54e199a...701665b 2026-06-02 [email protected] Roll Skia from c97e939eb5c9 to 279b17fe9fc1 (16 revisions) (flutter/flutter#187425) 2026-06-02 [email protected] [Flutter GPU] Add block-compressed texture format support (BC, ETC2, ASTC LDR) (flutter/flutter#187281) 2026-06-02 [email protected] [Impeller] Allow attaching specific texture mip levels and slices (flutter/flutter#187066) 2026-06-02 [email protected] [Impeller] Fix GLES command submission status before context is current (flutter/flutter#187293) 2026-06-02 [email protected] Roll Dart SDK from 3cdc25e8ffe9 to d39850bf4a01 (9 revisions) (flutter/flutter#187409) 2026-06-01 [email protected] [Impeller] Use glVertexAttribDivisor on GLES3 and glVertexAttribDivisorEXT on GLES2 with the extension (flutter/flutter#187313) 2026-06-01 [email protected] [Android] Add Javadoc documentation to TextInputChannel (flutter/flutter#186018) 2026-06-01 [email protected] Read FLTEnableWideGamut from Dart bundle (flutter/flutter#186509) 2026-06-01 [email protected] [flutter_tools] Remove obsolete AndroidX console warning during Gradle builds (flutter/flutter#186077) 2026-06-01 [email protected] [skia] Update gni file list name hsw -> ml3 (flutter/flutter#184892) 2026-06-01 [email protected] [web] Always sync slider input attrs regardless of gesture mode (flutter/flutter#187217) 2026-06-01 [email protected] [flutter_driver] Don't throw when stderr is unavailable on web (flutter/flutter#187190) 2026-06-01 [email protected] Remove unused code in `FlutterPluginUtils.kt` (flutter/flutter#187012) 2026-06-01 [email protected] [flutter_tools] Fix `flutter drive --chrome-binary` being ignored on web (flutter/flutter#185481) 2026-06-01 [email protected] Eager failure when building and no XCode build settings (flutter/flutter#184726) 2026-06-01 [email protected] Fix Windows Korean IME caret position during composition (flutter/flutter#186353) 2026-06-01 [email protected] iOS: update provisioning profile for 2026-2027 cert (flutter/flutter#187280) 2026-06-01 [email protected] Sync CHANGELOG.md from stable (flutter/flutter#187380) 2026-06-01 [email protected] Reland "Move dart-lang/ai to a top level third party dependency in engine (#187268)" (flutter/flutter#187378) 2026-06-01 [email protected] Add vector_math to Framework triage (flutter/flutter#187389) 2026-06-01 [email protected] Roll Packages from e930ced to f5d50ca (4 revisions) (flutter/flutter#187381) 2026-06-01 [email protected] [flutter_tools] Reject archive entries that escape into a sibling directory by name prefix (#185794) (flutter/flutter#186647) 2026-06-01 [email protected] [flutter_tools] Fix widget_preview unawaited async write race condition (flutter/flutter#187177) 2026-06-01 [email protected] Roll pub packages (flutter/flutter#187375) 2026-06-01 [email protected] Roll Skia from 0aee4675e0ad to c97e939eb5c9 (7 revisions) (flutter/flutter#187371) 2026-06-01 [email protected] docs: Stack.clipBehavior = Clip.none does not extend hit testing (#160787) (flutter/flutter#186643) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…r#11822) flutter/flutter@54e199a...701665b 2026-06-02 [email protected] Roll Skia from c97e939eb5c9 to 279b17fe9fc1 (16 revisions) (flutter/flutter#187425) 2026-06-02 [email protected] [Flutter GPU] Add block-compressed texture format support (BC, ETC2, ASTC LDR) (flutter/flutter#187281) 2026-06-02 [email protected] [Impeller] Allow attaching specific texture mip levels and slices (flutter/flutter#187066) 2026-06-02 [email protected] [Impeller] Fix GLES command submission status before context is current (flutter/flutter#187293) 2026-06-02 [email protected] Roll Dart SDK from 3cdc25e8ffe9 to d39850bf4a01 (9 revisions) (flutter/flutter#187409) 2026-06-01 [email protected] [Impeller] Use glVertexAttribDivisor on GLES3 and glVertexAttribDivisorEXT on GLES2 with the extension (flutter/flutter#187313) 2026-06-01 [email protected] [Android] Add Javadoc documentation to TextInputChannel (flutter/flutter#186018) 2026-06-01 [email protected] Read FLTEnableWideGamut from Dart bundle (flutter/flutter#186509) 2026-06-01 [email protected] [flutter_tools] Remove obsolete AndroidX console warning during Gradle builds (flutter/flutter#186077) 2026-06-01 [email protected] [skia] Update gni file list name hsw -> ml3 (flutter/flutter#184892) 2026-06-01 [email protected] [web] Always sync slider input attrs regardless of gesture mode (flutter/flutter#187217) 2026-06-01 [email protected] [flutter_driver] Don't throw when stderr is unavailable on web (flutter/flutter#187190) 2026-06-01 [email protected] Remove unused code in `FlutterPluginUtils.kt` (flutter/flutter#187012) 2026-06-01 [email protected] [flutter_tools] Fix `flutter drive --chrome-binary` being ignored on web (flutter/flutter#185481) 2026-06-01 [email protected] Eager failure when building and no XCode build settings (flutter/flutter#184726) 2026-06-01 [email protected] Fix Windows Korean IME caret position during composition (flutter/flutter#186353) 2026-06-01 [email protected] iOS: update provisioning profile for 2026-2027 cert (flutter/flutter#187280) 2026-06-01 [email protected] Sync CHANGELOG.md from stable (flutter/flutter#187380) 2026-06-01 [email protected] Reland "Move dart-lang/ai to a top level third party dependency in engine (#187268)" (flutter/flutter#187378) 2026-06-01 [email protected] Add vector_math to Framework triage (flutter/flutter#187389) 2026-06-01 [email protected] Roll Packages from e930ced to f5d50ca (4 revisions) (flutter/flutter#187381) 2026-06-01 [email protected] [flutter_tools] Reject archive entries that escape into a sibling directory by name prefix (#185794) (flutter/flutter#186647) 2026-06-01 [email protected] [flutter_tools] Fix widget_preview unawaited async write race condition (flutter/flutter#187177) 2026-06-01 [email protected] Roll pub packages (flutter/flutter#187375) 2026-06-01 [email protected] Roll Skia from 0aee4675e0ad to c97e939eb5c9 (7 revisions) (flutter/flutter#187371) 2026-06-01 [email protected] docs: Stack.clipBehavior = Clip.none does not extend hit testing (#160787) (flutter/flutter#186643) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…orEXT on GLES2 with the extension (flutter#187313) OpenGL ES 3.0 includes support for glVertexAttribDivisor. The glVertexAttribDivisorEXT API is available on OpenGL ES 2.0 devices with the GL_EXT_instanced_arrays extension. GLES3 devices may be able to resolve a glVertexAttribDivisorEXT function that is not actually implemented. This PR uses the glVertexAttribDivisor API if available and otherwise falls back to glVertexAttribDivisorEXT. See flutter#186653
OpenGL ES 3.0 includes support for glVertexAttribDivisor. The glVertexAttribDivisorEXT API is available on OpenGL ES 2.0 devices with the GL_EXT_instanced_arrays extension.
GLES3 devices may be able to resolve a glVertexAttribDivisorEXT function that is not actually implemented. This PR uses the glVertexAttribDivisor API if available and otherwise falls back to glVertexAttribDivisorEXT.
See #186653