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,14 +49,9 @@ impl WebGLExtension for OESTextureFloat {
fn enable(ext: &WebGLExtensions) { fn enable(ext: &WebGLExtensions) {
ext.enable_tex_type(webgl::FLOAT); 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::RGBA, webgl::FLOAT, gl::RGBA32F);
ext.add_effective_tex_internal_format(webgl::RGB, webgl::FLOAT, gl::RGB32F); ext.add_effective_tex_internal_format(webgl::RGB, webgl::FLOAT, gl::RGB32F);
ext.add_effective_tex_internal_format( ext.add_effective_tex_internal_format(webgl::LUMINANCE, webgl::FLOAT, gl::LUMINANCE32F_ARB);
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::ALPHA, webgl::FLOAT, gl::ALPHA32F_ARB);
ext.add_effective_tex_internal_format( ext.add_effective_tex_internal_format(
webgl::LUMINANCE_ALPHA, webgl::LUMINANCE_ALPHA,
@ -64,7 +59,6 @@ impl WebGLExtension for OESTextureFloat {
gl::LUMINANCE_ALPHA32F_ARB, gl::LUMINANCE_ALPHA32F_ARB,
); );
} }
}
fn name() -> &'static str { fn name() -> &'static str {
"OES_texture_float" "OES_texture_float"

View file

@ -53,7 +53,6 @@ impl WebGLExtension for OESTextureHalfFloat {
fn enable(ext: &WebGLExtensions) { fn enable(ext: &WebGLExtensions) {
let hf = OESTextureHalfFloatConstants::HALF_FLOAT_OES; let hf = OESTextureHalfFloatConstants::HALF_FLOAT_OES;
ext.enable_tex_type(hf); 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::RGBA, hf, gl::RGBA16F);
ext.add_effective_tex_internal_format(webgl::RGB, hf, gl::RGB16F); 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::LUMINANCE, hf, gl::LUMINANCE16F_ARB);
@ -64,7 +63,6 @@ impl WebGLExtension for OESTextureHalfFloat {
gl::LUMINANCE_ALPHA16F_ARB, gl::LUMINANCE_ALPHA16F_ARB,
); );
} }
}
fn name() -> &'static str { fn name() -> &'static str {
"OES_texture_half_float" "OES_texture_half_float"