https://bugs.freedesktop.org/show_bug.cgi?id=97305
--- Comment #11 from Ilia Mirkin imirkin@alum.mit.edu --- (In reply to Marek Olšák from comment #10)
(In reply to Ilia Mirkin from comment #9)
(In reply to Marek Olšák from comment #5)
Pre-GCN cards require an alignment of 256 bytes for uniform buffers. GCN cards only require 4 byte alignment there.
All other buffer binding points require 1, 2, or 4 bytes depending on the texel size. It's really min(texel_size, 4).
That means that you have to return max(texel_size) for the GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT. You only get one cap, and a texture buffer can be any offset.
That's what we already do.
You return 4. However that's not enough if I set the format to GL_RGBA32I. There's no provision in the spec to disallow someone feeding you a aligned-to-4 buffer with GL_RGBA32I format if you return "4" as the value.
Oh, unless I totally misunderstood what you were saying, and that situation should work. In which case, apologies for the noise.