[Mesa-dev] glBlitFramebuffer and sRGB vs piglit

Marek Olšák maraeo at gmail.com
Sun Dec 15 16:37:53 PST 2013


Hi everybody,

There is an inconsistence in the piglit glBlitFramebuffer tests. If
both src and dst are sRGB, piglit expects this from glBlitFramebuffer:

if (dst.num_samples == 1 && src.num_samples > 1) {
   enable the sRGB->linear conversion for src reads
   and the linear->sRGB conversion for dst writes;
}
else {
   disable the sRGB conversions;
}

Is this the intended behavior?
Regardless of the GL spec, what behavior do applications expect? (if
somebody knows)

Also most of the piglit BlitFramebuffer tests with sRGB formats expect
the opposite than what GL 4.4 specifies, and if we implemented the GL
4.4 behavior, all those tests would fail.

For reference, GL 4.4 requires this:
- if src.format is sRGB, do the sRGB->linear conversion for reads. (I
think it can only be disabled with texture views.)
- if dst.format is sRGB and GL_FRAMEBUFFER_SRGB is enabled, do the
linear->sRGB conversion for dst writes.

st/mesa does this:
- Always disable the sRGB conversions.

I think the older GL specs specify a different behavior for sRGB
blits, which roughly corresponds to how st/mesa does it. Yeah, it's a
pretty messy situation. So, do you have any answers to the 2 questions
above?

Marek


More information about the mesa-dev mailing list