Why there's no rgb32Float in Metal?

I noticed that MTLPixelFormat has this cases:

case r32Float = 55

case rg32Float = 105

case rgba32Float = 125

But no case rgb32Float. What's the reason for such a discrimination?

Accepted Answer

GPU pixel formats typically use a power-of-2 number of bytes: 1, 2, 4, 8, or 16 bytes, i.e. 8, 16, 32, 64, or 128 bits. The formats you list are 4 bytes, 8, and 16. A hypothetical rgb32Float would be 12 bytes or 96 bits, neither of which is a power of 2.

Why there's no rgb32Float in Metal?
 
 
Q