Skip to content

Add bindings for ARB_base_instance / EXT_base_instance - #235

Open
jamienicol wants to merge 2 commits into
servo:mainfrom
jamienicol:base_instance
Open

Add bindings for ARB_base_instance / EXT_base_instance#235
jamienicol wants to merge 2 commits into
servo:mainfrom
jamienicol:base_instance

Conversation

@jamienicol

Copy link
Copy Markdown
Contributor

No description provided.

@jamienicol

Copy link
Copy Markdown
Contributor Author

Interestingly, this makes Firefox's Android arm32 PGO profile generate builds take an enormous amount of time to compile. (Consistently times out on CI. I haven't let it finish locally but it showed no signs of finishing after an hour and a half)

I think we were already hitting some pathological behaviour in LLVM when doing arm32 PGO profile generate builds. I created a simple testcase (basically just calls GlFns::load_with(). With gleam 15.1:

  • RUSTFLAGS='-Cprofile-generate=pgo' cargo build --release --target aarch64-linux-android: 4.02s
  • RUSTFLAGS='-Cprofile-generate=pgo' cargo build --release --target thumbv7neon-linux-androideabi: 2m 06s

Taking 2 minutes for thumbv7neon vs 4 seconds is wild. But then with this PR:

  • RUSTFLAGS='-Cprofile-generate=pgo' cargo build --release --target aarch64-linux-android: 3.57s
  • RUSTFLAGS='-Cprofile-generate=pgo' cargo build --release --target thumbv7neon-linux-androideabi: I gave up after 30 minutes. Here's a profile of what LLVM was busy doing: https://share.firefox.dev/4wNdJNG

jamienicol added a commit to jamienicol/firefox that referenced this pull request Aug 6, 2026
…. r?#gfx-reviewers

Update gleam to include servo/gleam#235,
adding bindings for ARB_base_instance/EXT_base_instance extensions.

Unfortunately this gleam PR cannot be merged until gl_generator merges
rust-windowing/gl-rs#566 and releases a new
version. Without the gl_generator fix, arm32 profile-generate builds
take hours due to what is presumably a rustc/LLVM bug.

In the meantime, use [patch.crates-io] to vendor specific git
revisions of gl_generator and gleam including the required fixes. Once
both the gl_generator and gleam pull requests have been merged and new
versions of the respective crates have been published, we should
switch back to using the crates.io versions.
jamienicol added a commit to jamienicol/firefox that referenced this pull request Aug 6, 2026
…. r?#gfx-reviewers

Update gleam to include servo/gleam#235,
adding bindings for ARB_base_instance/EXT_base_instance extensions.

Unfortunately this gleam PR cannot be merged until gl_generator merges
rust-windowing/gl-rs#566 and releases a new
version. Without the gl_generator fix, arm32 profile-generate builds
take hours due to what is presumably a rustc/LLVM bug.

In the meantime, use [patch.crates-io] to vendor specific git
revisions of gl_generator and gleam including the required fixes. Once
both the gl_generator and gleam pull requests have been merged and new
versions of the respective crates have been published, we should
switch back to using the crates.io versions.
jamienicol added a commit to jamienicol/firefox that referenced this pull request Aug 6, 2026
…. r?#gfx-reviewers

Update gleam to include servo/gleam#235,
adding bindings for ARB_base_instance/EXT_base_instance extensions.

Unfortunately this gleam PR cannot be merged until gl_generator merges
rust-windowing/gl-rs#566 and releases a new
version. Without the gl_generator fix, arm32 profile-generate builds
take hours due to what is presumably a rustc/LLVM bug.

In the meantime, use [patch.crates-io] to vendor specific git
revisions of gl_generator and gleam including the required fixes. Once
both the gl_generator and gleam pull requests have been merged and new
versions of the respective crates have been published, we should
switch back to using the crates.io versions.

Differential Revision: https://phabricator.services.mozilla.com/D316861
lando-worker Bot pushed a commit to mozilla-firefox/firefox that referenced this pull request Aug 7, 2026
…. r=gfx-reviewers,supply-chain-reviewers,ahale

Update gleam to include servo/gleam#235,
adding bindings for ARB_base_instance/EXT_base_instance extensions.

Unfortunately this gleam PR cannot be merged until gl_generator merges
rust-windowing/gl-rs#566 and releases a new
version. Without the gl_generator fix, arm32 profile-generate builds
take hours due to what is presumably a rustc/LLVM bug.

In the meantime, use [patch.crates-io] to vendor specific git
revisions of gl_generator and gleam including the required fixes. Once
both the gl_generator and gleam pull requests have been merged and new
versions of the respective crates have been published, we should
switch back to using the crates.io versions.

Differential Revision: https://phabricator.services.mozilla.com/D316861
github-actions Bot pushed a commit to servo/webrender that referenced this pull request Aug 9, 2026
…. r=gfx-reviewers,supply-chain-reviewers,ahale

Update gleam to include servo/gleam#235,
adding bindings for ARB_base_instance/EXT_base_instance extensions.

Unfortunately this gleam PR cannot be merged until gl_generator merges
rust-windowing/gl-rs#566 and releases a new
version. Without the gl_generator fix, arm32 profile-generate builds
take hours due to what is presumably a rustc/LLVM bug.

In the meantime, use [patch.crates-io] to vendor specific git
revisions of gl_generator and gleam including the required fixes. Once
both the gl_generator and gleam pull requests have been merged and new
versions of the respective crates have been published, we should
switch back to using the crates.io versions.

Differential Revision: https://phabricator.services.mozilla.com/D316861
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant