diff --git a/gfx/wr/wrench/reftests/image/texture-rect-ref.yaml b/gfx/wr/wrench/reftests/image/texture-rect-ref.yaml index 2f1c31c4c68e..42d8907434f0 100644 --- a/gfx/wr/wrench/reftests/image/texture-rect-ref.yaml +++ b/gfx/wr/wrench/reftests/image/texture-rect-ref.yaml @@ -3,10 +3,10 @@ root: items: - type: rect bounds: [0, 0, 50, 50] - color: blue + color: red - type: rect bounds: [50, 0, 50, 50] - color: red + color: blue - type: rect bounds: [0, 50, 50, 50] color: green diff --git a/gfx/wr/wrench/src/yaml_frame_reader.rs b/gfx/wr/wrench/src/yaml_frame_reader.rs index 7e1779bb1aea..b639b32eec4a 100644 --- a/gfx/wr/wrench/src/yaml_frame_reader.rs +++ b/gfx/wr/wrench/src/yaml_frame_reader.rs @@ -111,7 +111,16 @@ impl LocalExternalImageHandler { ImageData::Raw(ref data) => { let gl = device.gl(); let texture_ids = gl.gen_textures(1); - let format_desc = device.gl_describe_format(desc.format); + let format_desc = if desc.format == ImageFormat::BGRA8 { + // Force BGRA8 data to RGBA8 layout to avoid potential + // need for usage of texture-swizzle. + webrender::FormatDesc { + external: gl::BGRA, + .. device.gl_describe_format(ImageFormat::RGBA8) + } + } else { + device.gl_describe_format(desc.format) + }; LocalExternalImageHandler::init_gl_texture( texture_ids[0],