webgl: Check internal format of textures when determining attachment completeness.

This commit is contained in:
Josh Matthews 2018-08-15 14:59:19 -04:00
parent 15e2af0fea
commit 944d1d1f29
2 changed files with 16 additions and 64 deletions

View file

@ -128,7 +128,7 @@ impl WebGLFramebuffer {
let has_zs = zs.is_some();
let attachments = [&*c, &*z, &*s, &*zs];
let attachment_constraints = [
&[constants::RGBA4, constants::RGB5_A1, constants::RGB565][..],
&[constants::RGBA4, constants::RGB5_A1, constants::RGB565, constants::RGBA][..],
&[constants::DEPTH_COMPONENT16][..],
&[constants::STENCIL_INDEX8][..],
&[constants::DEPTH_STENCIL][..],
@ -162,7 +162,7 @@ impl WebGLFramebuffer {
}
Some(WebGLFramebufferAttachment::Texture { texture: ref att_tex, level } ) => {
let info = att_tex.image_info_at_face(0, level as u32);
(info.data_type().map(|t| t.as_gl_constant()),
(info.internal_format().map(|t| t.as_gl_constant()),
Some((info.width() as i32, info.height() as i32)))
}
None => (None, None),

View file

@ -1,91 +1,43 @@
[framebuffer-object-attachment.html]
[WebGL test #474: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
[WebGL test #522: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT was FRAMEBUFFER_UNSUPPORTED or FRAMEBUFFER_UNSUPPORTED]
expected: FAIL
[WebGL test #475: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
[WebGL test #483: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #465: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
[WebGL test #537: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT was FRAMEBUFFER_UNSUPPORTED or FRAMEBUFFER_UNSUPPORTED]
expected: FAIL
[WebGL test #547: getError expected: INVALID_OPERATION. Was INVALID_FRAMEBUFFER_OPERATION : After CopyTexSubImage2D from missing attachment]
[WebGL test #476: at (0, 0) expected: 0,255,0,255 was 255,0,0,255]
expected: FAIL
[WebGL test #463: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
[WebGL test #491: at (0, 0) expected: 0,255,0,255 was 255,0,0,255]
expected: FAIL
[WebGL test #478: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
[WebGL test #478: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #470: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
[WebGL test #488: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #1: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054]
[WebGL test #481: at (0, 0) expected: 0,255,0,255 was 255,0,0,255]
expected: FAIL
[WebGL test #543: getError expected: INVALID_OPERATION. Was INVALID_FRAMEBUFFER_OPERATION : After ReadPixels from missing attachment]
[WebGL test #486: at (0, 0) expected: 0,255,0,255 was 255,0,0,255]
expected: FAIL
[WebGL test #2: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054]
[WebGL test #559: getError expected: INVALID_OPERATION. Was INVALID_FRAMEBUFFER_OPERATION : After CopyTexSubImage2D from missing attachment]
expected: FAIL
[WebGL test #469: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
[WebGL test #555: getError expected: INVALID_OPERATION. Was INVALID_FRAMEBUFFER_OPERATION : After ReadPixels from missing attachment]
expected: FAIL
[WebGL test #483: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION : ]
[WebGL test #473: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #477: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
[WebGL test #519: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT was FRAMEBUFFER_UNSUPPORTED or FRAMEBUFFER_UNSUPPORTED]
expected: FAIL
[WebGL test #476: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION : ]
expected: FAIL
[WebGL test #473: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
expected: FAIL
[WebGL test #467: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #468: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
expected: FAIL
[WebGL test #3: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054]
expected: FAIL
[WebGL test #466: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION : ]
expected: FAIL
[WebGL test #471: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION : ]
expected: FAIL
[WebGL test #545: getError expected: INVALID_OPERATION. Was INVALID_FRAMEBUFFER_OPERATION : After CopyTexImage2D from missing attachment]
expected: FAIL
[WebGL test #481: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION : ]
expected: FAIL
[WebGL test #507: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT was FRAMEBUFFER_UNSUPPORTED or FRAMEBUFFER_UNSUPPORTED]
expected: FAIL
[WebGL test #482: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #510: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT was FRAMEBUFFER_UNSUPPORTED or FRAMEBUFFER_UNSUPPORTED]
expected: FAIL
[WebGL test #480: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.]
expected: FAIL
[WebGL test #472: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #479: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #464: at (0, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #525: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT was FRAMEBUFFER_UNSUPPORTED or FRAMEBUFFER_UNSUPPORTED]
[WebGL test #557: getError expected: INVALID_OPERATION. Was INVALID_FRAMEBUFFER_OPERATION : After CopyTexImage2D from missing attachment]
expected: FAIL