Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fully implement WebGL 1.0 #10209

Open
emilio opened this issue Mar 26, 2016 · 40 comments
Open

Fully implement WebGL 1.0 #10209

emilio opened this issue Mar 26, 2016 · 40 comments

Comments

@emilio
Copy link
Member

@emilio emilio commented Mar 26, 2016

This is intended to be a meta-bug.

Some of the remaining methods are blocked on #5014 (those that receive ArrayBufferView or BufferDataSource and have overrides), but some others can be implemented without problems.

I'll try to file individual issues for each remaining deficiency, since some of them can be E-Easy.

General information for WebGL bugs

Click to expand

Spec

The WebGL 1.0 spec is here.

GLES 2.0 spec

WebGL is based on the GLES 2.0 spec, so the WebGL spec often leverages details to it. You can find a PDF version here.

Current Code

DOM

The DOM side of the WebGL code can be found in the following files:

  • components/script/dom/webglrenderingcontext.rs
  • components/script/dom/webglactiveinfo.rs
  • components/script/dom/webglbuffer.rs
  • components/script/dom/webglcontextevent.rs
  • components/script/dom/webglframebuffer.rs
  • components/script/dom/webglobject.rs
  • components/script/dom/webglprogram.rs
  • components/script/dom/webglrenderbuffer.rs
  • components/script/dom/webglrenderingcontext.rs
  • components/script/dom/webglshader.rs
  • components/script/dom/webglshaderprecisionformat.rs
  • components/script/dom/webgltexture.rs
  • components/script/dom/webgluniformlocation.rs

WebGL thread

The WebGL thread is the thread that receives the WebGL messages from the DOM, and either executes it or dispatchs it to the WebRender backend.

You probably don't need to touch anything here, but in case you want to take a look, the file is:

  • components/canvas/webgl_paint_thread.rs

WebGL command definition, execution, and other types

The rest of the WebGL definitions and the command implementations are in webrender_traits's webgl.rs file, in order to be shared by both Servo and WebRender.

You'll want to take a look to the WebGLCommand definition and to the apply function.

To work actively with it the best is to use a Cargo override.

Note that WebGLCommand is re-exported from canvas_traits as CanvasWebGLMessage for legacy reasons (to avoid extra rebase pain while webrender hadn't merged yet).

Missing safety checks

  • Properly implement "Enabled Vertex Attributes and Range Checking" (#20599)
  • Check that we implement all GLSL constraints properly (#20601)
  • Properly implement "Completeness of Cube Map Framebuffer Attachments" (#20654)
  • Implement WebGL checks against feedback loops (#21288)
  • Properly implement stencil checks (#20555)
  • Initialize textures to transparent black in some cases (#21716)
  • Validate source passed to gl.shaderSource() (#21754)

Pending implementations

  • Support antialiasing's WebGL context option (#21285)
  • Support discarding and recreating WebGL contexts (#15266)
  • Implement compressed textures in WebGL (#20594)
  • Implement drawing a WebGL canvas into a 2D canvas (#21556)
  • Implement ImageBitmap (#20650)
  • Create smaller-than-requested drawing buffer when necessary (#21718)
  • WebGL canvas is scaled when made fullscreen (#21290)
  • Properly defend against overflows in WebGLRenderingContext.bufferSubData (#20558)

Other pending things and improvements

  • Steal Firefox knowledge about WebGL context robustness (#21144)
  • Properly support WebIDL extended attribute [AllowShared] (#20515)
  • Cache drawingBufferWidth/drawingBufferHeight in WebGLRenderingContext (#20530)
  • Cache result of WebGLRenderingContext.getContextAttributes (#20532)
  • Don't allocate an empty buffer for nothing in WebGLRenderingContext.bufferData (#20557)
  • Remove indirections for WebGL texture parameters (#20596)
  • Clean up the WebGL extension infrastructure (#20642)
  • Maybe introduce a new task source specific to WebGL (#20643)
  • Khronos tests for WebGL shouldn't use an index in the test name (#20668)
  • [Throws] does not apply per-overload (#20516)
  • Crash when loading shader on html5test.com (#21191)
  • WebGL water demo doesn't display anything (#21173)
  • Firefox reports larger "max varying vectors", "max color buffer", and "max combined texture units" limits than Servo (#21172)
  • Investigate real webgl-based apps (#21151)
  • Build a WebGL profiler (#21150)

Done stuff

  • Check for invalid characters in WebGL location and attrib names (#21287)
  • Audit the behaviour of WebGLRenderingContext.getProgramInfoLog (#20561)
  • handle_object_deletion may be wrong (#21352)
  • Clear the framebuffer when initializing and resizing WebGL canvas (#21475)
  • Support unions as distinguishing WebIDL parameter (#20513)
  • Implement the pending texImage2D overload (#10443)
  • Implement copyTexImage2D (#11147)
  • Implement copyTexSubImage2D (#11147)
  • Implement detachShader (#10215)
  • Implement finish (#10212, #10215)
  • Implement flush (#10213, #10215)
  • Implement framebufferRenderbuffer (#13639)
  • Implement framebufferTexture2D (#13639)
  • Implement generateMipmap (#10215)
  • Implement getActiveAttrib (#10379)
  • Implement getActiveUniform (#10397)
  • Implement getAttachedShaders (#20411)
  • Implement getFramebufferAttachmentParameter (#20317)
  • Implement getProgramInfoLog (#13199)
  • Implement getRenderbufferParameter (#20514)
  • Implement getTexParameter (#20144)
  • Implement getShaderPrecisionFormat (#16544)
  • Implement getUniform (#21202)
  • Implement getVertexAttrib
  • Implement getVertexAttribOffset (#16893)
  • Implement isBuffer (#11357)
  • Implement isEnabled (#13040)
  • Implement isFramebuffer (#11357)
  • Implement isRenderBuffer (#11357)
  • Implement isShader (#11072)
  • Implement isTexture (#11072)
  • Implement readPixels (#10668)
  • Implement renderbufferStorage (#13872)
  • Implement sampleCoverage
  • Implement stencilFunc (#10659)
  • Implement stencilFuncSeparate (#10659)
  • Implement stencilMask (#10659)
  • Implement stencilMaskSeparate (#10659)
  • Implement stencilOp (#10659)
  • Implement stencilOpSeparate (#10659)
  • Implement texSubImage2D (#11168)
  • Implement uniform1i (#10417)
  • Implement uniform1iv (#10417)
  • Implement uniform2f (#10356)
  • Implement uniform2fv (#10417)
  • Implement uniform2i (#10417)
  • Implement uniform2iv (#10417)
  • Implement uniform3f (#10417)
  • Implement uniform3fv (#10417)
  • Implement uniform3i (#10417)
  • Implement uniform3iv (#10417)
  • Implement uniform4i (#10368)
  • Implement uniform4iv (#10368)
  • Implement uniformMatrix2fv (#10671)
  • Implement uniformMatrix3fv (#10671)
  • Implement uniformMatrix4fv (#10671)
  • Implement validateProgram (#13199)
  • Properly check for limit in WebGLRenderingContext.activeTexture (#20531)
  • Implement gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE) (#20535)
  • Implement gl.getParameter(gl.BLEND_COLOR) (#20536)
  • Implement gl.getParameter(gl.COLOR_CLEAR_VALUE) (#20537)
  • Implement gl.getParameter(gl.COLOR_WRITEMASK) (#20538)
  • Implement gl.getParameter(gl.COMPRESSED_TEXTURE_FORMATS) (#20544)
  • Implement gl.getParameter(gl.DEPTH_RANGE) (#20545)
  • Implement gl.getParameter(gl.GENERATE_MIPMAP_HINT) (#20546)
  • Support IMPLEMENTATION_COLOR_READ_FORMAT and IMPLEMENTATION_COLOR_READ_TYPE (#20547)
  • Support MAX_FRAGMENT_UNIFORM_VECTORS and MAX_VERTEX_UNIFORM_VECTORS (#20548)
  • Implement gl.getParameter(gl.MAX_VARYING_VECTORS) (#20549)
  • Support SCISSOR_TEST and SCISSOR_BOX (#20551)
  • Implement gl.getParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL) (#20552)
  • Implement gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL) (#20553)
  • Implement gl.getParameter(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL) (#20554)
  • Properly implement WebGLRenderingContext.bindBuffer checks (#20556)
  • Properly implement the checks for gl.renderbufferStorage (#20563)
  • Audit the checks in WebGLRenderingContext.getFramebufferAttachmentParameter (#20593)
  • Properly check the argument of WebGLRenderingContext.clear (#20623)
  • Check whether we bind GLclampf correctly (#20652)
  • Return the correct types in gl.getParameter and friends (#20655)
  • Properly check that WebGL objects are passed to the right WebGL context (#21133)
  • Implement attribute aliasing check in WebGL (#21136)
  • Fix uninitialized data leak from renderbufferStorage (#13710)
  • WebGLShader destructor frequently asserts when closing webgl pages (#21177)
  • Re-check our validations when there are multiple WebGLRenderingContexts in the same page.
  • Create tests for the changes in #20598 (#20607)
  • Make our validations strongly-typed (#10693)
  • Remove indirections for some WebGL parameters (#20550)
  • Stop re-exporting WebGLCommand as CanvasWebGLMessage (#10211)
  • Update our angle dependency
  • Test using the WebGL conformance test suite (#10373)
  • Update our interpretation of the spec to match other browser engines (#8753)
  • Cache which server-side GL capabilities are enabled (#20534)
  • Remove indirections for WebGL program parameters (#20560)
  • Remove indirections for WebGL shader parameters (#20562)
  • Audit that the framebuffer status is properly updated in WebGL (#20570)
  • Cache the info needed for gl.getActiveAttrib and gl.getActiveUniform (#20600)
  • Cache info needed for gl.getVertexAttrib and gl.getVertexAttribOffset (#20608)
  • Only mark canvas as dirty when no framebuffer is bound (#21691)
  • Check for renderbuffer storage exceeding max renderbuffer size (#21485)
  • gl-pointcoord.html doesn't draw anything (#21719)
  • oes-texture-half-float.html panics with a GL error when running in desktop mode (#21663)
  • Implement component check in Image2D methods (#20595)
  • Support preserveDrawingBuffer's WebGL context option (#21132)
@emilio
Copy link
Member Author

@emilio emilio commented Mar 26, 2016

@cbrewster
Copy link
Member

@cbrewster cbrewster commented Mar 27, 2016

I will be working on implementing generateMipmap

@emilio
Copy link
Member Author

@emilio emilio commented Mar 27, 2016

@ConnorGBrewster I opened #10226, let's discuss there :)

@saurvs
Copy link
Contributor

@saurvs saurvs commented Apr 4, 2016

I'd like to work on getActiveUniform

@emilio
Copy link
Member Author

@emilio emilio commented Apr 4, 2016

@saurvs I opened #10397 for you, feel free to ask any question you might have there :)

@autrilla
Copy link
Contributor

@autrilla autrilla commented Apr 4, 2016

I'd like to work on all of the remaining uniform methods, if that's okay

@emilio
Copy link
Member Author

@emilio emilio commented Apr 5, 2016

@autrilla They're yours! I've opened #10417 to keep track of them, feel free to leave any questions there :)

@KiChjang
Copy link
Member

@KiChjang KiChjang commented Apr 17, 2016

I'm looking at the stencil* functions.

@dlrobertson
Copy link
Contributor

@dlrobertson dlrobertson commented Apr 27, 2016

I'm taking a crack at copyTex* and texSubImage2D

@DDEFISHER
Copy link
Contributor

@DDEFISHER DDEFISHER commented May 5, 2016

Attempting

Implement isShader
Implement isTexture
bors-servo added a commit to servo/gleam that referenced this issue May 6, 2016
add is_shader and is_texture functions

For servo/servo#10209 (comment)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/gleam/83)
<!-- Reviewable:end -->
bors-servo added a commit to servo/webrender_traits that referenced this issue May 6, 2016
add is_shader and is_texture commands

For ` Implement isShader `and `Implement isTexture` in servo/servo#10209 (comment)
@daoshengmu
Copy link
Contributor

@daoshengmu daoshengmu commented May 9, 2016

I would like to help texSubImage2D

@emilio
Copy link
Member Author

@emilio emilio commented May 10, 2016

@daoshengmu: sounds great!

@danlrobertson, are you still working on texSubImage2D?

@daoshengmu
Copy link
Contributor

@daoshengmu daoshengmu commented May 10, 2016

@danlrobertson Sorry for I didn't notice you are working on texSubImage2D. I just want to help some implementation of WebGL. If you are still working on it, I can pick copyTexImage2D and copyTexSubImage2D @emilio

@dlrobertson
Copy link
Contributor

@dlrobertson dlrobertson commented May 10, 2016

@daoshengmu No problem! It's totally okay! It's my bad for taking so long to get a PR in, but alas life happens 😄...

Are you okay with taking texSubImage2D? I already implemented the necesary components in wr_traits. I should have a PR in shortly for copyTex*, but I actually hadn't started on texSubImage2D. If you want texSubImage2D, go for it! I have no particular attachment to it. Just wanted to learn a bit about webgl code...

@daoshengmu
Copy link
Contributor

@daoshengmu daoshengmu commented May 12, 2016

@danlrobertson Sure. I will take texSubImage2D. Thanks! 😄

@dlrobertson dlrobertson mentioned this issue May 12, 2016
3 of 3 tasks complete
bors-servo added a commit that referenced this issue May 12, 2016
Impl copyTexImage2D and copyTexSubImage2D

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

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

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

Implement copyTexImage2D and copyTexSubImage2D for WebGLRenderingContext. Feedback would be appreciated. I did my best to follow the [spec](https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.8). Please let me know if I missed anything. As always any feedback, comments,or critiques are very welcome 😄

Part of #10209

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11147)
<!-- Reviewable:end -->
bors-servo added a commit to servo/gleam that referenced this issue Feb 26, 2018
Add glGetTexParameter

Needed for servo/servo#10209.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/gleam/142)
<!-- Reviewable:end -->
@mkollaro mkollaro mentioned this issue Feb 28, 2018
4 of 5 tasks complete
bors-servo added a commit that referenced this issue Feb 28, 2018
Add WebGL function glGetTexParameter

<!-- Please describe your changes on the following line: -->
Add WebGL function glGetTexParameter

---
<!-- 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
- [x] These changes fix #10209

<!-- 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/20144)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Mar 5, 2018
Add WebGL function glGetTexParameter

<!-- Please describe your changes on the following line: -->
Add WebGL function glGetTexParameter

---
<!-- 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
- [x] These changes fix part of #10209

<!-- 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/20144)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Mar 5, 2018
Add WebGL function glGetTexParameter

<!-- Please describe your changes on the following line: -->
Add WebGL function glGetTexParameter

---
<!-- 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
- [x] These changes fix part of #10209

<!-- 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/20144)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Mar 6, 2018
Add WebGL function glGetTexParameter

<!-- Please describe your changes on the following line: -->
Add WebGL function glGetTexParameter

---
<!-- 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
- [x] These changes fix part of #10209

<!-- 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/20144)
<!-- Reviewable:end -->
@gootorov
Copy link
Contributor

@gootorov gootorov commented Mar 15, 2018

Working on getFramebufferAttachmentParameter().

bors-servo added a commit that referenced this issue Mar 16, 2018
…er, r=<try>

Implement WebGL getFrameBufferAttachmentParameter API

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of #10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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/20317)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Mar 21, 2018
…er, r=emilio

Implement WebGL getFrameBufferAttachmentParameter API

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of #10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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/20317)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Mar 21, 2018
…er, r=jdm

Implement WebGL getFrameBufferAttachmentParameter API

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of #10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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/20317)
<!-- Reviewable:end -->
@jdm jdm added this to To do in Mixed Reality MVP Mar 21, 2018
@jdm jdm removed this from To do in Mixed Reality MVP Mar 21, 2018
bors-servo added a commit that referenced this issue Mar 22, 2018
…er, r=jdm

Implement WebGL getFrameBufferAttachmentParameter API

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of #10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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/20317)
<!-- Reviewable:end -->
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Mar 22, 2018
…er API (from gootorov:webgl-getFramebufferAttachmentParameter); r=jdm

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of servo/servo#10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4aaac61a87f4e45e46d0591be73ce108e562c33f

--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : e73752c3c2074239d5db1a9fec8ea4d64eb572ef
@fnune
Copy link
Contributor

@fnune fnune commented Apr 4, 2018

I'd like to do getRenderbufferParameter

@jdm jdm moved this from To Do to In Progress in Mixed Reality future needs Jun 12, 2018
@atouchet
Copy link
Contributor

@atouchet atouchet commented Aug 23, 2018

This issue no longer seems to be keeping a record of edits anymore for some reason.

Edit: It looks to be working now.

@nox
Copy link
Member

@nox nox commented Sep 19, 2018

I added a bunch of issues.

bors-servo added a commit that referenced this issue May 14, 2019
Add initial support for WebGL compressed textures

This patch is an initial implementation of WebGL compressed texture support, it contains

- functions for registering and querying compressed texture extensions
- initial implementation of `CompressedTexImage2D` and `CompressedTexSubImage2D` and their parameter validation
- implementation of S3TC (DXT1, DXT3, DXT5) and ETC1 extensions as examples

What's still missing:

- some of the parameter validation steps are missing
- the pixel comparison tests fail for more complex cases (I'm probably missing something trivial at the GL calls)

Related: #10209 and #20594

cc @jdm @zakorgy

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] Related issues: #10209, #20594
- [x] There are tests for these changes

<!-- 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/23226)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue May 16, 2019
Add initial support for WebGL compressed textures

This patch is an initial implementation of WebGL compressed texture support, it contains

- functions for registering and querying compressed texture extensions
- initial implementation of `CompressedTexImage2D` and `CompressedTexSubImage2D` and their parameter validation
- implementation of S3TC (DXT1, DXT3, DXT5) and ETC1 extensions as examples

What's still missing:

- some of the parameter validation steps are missing
- the pixel comparison tests fail for more complex cases (I'm probably missing something trivial at the GL calls)

Related: #10209 and #20594

cc @jdm @zakorgy

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] Related issues: #10209, #20594
- [x] There are tests for these changes

<!-- 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/23226)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue May 21, 2019
Add initial support for WebGL compressed textures

This patch is an initial implementation of WebGL compressed texture support, it contains

- functions for registering and querying compressed texture extensions
- initial implementation of `CompressedTexImage2D` and `CompressedTexSubImage2D` and their parameter validation
- implementation of S3TC (DXT1, DXT3, DXT5) and ETC1 extensions as examples

What's still missing:

- some of the parameter validation steps are missing
- the pixel comparison tests fail for more complex cases (I'm probably missing something trivial at the GL calls)

Related: #10209 and #20594

cc @jdm @zakorgy

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] Related issues: #10209, #20594
- [x] There are tests for these changes

<!-- 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/23226)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue May 21, 2019
Add initial support for WebGL compressed textures

This patch is an initial implementation of WebGL compressed texture support, it contains

- functions for registering and querying compressed texture extensions
- initial implementation of `CompressedTexImage2D` and `CompressedTexSubImage2D` and their parameter validation
- implementation of S3TC (DXT1, DXT3, DXT5) and ETC1 extensions as examples

What's still missing:

- some of the parameter validation steps are missing
- the pixel comparison tests fail for more complex cases (I'm probably missing something trivial at the GL calls)

Related: #10209 and #20594

cc @jdm @zakorgy

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] Related issues: #10209, #20594
- [x] There are tests for these changes

<!-- 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/23226)
<!-- Reviewable:end -->
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this issue Oct 2, 2019
…er API (from gootorov:webgl-getFramebufferAttachmentParameter); r=jdm

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of servo/servo#10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4aaac61a87f4e45e46d0591be73ce108e562c33f

UltraBlame original commit: 09f496975981051ad17639ee00242998598149d5
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this issue Oct 2, 2019
…er API (from gootorov:webgl-getFramebufferAttachmentParameter); r=jdm

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of servo/servo#10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4aaac61a87f4e45e46d0591be73ce108e562c33f

UltraBlame original commit: 09f496975981051ad17639ee00242998598149d5
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this issue Oct 2, 2019
…er API (from gootorov:webgl-getFramebufferAttachmentParameter); r=jdm

<!-- Please describe your changes on the following line: -->
Implementation of `getFramebufferAttachmentParameter` as in WebGL1 specification.

Part of servo/servo#10209.

r? emilio or jdm.

---
<!-- 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

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4aaac61a87f4e45e46d0591be73ce108e562c33f

UltraBlame original commit: 09f496975981051ad17639ee00242998598149d5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.