GL_DEPTH32F_STENCIL8
is a 64-bit format; 32-bit for depth, 8-bit for stencil and 24-bit for alignment.
Sometimes knowing both of the desktop graphics APIs comes in handy, as this is the same format that was added to D3D10. D3D makes the size of its formats much easier to grasp just by looking at their name.
In D3D, the format is known as DXGI_FORMAT_D32_FLOAT_S8X24_UINT
:
D32_FLOAT
indicates that it stores 32-bit depth (floating-point)
S8X24_UINT
indicates that it stores 8-bit stencil + 24-bit unused (unsigned integer)
D3D is nice in that formats explicitly announce when there are unused bits for the purpose of padding (this is what Xn
in a format indicates). There is no color-renderable 8-bit RGB
format in D3D because that messes with alignment; they are all RGBX
or some permutation of the 4 in order to produce a 32-bit pixel.
To give you an authoritative answer I will refer you to the extension which first added this format to GL:
GL_ARB_depth_buffer_float
Overview
[...]
Additionally, this extension provides new packed depth/stencil pixel formats (see EXT_packed_depth_stencil) that have 64-bit pixels consisting of a 32-bit floating-point depth value, 8 bits of stencil, and 24 unused bits. A packed depth/stencil texture internal format is also provided.