We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Is there a way to pass 16bit float uniforms in OpenGL ES 3.x on ARM Mali GPUs?
In Vulkan, VK_KHR_16bit_storage is doing the trick.
Also, is there an equivalent of VK_KHR_shader_float16_int8 in OpenGL ES ie. is using native 16 bit types in shaders possible?
The main goal of this is to reduce uniform buffer sizes, and reduce conversions between float32 & float16.
Thanks,Milan
Hi Milan,
There isn't a way to do this using buffers in GLES; uniforms in memory are always 32-bit, and there is no equivalent of the Vulkan 16-bit storage extension. The only way I know to get 16-bit data in memory into a vertex shader is to upload data via a fp16 texture, but beware that this has some side-effects in terms of which path it takes in the hardware so may be slower despite the in-memory size being smaller.
HTH,
Pete
Thanks Pete, all clear!