Hi all, I've implemented a primary DFB layer as a full-screen EGL double-buffered window surface (like the X11 window used for GL/GLX 2D acceleration). EGL_SINGLE_BUFFER doesn't appear to be supported by the EGL I'm using, so I don't really have a choice.
My understanding of the CSALF_ONEFORALL allocation flag is that an allocation so flagged will be used for all the CoreSurfaceBuffer allocations in a CoreSurface, and this seems to be the case. However, when I run my tests with debug enabled, I always get: *** Assumption [serial->value == source->value] failed *** [../../lib/direct/serial.h:123 in direct_serial_check() after most, but not all, calls to find_allocation(). This means that the candidate allocation being tested for up-to-dateness with respect to the source buffer actually has a serial value that is greater than the source buffer, which should never happen. In this case the offending allocation is one of the CoreSurfaceAllocations associated with the double-buffered window surface. Only one of the CoreSurfaceBuffers in the CoreSurface ever actually gets its serial value increased by DFB but the allocation gets its serial value increased with every update. Is this a bug in DFB with respect to the assumptions made by CSALF_ONEFORALL allocation? Or do I need to do something inside the EGL system module to manage the serial value update? For now I have the D_ASSUME( serial->value == source->value ) in direct_serial_check() and direct_serial_update() commented out with no apparent ill effect. Thanks folks -- Mark Hood _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev