Why is VK_KHR_8bit_storage an extension?

An rgba32 image is just a two-dimensional array of 8-bit integers. There’s no reason to make 8-bit storage buffers an extension.

First, it was added to core in 1.2.

An rgba32 image is just a two-dimensional array of 8-bit integers.

I’ll assume you meant an “rgba8 image”.

The extension in question allows shaders to directly engage with 8-bit values. Reading from or writing to an rgba8 image involves going through texture units or similar hardware. This can mean that the shader never directly engages with 8-bit values; it’s the texture unit that converts 8-bit normalized values to 32-bit floating-point ones for consumption in the shader.

So the fact that you can access an rgba8 image does not mean that the hardware’s shader logic can directly do so.

Furthermore, the extension deals with SSBO, UBO, and push constant access to 8-bit values. Again, the hardware’s shader logic may not have the ability to do that directly. Hence the extension.

1 Like