Changes

Jump to: navigation, search

Platform/AreWeFunYet

2,727 bytes added, 01:18, 14 March 2012
Low-level or 3D Graphics
[Feedback from Games Work Week: https://games.etherpad.mozilla.org/8]
The WebGL is a quite thin layer on top of GL or GLES, with an extensive conformance suite and solid lines of communication between implementers. We currently have hardware acceleration support everywhere, though there is also latent support for using OSMesa as a software renderer.There is also [https://bugzilla.mozilla.org/show_bug.cgi?id=731836 a bug to add support for the Mesa llvmpipe software renderer].Chrome is integrating the proprietary SwiftShader software renderer. ==Compositing== Though we have similar GL support everywhere, one bottleneck is compositing between our accelerated WebGL contexts and our layer managers.Sharing GLTextures between WebGL and Layers is possible with OGL Layers, available on Mac and Linux. (though heavily blacklisted on Linux)Sharing EGLSurfaces provides the same functionality between ANGLE EGL+GLES and D3D10 Layers.A more complete description of the backend combinations is at [[Platform/Gfx/WebGLBackends]]. Currently, we lack composition acceleration on WinXP, most Linux, and Mobile.Mobile is being investigated as part of OMTC.Linux just needs better OGL driver support to allow unblacklisting.WinXP can't run D3D10 to take advantage of ANGLE's EGLSurface sharing. On Windows, we prefer ANGLE's implementation of EGL+GLES instead of using native WGL+GL.Part of the reason for this is blocklisting, but also because we don't yet have a way to interop between native GL and D3D Layers.There is [https://bugzilla.mozilla.org/show_bug.cgi?id=618898 a bug for implementing WGL_NV_DX_interop], which provides this interop.In the future, it might be preferable to default to using WGL+GL+interop, falling back to ANGLE based on blacklisting. ==Extensions== There are a number of pieces of developer-desired functionality that are not currently available in WebGL. One of the biggest missing feature features in WebGL is compressed textures, however there's already a [https://bugzilla.mozilla.org/show_bug.cgi?id=728017 bug for that].Others include:* Anisotropic filtering ([https://bugzilla.mozilla.org/show_bug.cgi?id=728354 bug])* Async uploads* Multiple FBO attachments* Instancing* Occlusion queries* Depth textures* sRGB A number of these are basically just uplifting existing GL/GLES extensions to WebGL, which is generally easy to do, and for which we have a [https://bugzilla.mozilla.org/show_bug.cgi?id=728319 tracking bug].However, this also means we can only support these extensions on devices with the respective GL/GLES extensions.We should gather telemetry for extension support to improve our knowledge of extensions' penetration. There should also be a way to expose fast-paths, especially to eliminate costly pixel format swizzling. (For example between BGRA and RGBA)  ==Tools== There is demand for better tools for understanding what WebGL is doing, so that it's easier to debug for developers.
= High-level 2D Graphics =
Confirm
94
edits

Navigation menu