I don't see why FRONT and BACK should be any different, so this is probably okay.
The Mesa front buffer thing is an optimization. There is no point in allocating the front buffer by default if almost no apps use it. Marek On Mon, Aug 17, 2015 at 11:34 PM, Dave Airlie <airl...@gmail.com> wrote: > On 17 August 2015 at 20:25, Marek Olšák <mar...@gmail.com> wrote: >> Gallium does create the front buffer (with DRI2 at least), but it's >> created only when it's used. glDrawBuffer(GL_FRONT) creates it >> usually. > > So the problem is OpenGL conformance seems to assume the front buffer > will exist for querying even if it isn't going to draw to it. > > So waiting until glDrawBuffer(GL_FRONT) doesn't cut the mustard. > > The other option I came up with, was if we don't have a FRONT_LEFT attachment > we just read the values from the BACK_LEFT attachment under the assumption > they should be the same. This would be a mesa level change, and a bit > of a layering > violation I think. > > Dave. >> >> Marek >> >> On Mon, Aug 17, 2015 at 5:23 AM, Dave Airlie <airl...@gmail.com> wrote: >>> From: Dave Airlie <airl...@redhat.com> >>> >>> It appears CTS does a lot of >>> >>> glGetFrameBufferAttachmentParameteriv with GL_FRONT_LEFT, >>> >>> but gallium doesn't create a GL_FRONT_LEFT attachment, >>> so these all fail badly, now I'd like to argue the test suite >>> should probably only hit GL_BACK_LEFT but I'm guessing that >>> won't go down well. >>> >>> I'm not really sure about this solution so just RFC it for now. >>> >>> Signed-off-by: Dave Airlie <airl...@redhat.com> >>> --- >>> src/mesa/state_tracker/st_manager.c | 6 ++++++ >>> 1 file changed, 6 insertions(+) >>> >>> diff --git a/src/mesa/state_tracker/st_manager.c >>> b/src/mesa/state_tracker/st_manager.c >>> index 2e2c8ff..5836a50 100644 >>> --- a/src/mesa/state_tracker/st_manager.c >>> +++ b/src/mesa/state_tracker/st_manager.c >>> @@ -324,6 +324,12 @@ st_framebuffer_add_renderbuffer(struct st_framebuffer >>> *stfb, >>> >>> if (idx != BUFFER_DEPTH) { >>> _mesa_add_renderbuffer(&stfb->Base, idx, rb); >>> + if (idx == BUFFER_BACK_LEFT) { >>> + rb = st_new_renderbuffer_fb(format, stfb->iface->visual->samples, >>> sw); >>> + if (!rb) >>> + return FALSE; >>> + _mesa_add_renderbuffer(&stfb->Base, BUFFER_FRONT_LEFT, rb); >>> + } >>> } >>> else { >>> if (util_format_get_component_bits(format, >>> UTIL_FORMAT_COLORSPACE_ZS, 0)) >>> -- >>> 2.4.3 >>> >>> _______________________________________________ >>> mesa-dev mailing list >>> mesa-dev@lists.freedesktop.org >>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev