feat(glsl): version-aware binding + UniformInfo reflection (BUG-GLES-005)#76
Merged
Conversation
…005) GLSL backend now supports runtime binding fallback for GL < 4.2 drivers (e.g., WSL2 Mesa d3d12 with GL 4.1 / GLSL 410). Follows Rust wgpu-hal device.rs:438-461 pattern. - SupportsExplicitLocations() on Version — gates layout(binding=N) emission on GLSL >= 420 (desktop) or >= 310 (ES). Matches Rust naga mod.rs:213. - UniformInfo struct — reflection data for uniform/storage blocks (block name, binding, storage flag). - TranslationInfo.Uniforms — carries block reflection to HAL for post-link glGetUniformBlockIndex/glUniformBlockBinding assignment. - VersionES300 constant — safe minimum for OpenGL ES contexts. - Writer collects uniformInfos during writeUniformBlock, writeUniformVariable, writeStorageVariable. - Updated public docs: CHANGELOG, README, ROADMAP, ARCHITECTURE.
Migrate from CODECOV_TOKEN secret to OIDC token exchange, matching wgpu PR #209 pattern. Fixes GPG signature verification failure on Ubuntu CI. Also removes fail_ci_if_error to prevent Codecov infra issues from blocking PRs.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
layout(binding=N)emission —SupportsExplicitLocations()gates binding qualifiers on GLSL >= 420 (desktop) or >= 310 (ES), matching Rust nagamod.rs:213. On older GL, bindings are omitted for runtime assignment by the HAL.UniformInforeflection — writer collects uniform/storage block metadata (block name, binding, storage flag) during code generation, exposed viaTranslationInfo.Uniformsfor post-linkglGetUniformBlockIndex/glUniformBlockBindingfallback.VersionES300constant — safe minimum for OpenGL ES contexts.Enables wgpu GLES HAL to work on GL < 4.2 drivers (WSL2 Mesa d3d12, GL 4.1 / GLSL 410). Part of BUG-GLES-005 cross-repo fix — wgpu side has matching changes (version propagation +
assignBindingsAfterLink).Test plan
TestRustReference— ALL PASS (no regressions)TestSpirvValBinarySummary— 172/172 PASSgo build ./...— cleangolangci-lint— 0 issues