Add initial support for WebGL 2 BlitFramebuffer (#26389)

Add initial support for the WebGL2 BlitFramebuffer call.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Istvan <istvan.miklos@h-lab.eu>
This commit is contained in:
Josh Matthews 2025-01-06 13:37:35 -05:00 committed by GitHub
parent 2575a0daf1
commit c43762faea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 1686 additions and 31 deletions

View file

@ -1,8 +1,13 @@
[invalidate-framebuffer.html]
bug: https://github.com/servo/servo/issues/20529
expected:
if os == "linux": ERROR
if os == "linux": OK
if os == "mac": CRASH
[WebGL test #17: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #25: getError expected one of: INVALID_OPERATION or INVALID_ENUM. Was NO_ERROR : calling invalidateSubFramebuffer to invalidate a COLOR_ATTACHMENT that exceeds MAX_COLOR_ATTACHMENT should generate INVALID_ENUM or INVALID_OPERATION.]
expected: FAIL
[WebGL test #26: getError expected one of: INVALID_OPERATION or INVALID_ENUM. Was NO_ERROR : calling invalidateFramebuffer to invalidate a COLOR_ATTACHMENT that exceeds MAX_COLOR_ATTACHMENT should generate INVALID_ENUM or INVALID_OPERATION.]
expected: FAIL

View file

@ -1,4 +1,45 @@
[multisample-draws-between-blits.html]
expected: ERROR
[WebGL test #0: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #0: whole thing\nat (0, 0) expected: 255,0,0,255 was 65,255,65,255]
expected: FAIL
[WebGL test #1: left\nat (0, 0) expected: 255,0,0,255 was 65,255,65,255]
expected: FAIL
[WebGL test #2: right\nat (64, 0) expected: 0,255,0,255 was 65,255,65,255]
expected: FAIL
[WebGL test #3: left edge\nat (0, 0) expected: 255,0,0,255 was 65,255,65,255]
expected: FAIL
[WebGL test #4: right edge\nat (96, 0) expected: 0,255,0,255 was 65,255,65,255]
expected: FAIL
[WebGL test #5: left of center\nat (32, 0) expected: 255,128,128,255 was 65,255,65,255]
expected: FAIL
[WebGL test #6: right of center\nat (64, 0) expected: 128,255,128,255 was 65,255,65,255]
expected: FAIL
[WebGL test #0: whole thing\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #1: left\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #2: right\nat (64, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #3: left edge\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #4: right edge\nat (96, 0) expected: 0,255,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #5: left of center\nat (32, 0) expected: 255,128,128,255 was 0,0,0,0]
expected: FAIL
[WebGL test #6: right of center\nat (64, 0) expected: 128,255,128,255 was 0,0,0,0]
expected: FAIL

View file

@ -1,5 +1,51 @@
[multisample-with-full-sample-counts.html]
expected: ERROR
[WebGL test #0: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #0: User buffer has been rendered to red with sample = 1, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #1: User buffer has been rendered to red with sample = 1, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #2: User buffer has been rendered to red with sample = 2, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #3: User buffer has been rendered to red with sample = 2, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #4: User buffer has been rendered to red with sample = 3, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #5: User buffer has been rendered to red with sample = 3, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #6: User buffer has been rendered to red with sample = 4, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #7: User buffer has been rendered to red with sample = 4, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #8: User buffer has been rendered to red with sample = 5, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #9: User buffer has been rendered to red with sample = 5, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #10: User buffer has been rendered to red with sample = 6, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #11: User buffer has been rendered to red with sample = 6, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #12: User buffer has been rendered to red with sample = 7, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #13: User buffer has been rendered to red with sample = 7, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #14: User buffer has been rendered to red with sample = 8, coverageValue = 1 and isInverted = false\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL
[WebGL test #15: User buffer has been rendered to red with sample = 8, coverageValue = 0 and isInverted = true\nat (0, 0) expected: 255,0,0,255 was 0,0,0,0]
expected: FAIL

View file

@ -1,5 +1,4 @@
[multisampled-depth-renderbuffer-initialization.html]
expected: ERROR
[WebGL test #5: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
@ -11,3 +10,57 @@
[WebGL test #8: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #9: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #17: should be 0,0,255,255\nat (16, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #25: should be 0,0,255,255\nat (1, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #33: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #39: getError expected: NO_ERROR. Was INVALID_OPERATION : should be no error after renderbufferStorageMultisample(DEPTH_COMPONENT16).]
expected: FAIL
[WebGL test #42: should be 0,0,255,255\nat (1, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #50: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #58: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #66: should be 0,0,255,255\nat (1, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #74: should be 0,0,255,255\nat (1, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #80: getError expected: NO_ERROR. Was INVALID_OPERATION : should be no error after renderbufferStorageMultisample(DEPTH_COMPONENT16).]
expected: FAIL
[WebGL test #83: should be 0,0,255,255\nat (1, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #17: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #25: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #42: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #66: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #74: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #83: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL

View file

@ -1,5 +1,33 @@
[multisampled-renderbuffer-initialization.html]
expected: ERROR
[WebGL test #9: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #10: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 65,255,65,255]
expected: FAIL
[WebGL test #22: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 4,255,1,134]
expected: FAIL
[WebGL test #35: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 5,0,0,50]
expected: FAIL
[WebGL test #48: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 65,255,65,255]
expected: FAIL
[WebGL test #61: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 5,0,252,190]
expected: FAIL
[WebGL test #73: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 65,255,65,255]
expected: FAIL
[WebGL test #85: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 65,255,65,255]
expected: FAIL
[WebGL test #98: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 65,255,65,255]
expected: FAIL
[WebGL test #111: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 65,255,65,255]
expected: FAIL
[WebGL test #124: user buffer has been initialized to 0\nat (0, 0) expected: 0,0,0,0 was 65,255,65,255]
expected: FAIL

View file

@ -1,5 +1,36 @@
[multisampled-stencil-renderbuffer-initialization.html]
expected: ERROR
[WebGL test #5: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
expected: FAIL
[WebGL test #6: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #22: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #30: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #36: getError expected: NO_ERROR. Was INVALID_OPERATION : should be no error after renderbufferStorageMultisample(STENCIL_INDEX8).]
expected: FAIL
[WebGL test #39: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #47: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #55: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #63: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #71: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL
[WebGL test #77: getError expected: NO_ERROR. Was INVALID_OPERATION : should be no error after renderbufferStorageMultisample(STENCIL_INDEX8).]
expected: FAIL
[WebGL test #80: should be 0,0,255,255\nat (0, 0) expected: 0,0,255,255 was 0,255,0,255]
expected: FAIL