This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

16bit float uniforms in OpenGL ES 3.x when using ARM Mali GPUs?

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

Parents
  • 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

Reply
  • 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

Children