Skip to content

[Impeller] OpenGLES backend tries to reuse buffers across different buffer targets, which fails on WebGL. #149603

Closed

Description

@eyebrowsoffire

Impeller's OpenGLES backend tries to reuse buffers across different buffer targets (i.e. GL_ARRAY_BUFFER vs GL_ELEMENT_ARRAY_BUFFER). WebGL doesn't like this and rejects the call to glBindBuffer. See this section of the WebGL spec on buffer binding restrictions: https://registry.khronos.org/webgl/specs/latest/2.0/#BUFFER_OBJECT_BINDING

Activity

  1. changed the title [-]Impeller's OpenGLES backend tries to reuse buffers across different buffer targets, which fails on WebGL[/-] [+][Impeller] OpenGLES backend tries to reuse buffers across different buffer targets, which fails on WebGL.[/+] on Jun 3, 2024
  2. self-assigned this
    on Jun 3, 2024
  3. added
    e: impellerImpeller rendering backend issues and features requests
    on Jun 3, 2024
  4. chinmaygarde commented on Jun 3, 2024

    @chinmaygarde
    Contributor

    Hmm, come to think of it, is this possible in ES 2.0? Or are we just relying on some behavior from extensions? Either way, the workaround is not super difficult.

  5. added
    P3Issues that are less important to the Flutter project
    on Jun 3, 2024
  6. eyebrowsoffire commented on Jun 3, 2024

    @eyebrowsoffire
    ContributorAuthor

    I think this restriction is specific to WebGL, but I'm not positive.

  7. removed their assignment
    on Jun 3, 2024
  8. eyebrowsoffire commented on Sep 2, 2025

    @eyebrowsoffire
    ContributorAuthor

    A backend option to fix this was added in #174463

  9. github-actions commented on Sep 16, 2025

    @github-actions

    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 -v and a minimal reproduction of the issue.

  10. locked as resolved and limited conversation to collaborators on Sep 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projecte: impellerImpeller rendering backend issues and features requestse: webglteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions