Auto merge of #24583 - jdm:angle-bbjs-fix, r=Manishearth

Fix GL panic with updated ANGLE

Our OES_texture_float extension implementation relied on the GL implementation to convert from unsized formats like RGBA when using the FLOAT/HALF_FLOAT type to an internal sized format that was acceptable. ANGLE no longer appears to do that since #24542, so we should enable the format conversion unconditionally.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #24578
- [x] There are tests for these changes
This commit is contained in:
bors-servo 2019-10-29 19:06:36 -04:00 committed by GitHub
commit c918b727f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 26 deletions

View file

@ -49,21 +49,15 @@ impl WebGLExtension for OESTextureFloat {
fn enable(ext: &WebGLExtensions) {
ext.enable_tex_type(webgl::FLOAT);
if !ext.supports_gl_extension("GL_OES_texture_float") {
ext.add_effective_tex_internal_format(webgl::RGBA, webgl::FLOAT, gl::RGBA32F);
ext.add_effective_tex_internal_format(webgl::RGB, webgl::FLOAT, gl::RGB32F);
ext.add_effective_tex_internal_format(
webgl::LUMINANCE,
webgl::FLOAT,
gl::LUMINANCE32F_ARB,
);
ext.add_effective_tex_internal_format(webgl::ALPHA, webgl::FLOAT, gl::ALPHA32F_ARB);
ext.add_effective_tex_internal_format(
webgl::LUMINANCE_ALPHA,
webgl::FLOAT,
gl::LUMINANCE_ALPHA32F_ARB,
);
}
ext.add_effective_tex_internal_format(webgl::RGBA, webgl::FLOAT, gl::RGBA32F);
ext.add_effective_tex_internal_format(webgl::RGB, webgl::FLOAT, gl::RGB32F);
ext.add_effective_tex_internal_format(webgl::LUMINANCE, webgl::FLOAT, gl::LUMINANCE32F_ARB);
ext.add_effective_tex_internal_format(webgl::ALPHA, webgl::FLOAT, gl::ALPHA32F_ARB);
ext.add_effective_tex_internal_format(
webgl::LUMINANCE_ALPHA,
webgl::FLOAT,
gl::LUMINANCE_ALPHA32F_ARB,
);
}
fn name() -> &'static str {

View file

@ -53,17 +53,15 @@ impl WebGLExtension for OESTextureHalfFloat {
fn enable(ext: &WebGLExtensions) {
let hf = OESTextureHalfFloatConstants::HALF_FLOAT_OES;
ext.enable_tex_type(hf);
if !ext.supports_gl_extension("GL_OES_texture_half_float") {
ext.add_effective_tex_internal_format(webgl::RGBA, hf, gl::RGBA16F);
ext.add_effective_tex_internal_format(webgl::RGB, hf, gl::RGB16F);
ext.add_effective_tex_internal_format(webgl::LUMINANCE, hf, gl::LUMINANCE16F_ARB);
ext.add_effective_tex_internal_format(webgl::ALPHA, hf, gl::ALPHA16F_ARB);
ext.add_effective_tex_internal_format(
webgl::LUMINANCE_ALPHA,
hf,
gl::LUMINANCE_ALPHA16F_ARB,
);
}
ext.add_effective_tex_internal_format(webgl::RGBA, hf, gl::RGBA16F);
ext.add_effective_tex_internal_format(webgl::RGB, hf, gl::RGB16F);
ext.add_effective_tex_internal_format(webgl::LUMINANCE, hf, gl::LUMINANCE16F_ARB);
ext.add_effective_tex_internal_format(webgl::ALPHA, hf, gl::ALPHA16F_ARB);
ext.add_effective_tex_internal_format(
webgl::LUMINANCE_ALPHA,
hf,
gl::LUMINANCE_ALPHA16F_ARB,
);
}
fn name() -> &'static str {