This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
The EXT_color_buffer_half_float extension is part of the WebGL API and adds the ability to render to 16-bit floating-point color buffers.
WebGL extensions are available using the WebGLRenderingContext.getExtension() method. For more information, see also Using Extensions in the WebGL tutorial.
Note: This extension is available to both, WebGL1 and WebGL2 contexts. On WebGL 2, it's an alternative to using the EXT_color_buffer_float extension on platforms that support 16-bit floating point render targets but not 32-bit floating point render targets.
The OES_texture_half_float extension implicitly enables this extension.
ext.RGBA16F_EXTRGBA 16-bit floating-point color-renderable format.
ext.RGB16F_EXTRGB 16-bit floating-point format. In WebGL 1.0, this may be color-renderable (implementation-dependent). In WebGL 2.0, this format is not color-renderable.
ext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXTPassed to WebGLRenderingContext.getFramebufferAttachmentParameter() to get the framebuffer type.
ext.UNSIGNED_NORMALIZED_EXTThe framebuffer contains unsigned fixed-point components.
This extension extends WebGLRenderingContext.renderbufferStorage():
internalFormat parameter now accepts ext.RGBA16F_EXT and ext.RGB16F_EXT. However, ext.RGB16F_EXT support is optional and applications must check framebuffer completeness to determine if it's supported.internalFormat parameter now accepts ext.RGBA16F_EXT. The RGB16F format is not color-renderable in WebGL 2.0.It extends WebGLRenderingContext.getFramebufferAttachmentParameter():
pname parameter now accepts ext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT. An INVALID_OPERATION error is generated if attachment is DEPTH_STENCIL_ATTACHMENT and pname is FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT. When pname is ext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT, getFramebufferAttachmentParameter() returns either gl.FLOAT or gl.UNSIGNED_NORMALIZED_EXT for floating-point or unsigned fixed-point components respectively.const ext = gl.getExtension("EXT_color_buffer_half_float");
gl.renderbufferStorage(gl.RENDERBUFFER, ext.RGBA16F_EXT, 256, 256);
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
EXT_color_buffer_half_float |
63 | 17 | 4736–47Not supported on Windows. |
50 | 14 | 63 | 36 | 46 | 14 | 8.0 | 63 | 14 |
WebGLRenderingContext.getExtension()WebGLRenderingContext.renderbufferStorage()OES_texture_half_float
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/EXT_color_buffer_half_float