Auto merge of #19192 - MortimerGoro:webgl2_glsl, r=jdm

Set the correct Angle GLSL output  when using WebGL 2

Set the correct Angle GLSL output  when using WebGL 2

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- 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/19192)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-11-13 11:50:44 -06:00 committed by GitHub
commit f1cf41da00
21 changed files with 99 additions and 621 deletions

View file

@ -91,13 +91,18 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
match msg {
WebGLMsg::CreateContext(version, size, attributes, result_sender) => {
let result = self.create_webgl_context(version, size, attributes);
result_sender.send(result.map(|(id, limits, share_mode)|
result_sender.send(result.map(|(id, limits, share_mode)| {
let ctx = Self::make_current_if_needed(id, &self.contexts, &mut self.bound_context_id)
.expect("WebGLContext not found");
let glsl_version = Self::get_glsl_version(ctx);
WebGLCreateContextResult {
sender: WebGLMsgSender::new(id, webgl_chan.clone()),
limits: limits,
share_mode: share_mode,
limits,
share_mode,
glsl_version,
}
)).unwrap();
})).unwrap();
},
WebGLMsg::ResizeContext(ctx_id, size, sender) => {
self.resize_webgl_context(ctx_id, size, sender);
@ -519,6 +524,20 @@ impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> WebGLThread<VR,
byte_swap(&mut pixels);
pixels
}
/// Gets the GLSL Version supported by a GLContext.
fn get_glsl_version(context: &GLContextWrapper) -> WebGLSLVersion {
let version = context.gl().get_string(gl::SHADING_LANGUAGE_VERSION);
// Fomat used by SHADING_LANGUAGE_VERSION query : major.minor[.release] [vendor info]
let mut values = version.split(&['.', ' '][..]);
let major = values.next().and_then(|v| v.parse::<u32>().ok()).unwrap_or(1);
let minor = values.next().and_then(|v| v.parse::<u32>().ok()).unwrap_or(20);
WebGLSLVersion {
major,
minor,
}
}
}
impl<VR: WebVRRenderHandler + 'static, OB: WebGLThreadObserver> Drop for WebGLThread<VR, OB> {

View file

@ -63,6 +63,8 @@ pub struct WebGLCreateContextResult {
pub limits: GLLimits,
/// How the WebGLContext is shared with WebRender.
pub share_mode: WebGLContextShareMode,
/// The GLSL version supported by the context.
pub glsl_version: WebGLSLVersion
}
#[derive(Clone, Copy, Deserialize, MallocSizeOf, Serialize)]
@ -84,6 +86,15 @@ pub enum WebGLVersion {
WebGL2,
}
/// Defines the GLSL version supported by the WebGL backend contexts.
#[derive(Clone, Copy, Deserialize, Eq, MallocSizeOf, PartialEq, Serialize)]
pub struct WebGLSLVersion {
/// Major GLSL version
pub major: u32,
/// Minor GLSL version
pub minor: u32,
}
/// Helper struct to send WebGLCommands to a specific WebGLContext.
#[derive(Clone, Deserialize, MallocSizeOf, Serialize)]
pub struct WebGLMsgSender {

View file

@ -33,8 +33,9 @@ use app_units::Au;
use canvas_traits::canvas::{CanvasGradientStop, LinearGradientStyle, RadialGradientStyle};
use canvas_traits::canvas::{CompositionOrBlending, LineCapStyle, LineJoinStyle, RepetitionStyle};
use canvas_traits::webgl::{WebGLBufferId, WebGLFramebufferId, WebGLProgramId, WebGLRenderbufferId};
use canvas_traits::webgl::{WebGLChan, WebGLContextShareMode, WebGLError, WebGLPipeline, WebGLMsgSender, WebGLVersion};
use canvas_traits::webgl::{WebGLChan, WebGLContextShareMode, WebGLError, WebGLPipeline, WebGLMsgSender};
use canvas_traits::webgl::{WebGLReceiver, WebGLSender, WebGLShaderId, WebGLTextureId, WebGLVertexArrayId};
use canvas_traits::webgl::{WebGLSLVersion, WebGLVersion};
use cssparser::RGBA;
use devtools_traits::{CSSError, TimelineMarkerType, WorkerId};
use dom::abstractworker::SharedRt;
@ -412,6 +413,7 @@ unsafe_no_jsmanaged_fields!(WebGLShaderId);
unsafe_no_jsmanaged_fields!(WebGLTextureId);
unsafe_no_jsmanaged_fields!(WebGLVertexArrayId);
unsafe_no_jsmanaged_fields!(WebGLVersion);
unsafe_no_jsmanaged_fields!(WebGLSLVersion);
unsafe_no_jsmanaged_fields!(MediaList);
unsafe_no_jsmanaged_fields!(WebVRGamepadHand);
unsafe_no_jsmanaged_fields!(ScriptToConstellationChan);

View file

@ -4,7 +4,7 @@
use byteorder::{NativeEndian, ReadBytesExt, WriteBytesExt};
use canvas_traits::canvas::{byte_swap, multiply_u8_pixel};
use canvas_traits::webgl::{WebGLContextShareMode, WebGLCommand, WebGLError, WebGLVersion};
use canvas_traits::webgl::{WebGLContextShareMode, WebGLCommand, WebGLError, WebGLVersion, WebGLSLVersion};
use canvas_traits::webgl::{WebGLFramebufferBindingRequest, WebGLMsg, WebGLMsgSender, WebGLParameter, WebVRCommand};
use canvas_traits::webgl::DOMToTextureCommand;
use canvas_traits::webgl::WebGLError::*;
@ -187,6 +187,7 @@ pub struct WebGLRenderingContext {
webrender_image: Cell<Option<webrender_api::ImageKey>>,
share_mode: WebGLContextShareMode,
webgl_version: WebGLVersion,
glsl_version: WebGLSLVersion,
#[ignore_malloc_size_of = "Defined in offscreen_gl_context"]
limits: GLLimits,
canvas: Dom<HTMLCanvasElement>,
@ -236,6 +237,7 @@ impl WebGLRenderingContext {
webrender_image: Cell::new(None),
share_mode: ctx_data.share_mode,
webgl_version,
glsl_version: ctx_data.glsl_version,
limits: ctx_data.limits,
canvas: Dom::from_ref(canvas),
last_error: Cell::new(None),
@ -1914,7 +1916,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
fn CompileShader(&self, shader: Option<&WebGLShader>) {
if let Some(shader) = shader {
shader.compile(self.webgl_version, &self.extension_manager)
shader.compile(self.webgl_version, self.glsl_version, &self.extension_manager)
}
}

View file

@ -4,8 +4,8 @@
// https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl
use angle::hl::{BuiltInResources, Output, ShaderValidator};
use canvas_traits::webgl::{WebGLSLVersion, WebGLVersion};
use canvas_traits::webgl::{webgl_channel, WebGLCommand, WebGLMsgSender, WebGLParameter, WebGLResult, WebGLShaderId};
use canvas_traits::webgl::WebGLVersion;
use dom::bindings::cell::DomRefCell;
use dom::bindings::codegen::Bindings::WebGLShaderBinding;
use dom::bindings::reflector::reflect_dom_object;
@ -40,12 +40,6 @@ pub struct WebGLShader {
renderer: WebGLMsgSender,
}
#[cfg(not(target_os = "android"))]
const SHADER_OUTPUT_FORMAT: Output = Output::Glsl;
#[cfg(target_os = "android")]
const SHADER_OUTPUT_FORMAT: Output = Output::Essl;
static GLSLANG_INITIALIZATION: Once = ONCE_INIT;
impl WebGLShader {
@ -100,7 +94,12 @@ impl WebGLShader {
}
/// glCompileShader
pub fn compile(&self, version: WebGLVersion, ext: &WebGLExtensions) {
pub fn compile(
&self,
webgl_version: WebGLVersion,
glsl_version: WebGLSLVersion,
ext: &WebGLExtensions
) {
if self.compilation_status.get() != ShaderCompilationStatus::NotCompiled {
debug!("Compiling already compiled shader {}", self.id);
}
@ -109,15 +108,37 @@ impl WebGLShader {
let mut params = BuiltInResources::default();
params.FragmentPrecisionHigh = 1;
params.OES_standard_derivatives = ext.is_enabled::<OESStandardDerivatives>() as i32;
let validator = match version {
let validator = match webgl_version {
WebGLVersion::WebGL1 => {
let output_format = if cfg!(any(target_os = "android", target_os = "ios")) {
Output::Essl
} else {
Output::Glsl
};
ShaderValidator::for_webgl(self.gl_type,
SHADER_OUTPUT_FORMAT,
output_format,
&params).unwrap()
},
WebGLVersion::WebGL2 => {
let output_format = if cfg!(any(target_os = "android", target_os = "ios")) {
Output::Essl
} else {
match (glsl_version.major, glsl_version.minor) {
(1, 30) => Output::Glsl130,
(1, 40) => Output::Glsl140,
(1, 50) => Output::Glsl150Core,
(3, 30) => Output::Glsl330Core,
(4, 0) => Output::Glsl400Core,
(4, 10) => Output::Glsl410Core,
(4, 20) => Output::Glsl420Core,
(4, 30) => Output::Glsl430Core,
(4, 40) => Output::Glsl440Core,
(4, _) => Output::Glsl450Core,
_ => Output::Glsl140
}
};
ShaderValidator::for_webgl2(self.gl_type,
SHADER_OUTPUT_FORMAT,
output_format,
&params).unwrap()
},
};

View file

@ -1,13 +1,5 @@
[array-as-return-value.html]
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Expression where a returned array is not used]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Expression where a returned array is compared]
expected: FAIL
[WebGL test #2: [unexpected fragment shader compile status\] (expected: true) Expression where a returned array is returned again]
expected: FAIL
[WebGL test #3: [unexpected fragment shader compile status\] (expected: true) Expression where a returned array is passed as a parameter]
expected: FAIL
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,7 +0,0 @@
[array-assign-constructor.html]
[WebGL test #0: should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 255,255,255,255]
expected: FAIL
[WebGL test #1: should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 255,255,255,255]
expected: FAIL

View file

@ -1,7 +1,5 @@
[array-assign.html]
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Arrays of integers]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Arrays of structs]
expected: FAIL
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,10 +1,5 @@
[array-complex-indexing.html]
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Test indexing a variable assignment: (a = b)[0\]]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Test indexing a function return with a side-effect: (functionReturnArray())[0\]]
expected: FAIL
[WebGL test #2: [unexpected fragment shader compile status\] (expected: true) Test indexing an array initialization: (float[3\](2.0, 1.0, 0.0))[0\]]
expected: FAIL
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -3,9 +3,3 @@
[Overall test]
expected: NOTRUN
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Increment an element of a vector array]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Increment an element of a vector array]
expected: FAIL

View file

@ -1,7 +1,5 @@
[array-equality.html]
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Arrays of integers]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Arrays of structs]
expected: FAIL
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,7 +1,5 @@
[array-in-complex-expression.html]
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Expression where an array is returned from a function call in an operand of a ternary operator that doesn't get evaluated]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Expression where first operand of a sequence operator has side effects which affect the second operand that returns an array]
expected: FAIL
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,34 +0,0 @@
[bool-type-cast-bug-uint-ivec-uvec.html]
[WebGL test #0: Fail to set up program]
expected: FAIL
[WebGL test #1: Fail to set up program]
expected: FAIL
[WebGL test #2: Fail to set up program]
expected: FAIL
[WebGL test #6: Fail to set up program]
expected: FAIL
[WebGL test #7: Fail to set up program]
expected: FAIL
[WebGL test #8: Fail to set up program]
expected: FAIL
[WebGL test #12: Fail to set up program]
expected: FAIL
[WebGL test #13: Fail to set up program]
expected: FAIL
[WebGL test #14: Fail to set up program]
expected: FAIL
[WebGL test #18: Fail to set up program]
expected: FAIL
[WebGL test #19: Fail to set up program]
expected: FAIL

View file

@ -1,433 +0,0 @@
[compound-assignment-type-combination.html]
[WebGL test #50: [unexpected vertex shader compile status\] (expected: true) mat2x3 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #51: [link failed\] mat2x3 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #52: [unexpected fragment shader compile status\] (expected: true) mat2x3 += float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #53: [unexpected vertex shader compile status\] (expected: true) mat2x3 += mat2x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #54: [link failed\] mat2x3 += mat2x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #55: [unexpected fragment shader compile status\] (expected: true) mat2x3 += mat2x3 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #60: [unexpected vertex shader compile status\] (expected: true) mat2x4 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #61: [link failed\] mat2x4 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #62: [unexpected fragment shader compile status\] (expected: true) mat2x4 += float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #63: [unexpected vertex shader compile status\] (expected: true) mat2x4 += mat2x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #64: [link failed\] mat2x4 += mat2x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #65: [unexpected fragment shader compile status\] (expected: true) mat2x4 += mat2x4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #70: [unexpected vertex shader compile status\] (expected: true) mat3x2 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #71: [link failed\] mat3x2 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #72: [unexpected fragment shader compile status\] (expected: true) mat3x2 += float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #73: [unexpected vertex shader compile status\] (expected: true) mat3x2 += mat3x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #74: [link failed\] mat3x2 += mat3x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #75: [unexpected fragment shader compile status\] (expected: true) mat3x2 += mat3x2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #80: [unexpected vertex shader compile status\] (expected: true) mat3x4 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #81: [link failed\] mat3x4 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #82: [unexpected fragment shader compile status\] (expected: true) mat3x4 += float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #83: [unexpected vertex shader compile status\] (expected: true) mat3x4 += mat3x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #84: [link failed\] mat3x4 += mat3x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #85: [unexpected fragment shader compile status\] (expected: true) mat3x4 += mat3x4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #90: [unexpected vertex shader compile status\] (expected: true) mat4x2 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #91: [link failed\] mat4x2 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #92: [unexpected fragment shader compile status\] (expected: true) mat4x2 += float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #93: [unexpected vertex shader compile status\] (expected: true) mat4x2 += mat4x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #94: [link failed\] mat4x2 += mat4x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #95: [unexpected fragment shader compile status\] (expected: true) mat4x2 += mat4x2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #100: [unexpected vertex shader compile status\] (expected: true) mat4x3 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #101: [link failed\] mat4x3 += float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #102: [unexpected fragment shader compile status\] (expected: true) mat4x3 += float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #103: [unexpected vertex shader compile status\] (expected: true) mat4x3 += mat4x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #104: [link failed\] mat4x3 += mat4x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #105: [unexpected fragment shader compile status\] (expected: true) mat4x3 += mat4x3 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #178: [unexpected vertex shader compile status\] (expected: true) mat2x3 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #179: [link failed\] mat2x3 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #180: [unexpected fragment shader compile status\] (expected: true) mat2x3 -= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #181: [unexpected vertex shader compile status\] (expected: true) mat2x3 -= mat2x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #182: [link failed\] mat2x3 -= mat2x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #183: [unexpected fragment shader compile status\] (expected: true) mat2x3 -= mat2x3 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #188: [unexpected vertex shader compile status\] (expected: true) mat2x4 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #189: [link failed\] mat2x4 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #190: [unexpected fragment shader compile status\] (expected: true) mat2x4 -= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #191: [unexpected vertex shader compile status\] (expected: true) mat2x4 -= mat2x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #192: [link failed\] mat2x4 -= mat2x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #193: [unexpected fragment shader compile status\] (expected: true) mat2x4 -= mat2x4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #198: [unexpected vertex shader compile status\] (expected: true) mat3x2 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #199: [link failed\] mat3x2 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #200: [unexpected fragment shader compile status\] (expected: true) mat3x2 -= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #201: [unexpected vertex shader compile status\] (expected: true) mat3x2 -= mat3x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #202: [link failed\] mat3x2 -= mat3x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #203: [unexpected fragment shader compile status\] (expected: true) mat3x2 -= mat3x2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #208: [unexpected vertex shader compile status\] (expected: true) mat3x4 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #209: [link failed\] mat3x4 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #210: [unexpected fragment shader compile status\] (expected: true) mat3x4 -= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #211: [unexpected vertex shader compile status\] (expected: true) mat3x4 -= mat3x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #212: [link failed\] mat3x4 -= mat3x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #213: [unexpected fragment shader compile status\] (expected: true) mat3x4 -= mat3x4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #218: [unexpected vertex shader compile status\] (expected: true) mat4x2 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #219: [link failed\] mat4x2 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #220: [unexpected fragment shader compile status\] (expected: true) mat4x2 -= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #221: [unexpected vertex shader compile status\] (expected: true) mat4x2 -= mat4x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #222: [link failed\] mat4x2 -= mat4x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #223: [unexpected fragment shader compile status\] (expected: true) mat4x2 -= mat4x2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #228: [unexpected vertex shader compile status\] (expected: true) mat4x3 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #229: [link failed\] mat4x3 -= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #230: [unexpected fragment shader compile status\] (expected: true) mat4x3 -= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #231: [unexpected vertex shader compile status\] (expected: true) mat4x3 -= mat4x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #232: [link failed\] mat4x3 -= mat4x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #233: [unexpected fragment shader compile status\] (expected: true) mat4x3 -= mat4x3 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #312: [unexpected vertex shader compile status\] (expected: true) mat2x3 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #313: [link failed\] mat2x3 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #314: [unexpected fragment shader compile status\] (expected: true) mat2x3 *= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #317: [unexpected vertex shader compile status\] (expected: true) mat2x3 *= mat2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #318: [link failed\] mat2x3 *= mat2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #319: [unexpected fragment shader compile status\] (expected: true) mat2x3 *= mat2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #324: [unexpected vertex shader compile status\] (expected: true) mat2x4 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #325: [link failed\] mat2x4 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #326: [unexpected fragment shader compile status\] (expected: true) mat2x4 *= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #329: [unexpected vertex shader compile status\] (expected: true) mat2x4 *= mat2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #330: [link failed\] mat2x4 *= mat2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #331: [unexpected fragment shader compile status\] (expected: true) mat2x4 *= mat2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #336: [unexpected vertex shader compile status\] (expected: true) mat3x2 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #337: [link failed\] mat3x2 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #338: [unexpected fragment shader compile status\] (expected: true) mat3x2 *= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #341: [unexpected vertex shader compile status\] (expected: true) mat3x2 *= mat3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #342: [link failed\] mat3x2 *= mat3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #343: [unexpected fragment shader compile status\] (expected: true) mat3x2 *= mat3 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #348: [unexpected vertex shader compile status\] (expected: true) mat3x4 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #349: [link failed\] mat3x4 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #350: [unexpected fragment shader compile status\] (expected: true) mat3x4 *= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #353: [unexpected vertex shader compile status\] (expected: true) mat3x4 *= mat3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #354: [link failed\] mat3x4 *= mat3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #355: [unexpected fragment shader compile status\] (expected: true) mat3x4 *= mat3 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #360: [unexpected vertex shader compile status\] (expected: true) mat4x2 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #361: [link failed\] mat4x2 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #362: [unexpected fragment shader compile status\] (expected: true) mat4x2 *= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #365: [unexpected vertex shader compile status\] (expected: true) mat4x2 *= mat4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #366: [link failed\] mat4x2 *= mat4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #367: [unexpected fragment shader compile status\] (expected: true) mat4x2 *= mat4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #372: [unexpected vertex shader compile status\] (expected: true) mat4x3 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #373: [link failed\] mat4x3 *= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #374: [unexpected fragment shader compile status\] (expected: true) mat4x3 *= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #377: [unexpected vertex shader compile status\] (expected: true) mat4x3 *= mat4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #378: [link failed\] mat4x3 *= mat4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #379: [unexpected fragment shader compile status\] (expected: true) mat4x3 *= mat4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #452: [unexpected vertex shader compile status\] (expected: true) mat2x3 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #453: [link failed\] mat2x3 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #454: [unexpected fragment shader compile status\] (expected: true) mat2x3 /= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #455: [unexpected vertex shader compile status\] (expected: true) mat2x3 /= mat2x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #456: [link failed\] mat2x3 /= mat2x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #457: [unexpected fragment shader compile status\] (expected: true) mat2x3 /= mat2x3 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #462: [unexpected vertex shader compile status\] (expected: true) mat2x4 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #463: [link failed\] mat2x4 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #464: [unexpected fragment shader compile status\] (expected: true) mat2x4 /= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #465: [unexpected vertex shader compile status\] (expected: true) mat2x4 /= mat2x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #466: [link failed\] mat2x4 /= mat2x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #467: [unexpected fragment shader compile status\] (expected: true) mat2x4 /= mat2x4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #472: [unexpected vertex shader compile status\] (expected: true) mat3x2 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #473: [link failed\] mat3x2 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #474: [unexpected fragment shader compile status\] (expected: true) mat3x2 /= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #475: [unexpected vertex shader compile status\] (expected: true) mat3x2 /= mat3x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #476: [link failed\] mat3x2 /= mat3x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #477: [unexpected fragment shader compile status\] (expected: true) mat3x2 /= mat3x2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #482: [unexpected vertex shader compile status\] (expected: true) mat3x4 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #483: [link failed\] mat3x4 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #484: [unexpected fragment shader compile status\] (expected: true) mat3x4 /= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #485: [unexpected vertex shader compile status\] (expected: true) mat3x4 /= mat3x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #486: [link failed\] mat3x4 /= mat3x4 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #487: [unexpected fragment shader compile status\] (expected: true) mat3x4 /= mat3x4 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #492: [unexpected vertex shader compile status\] (expected: true) mat4x2 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #493: [link failed\] mat4x2 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #494: [unexpected fragment shader compile status\] (expected: true) mat4x2 /= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #495: [unexpected vertex shader compile status\] (expected: true) mat4x2 /= mat4x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #496: [link failed\] mat4x2 /= mat4x2 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #497: [unexpected fragment shader compile status\] (expected: true) mat4x2 /= mat4x2 in a fragment shader should succeed.]
expected: FAIL
[WebGL test #502: [unexpected vertex shader compile status\] (expected: true) mat4x3 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #503: [link failed\] mat4x3 /= float in a vertex shader should succeed.]
expected: FAIL
[WebGL test #504: [unexpected fragment shader compile status\] (expected: true) mat4x3 /= float in a fragment shader should succeed.]
expected: FAIL
[WebGL test #505: [unexpected vertex shader compile status\] (expected: true) mat4x3 /= mat4x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #506: [link failed\] mat4x3 /= mat4x3 in a vertex shader should succeed.]
expected: FAIL
[WebGL test #507: [unexpected fragment shader compile status\] (expected: true) mat4x3 /= mat4x3 in a fragment shader should succeed.]
expected: FAIL

View file

@ -1,10 +1,5 @@
[const-array-init.html]
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Global constant array with vec4 constructors and literals in the initializer]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Global constant array which indexes another global constant array in the initializer]
expected: FAIL
[WebGL test #2: [unexpected fragment shader compile status\] (expected: true) Global constant array initialized to another global constant array]
expected: FAIL
expected: ERROR
[Overall test]
expected: NOTRUN

View file

@ -1,4 +0,0 @@
[no-attribute-vertex-shader.html]
[WebGL test #0: Program compilation failed]
expected: FAIL

View file

@ -5,3 +5,9 @@
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Maximum in-range texture offset should compile]
expected: FAIL
[WebGL test #2: [unexpected link status\] Texture offset below minimum valid value should not compile]
expected: FAIL
[WebGL test #3: [unexpected link status\] Texture offset above maximum valid value should not compile]
expected: FAIL

View file

@ -1,22 +0,0 @@
[texture-offset-uniform-texture-coordinate.html]
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) textureOffset with uniform texture coordinates should not crash]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) textureLodOffset with uniform texture coordinates should not crash]
expected: FAIL
[WebGL test #2: [unexpected fragment shader compile status\] (expected: true) textureGradOffset with uniform texture coordinates should not crash]
expected: FAIL
[WebGL test #3: [unexpected fragment shader compile status\] (expected: true) textureProjOffset with uniform texture coordinates should not crash]
expected: FAIL
[WebGL test #4: [unexpected fragment shader compile status\] (expected: true) textureProjLodOffset with uniform texture coordinates should not crash]
expected: FAIL
[WebGL test #5: [unexpected fragment shader compile status\] (expected: true) textureProjGradOffset with uniform texture coordinates should not crash]
expected: FAIL
[WebGL test #6: [unexpected fragment shader compile status\] (expected: true) texelFetchOffset with uniform texture coordinates should not crash]
expected: FAIL

View file

@ -3,51 +3,3 @@
[Overall test]
expected: NOTRUN
[WebGL test #0: [unexpected fragment shader compile status\] (expected: true) Test indexing an array assignment: bool((c = (a = b)[0\]) + 1.0) inside a for loop condition]
expected: FAIL
[WebGL test #1: [unexpected fragment shader compile status\] (expected: true) Test indexing an array assignment: bool((c = (a = b)[0\]) + 1.0) inside a while loop condition]
expected: FAIL
[WebGL test #2: [unexpected fragment shader compile status\] (expected: true) Test indexing an array assignment: bool((c = (a = b)[0\]) + 1.0) inside a do-while loop condition]
expected: FAIL
[WebGL test #3: [unexpected fragment shader compile status\] (expected: true) Test indexing an array assignment: c = (a = b)[0\] inside a for loop expression]
expected: FAIL
[WebGL test #4: [unexpected fragment shader compile status\] (expected: true) Test indexing a function returning an array: bool(c = functionReturnArray()[0\]) inside a for loop condition]
expected: FAIL
[WebGL test #5: [unexpected fragment shader compile status\] (expected: true) Test indexing a function returning an array: bool(c = functionReturnArray()[0\]) inside a while loop condition]
expected: FAIL
[WebGL test #6: [unexpected fragment shader compile status\] (expected: true) Test indexing a function returning an array: bool(c = functionReturnArray()[0\]) inside a do-while loop condition]
expected: FAIL
[WebGL test #7: [unexpected fragment shader compile status\] (expected: true) Test indexing a function returning an array: c = functionReturnArray()[0\] inside a for loop expression]
expected: FAIL
[WebGL test #8: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor: bool(c = (int[2\](c + 1, c + 2))[1\]) inside a for loop condition]
expected: FAIL
[WebGL test #9: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor: bool(c = (int[2\](c + 1, c + 2))[1\]) inside a while loop condition]
expected: FAIL
[WebGL test #10: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor: bool(c = (int[2\](c + 1, c + 2))[1\]) inside a do-while loop condition]
expected: FAIL
[WebGL test #11: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor: c = (int[2\](c + 1, c + 2))[1\] inside a for loop expression]
expected: FAIL
[WebGL test #12: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor inside a sequence operator: bool(c = (func(), (int[2\](c + 1, c + 2))[1\])) inside a for loop condition]
expected: FAIL
[WebGL test #13: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor inside a sequence operator: bool(c = (func(), (int[2\](c + 1, c + 2))[1\])) inside a while loop condition]
expected: FAIL
[WebGL test #14: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor inside a sequence operator: bool(c = (func(), (int[2\](c + 1, c + 2))[1\])) inside a do-while loop condition]
expected: FAIL
[WebGL test #15: [unexpected fragment shader compile status\] (expected: true) Test indexing an array constructor inside a sequence operator: c = (func(), (int[2\](c + 1, c + 2))[1\]) inside a for loop expression]
expected: FAIL

View file

@ -1,7 +1,5 @@
[attrib-type-match.html]
[WebGL test #1: Set up program failed]
expected: FAIL
[WebGL test #2: Set up program failed]
expected: ERROR
[WebGL test #2: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL

View file

@ -1,8 +1,5 @@
[rendering-sampling-feedback-loop.html]
expected: ERROR
[WebGL test #1: Set up program failed]
expected: FAIL
[WebGL test #2: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL