New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace use of gleam in webgl with sparkle. #24176
Conversation
Heads up! This PR modifies the following files:
|
@bors-servo try |
Replace use of gleam in webgl with sparkle. Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by #24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control. --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24176) <!-- Reviewable:end -->
💔 Test failed - linux-rel-css |
@bors-servo try |
Replace use of gleam in webgl with sparkle. Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by #24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control. --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24176) <!-- Reviewable:end -->
💔 Test failed - linux-rel-css |
@bors-servo try |
Replace use of gleam in webgl with sparkle. Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by #24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control. --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24176) <!-- Reviewable:end -->
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good so far! You can r=me once the dependencies have merged.
let gl_type = match window.gl().get_type() { | ||
gl::GlType::Gl => sparkle::gl::GlType::Gl, | ||
gl::GlType::Gles => sparkle::gl::GlType::Gles, | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we re-export GlType to avoid this type conversion?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re-export where? Have gleam depend on sparkle? Have sparkle depend on gleam? Neither solution sounds like an improvement to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, we're getting the GlType from glutin, oh that makes sense.
💔 Test failed - linux-rel-css |
Replace use of gleam in webgl with sparkle. Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by #24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control. --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24176) <!-- Reviewable:end -->
💔 Test failed - status-taskcluster |
@bors-servo retry
|
Replace use of gleam in webgl with sparkle. Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by #24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control. --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24176) <!-- Reviewable:end -->
💔 Test failed - status-taskcluster |
@bors-servo retry |
💣 Failed to start rebuilding: |
Replace use of gleam in webgl with sparkle. Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by #24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control. --- - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] There are tests for these changes <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24176) <!-- Reviewable:end -->
☀️ Test successful - linux-rel-css, linux-rel-wpt, status-taskcluster |
Trying to understand the reasoning here. Is sparkle essentially a fork of gleam that will have more breaking changes? why couldn't you just manage it as a fork of gleam then? |
Sparkle doesn't use traits, so changes to expose new methods don't cause semver major API changes. Additionally, sparkle only exposes methods for APIs thare are actually available for GL and GLES. |
Rely on https://github.com/servo/sparkle for the GL bindings required to implement Servo's WebGL stack. This does not touch the GL usage in the compositor or webrender, which continue to rely on https://github.com/servo/gleam. This means that any breaking changes to the public GL bindings interface (such as required by #24111) only require updating rust-offscreen-rendering-context and rust-webvr, rather than many other crates that are out of our direct control.
./mach build -d
does not report any errors./mach test-tidy
does not report any errorsThis change is