Expose EXT_texture_norm16 webgl extension
Categories
(Core :: Graphics: CanvasWebGL, enhancement)
Tracking
()
| Size Estimate | XS |
People
(Reporter: kbrussel, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: parity-chrome, parity-safari, web-feature, Whiteboard: [platform-feature][webcompat:risk-moderate])
User Story
web-feature: ext-texture-norm16
A colleague at Esri indicates that the EXT_texture_norm16 extension is important for GIS applications to achieve optimal performance with much of their texture data.
It looks like EXT_texture_norm16 was implemented as a draft extension in Bug 1658433. Now that this extension is community approved, could it please be exposed in Gecko?
Note that on macOS specifically, if Firefox aims to use ANGLE and its Metal backend, there's an implicit dependency on https://bugs.chromium.org/p/angleproject/issues/detail?id=6547 .
Thanks in advance.
Comment 1•4 years ago
|
||
Note that Firefox's use of EXT_texture_norm16 seems to be disabled, even if webgl.use-draft-extensions is set to true, if the user is using ANGLE, naming an unnamed bug: https://github.com/mozilla/gecko-dev/blob/37373cdeed20695af1ff1fd090f0736d9bf15e65/dom/canvas/WebGLExtensions.cpp#L103-L104
I wasn't able to find a historical reference for this bug, but I suspect this has been fixed by now.
Comment 2•3 years ago
|
||
Unity's WebGL build target would also make use of the texture formats supported by the EXT_texture_norm16 extension if it was to be made available.
Comment 3•3 years ago
|
||
We would also like to use this extension for 3D rendering of medical (volume) data. The data has 16-bit value range, and the alternative integer texture doesn't support linear filtering in hardware, which is sloooow when done in the shader....
What is the state of the draft extension?
Anything we could do that could be helpful to move this forward or to increase the priority a bit? 😊
Comment 4•2 years ago
|
||
I also would like to have EXT_texture_norm16. I am using 16-bit textures, and all my shaders work with textures as values between 0 and 1. I want to be able to use the same shader for 8-bit and 16-bit textures.
Updated•2 years ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Updated•11 months ago
|
Updated•2 months ago
|
Updated•1 month ago
|
Comment 5•1 month ago
|
||
This should be trivial.
I think the only work to do here is going to the function WebGLExtensionTextureNorm16::IsSupported and deleting these two lines:
if (!StaticPrefs::webgl_enable_draft_extensions()) return false;
...
if (gl->IsANGLE()) return false;
It has been 6 years since the code landed so I expect ANGLE bugs were fixed already. There is already a webgl-conf CTS test for this extension in https://searchfox.org/firefox-main/source/dom/canvas/test/webgl-conf/checkout/conformance2/extensions/ext-texture-norm16.html so we would know if it works as soon as it is unblocked by removing those lines.
Description
•