WebGL2: support TexImage3D (#37718)

Add TexImage3D method to WebGL2RenderingContext

Testing: conformance2 should pass. Also it should get
http://webglsamples.org/WebGL2Samples/#texture_2d_array and
http://webglsamples.org/WebGL2Samples/#texture_3d running.
Fixes: #26511

Now Servo can run texture_2d_array and texture_3d samples!

![圖片](https://github.com/user-attachments/assets/41b87563-08b8-4db3-b503-12f3a61dbed7)

![圖片](https://github.com/user-attachments/assets/3c62a4de-35ea-488d-b2e5-00e3aed52090)

And it can now run three.js too!

![圖片](https://github.com/user-attachments/assets/d880aa92-a154-4895-aa06-b7919d1fc869)

---------

Signed-off-by: Wu Yu Wei <yuweiwu@pm.me>
This commit is contained in:
Ngo Iok Ui (Wu Yu Wei) 2025-07-09 23:22:03 +09:00 committed by GitHub
parent 4499fdeb2b
commit 34c31ee418
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
43 changed files with 1341 additions and 980 deletions

View file

@ -1,181 +1,2 @@
[incompatible-texture-type-for-sampler.html]
expected: ERROR
[WebGL test #1]
expected: FAIL
[WebGL test #10]
expected: FAIL
[WebGL test #11]
expected: FAIL
[WebGL test #12]
expected: FAIL
[WebGL test #13]
expected: FAIL
[WebGL test #14]
expected: FAIL
[WebGL test #15]
expected: FAIL
[WebGL test #16]
expected: FAIL
[WebGL test #17]
expected: FAIL
[WebGL test #18]
expected: FAIL
[WebGL test #19]
expected: FAIL
[WebGL test #2]
expected: FAIL
[WebGL test #20]
expected: FAIL
[WebGL test #21]
expected: FAIL
[WebGL test #22]
expected: FAIL
[WebGL test #23]
expected: FAIL
[WebGL test #24]
expected: FAIL
[WebGL test #25]
expected: FAIL
[WebGL test #26]
expected: FAIL
[WebGL test #27]
expected: FAIL
[WebGL test #28]
expected: FAIL
[WebGL test #29]
expected: FAIL
[WebGL test #3]
expected: FAIL
[WebGL test #30]
expected: FAIL
[WebGL test #31]
expected: FAIL
[WebGL test #32]
expected: FAIL
[WebGL test #33]
expected: FAIL
[WebGL test #34]
expected: FAIL
[WebGL test #35]
expected: FAIL
[WebGL test #36]
expected: FAIL
[WebGL test #37]
expected: FAIL
[WebGL test #38]
expected: FAIL
[WebGL test #39]
expected: FAIL
[WebGL test #4]
expected: FAIL
[WebGL test #40]
expected: FAIL
[WebGL test #41]
expected: FAIL
[WebGL test #42]
expected: FAIL
[WebGL test #43]
expected: FAIL
[WebGL test #44]
expected: FAIL
[WebGL test #45]
expected: FAIL
[WebGL test #46]
expected: FAIL
[WebGL test #47]
expected: FAIL
[WebGL test #48]
expected: FAIL
[WebGL test #49]
expected: FAIL
[WebGL test #5]
expected: FAIL
[WebGL test #50]
expected: FAIL
[WebGL test #51]
expected: FAIL
[WebGL test #52]
expected: FAIL
[WebGL test #53]
expected: FAIL
[WebGL test #54]
expected: FAIL
[WebGL test #55]
expected: FAIL
[WebGL test #56]
expected: FAIL
[WebGL test #57]
expected: FAIL
[WebGL test #58]
expected: FAIL
[WebGL test #59]
expected: FAIL
[WebGL test #6]
expected: FAIL
[WebGL test #60]
expected: FAIL
[WebGL test #7]
expected: FAIL
[WebGL test #8]
expected: FAIL
[WebGL test #9]
expected: FAIL
disabled: too many tests to cause TIMEOUT