aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/webgl2renderingcontext.rs6
-rw-r--r--tests/wpt/webgl/meta/conformance2/renderbuffers/readbuffer.html.ini6
2 files changed, 5 insertions, 7 deletions
diff --git a/components/script/dom/webgl2renderingcontext.rs b/components/script/dom/webgl2renderingcontext.rs
index c0c3aab5ad6..7b1a68b475a 100644
--- a/components/script/dom/webgl2renderingcontext.rs
+++ b/components/script/dom/webgl2renderingcontext.rs
@@ -349,7 +349,11 @@ impl WebGL2RenderingContext {
}
let fb_slot = self.base.get_draw_framebuffer_slot();
- if fb_slot.get().is_none() && self.default_fb_readbuffer.get() == constants::NONE {
+ let fb_readbuffer_valid = match fb_slot.get() {
+ Some(fb) => fb.attachment(fb.read_buffer()).is_some(),
+ None => self.default_fb_readbuffer.get() != constants::NONE,
+ };
+ if !fb_readbuffer_valid {
return self.base.webgl_error(InvalidOperation);
}
diff --git a/tests/wpt/webgl/meta/conformance2/renderbuffers/readbuffer.html.ini b/tests/wpt/webgl/meta/conformance2/renderbuffers/readbuffer.html.ini
index 232dfdd8524..df42b4866c9 100644
--- a/tests/wpt/webgl/meta/conformance2/renderbuffers/readbuffer.html.ini
+++ b/tests/wpt/webgl/meta/conformance2/renderbuffers/readbuffer.html.ini
@@ -1,8 +1,2 @@
[readbuffer.html]
expected: TIMEOUT
- [WebGL test #3: gl.getParameter(gl.READ_BUFFER) should be 1029 (of type number). Was null (of type object).]
- expected: FAIL
-
- [WebGL test #4: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
- expected: FAIL
-