[webkit-reviews] review requested: [Bug 53201] Make GraphicsContext3D use DrawingBuffer : [Attachment 114198] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 8 19:37:24 PST 2011


Jeff Timanus <twiz at chromium.org> has asked  for review:
Bug 53201: Make GraphicsContext3D use DrawingBuffer
https://bugs.webkit.org/show_bug.cgi?id=53201

Attachment 114198: Patch
https://bugs.webkit.org/attachment.cgi?id=114198&action=review

------- Additional Comments from Jeff Timanus <twiz at chromium.org>
Ok.  One more time.  Where were we, again?

I re-consolidated the relationships between GraphicsContext3D, DrawingBuffer,
WebGLRenderingContext, and WebGLLayerChromium.	The Drawing buffer is now the
main point of interaction between all of these classes.

- GraphicsContext3D no longer caches the platform layer, and only references
DrawingBuffer instances via arguments to the necessary calls.
- WebGLLayerChromium no longer keeps a reference to a GraphicsContext3D. 
Instead, it keeps a raw pointer to the DrawingBuffer instance that created it. 
A raw pointer is necessary to prevent a reference cycle.  The DrawingBuffer
uninstalls itself from the WebGLLayerChromium at destruction.
- WebGLRenderingContext has no interaction with any of the platform layer code.
 Only the DrawingBuffer is used to manage the FBO resources used by the
context.

I've tested this change thoroughly.
 - Printing of WebGL content functions properly.
 - No layout test failures reported on Win7 with platform=chromium-gpu.
 - Of the webgl conformance tests, no new failures are introduced.  However, on
my local machine, I do observe failures due to multi-sampling behaviour of my
card (HD 5770).
  The following tests fail due to inperceptible pixel differences:
   conformance/glsl/functions/glsl-function-cross.html
   conformance/glsl/functions/glsl-function-dot.html
   conformance/glsl/functions/glsl-function-faceforward.html
   conformance/glsl/functions/glsl-function-reflect.html
   conformance/glsl/functions/glsl-function-smoothstep-float.html
   conformance/glsl/functions/glsl-function-smoothstep-gentype.html 
   
  The following tests are presently failing in the canary (17.0.932.0), and
also fail with my change (these may also be related to the hardware AA of my
GPU):
   conformance/glsl/functions/glsl-function-atan.html
   conformance/glsl/functions/glsl-function-atan-xy.html
   conformance/glsl/functions/glsl-function-mod-gentype.html
   conformance/glsl/misc/struct-nesting-under-maximum.html
   conformance/limits/gl-min-uniforms.html
   conformance/misc/object-deletion-behaviour.html
   conformance/renderbuffers/framebuffer-object-attachment.html
   conformance/textures/texture-mips.html


More information about the webkit-reviews mailing list