Hi,
There is problem in dfb with fbdev. Layer->TestConfiguration reports YUV
modes as valid, but SetConfiguratio fails.
I've looked trought the sources and problem (in my opinion} is caused
here:

----cut--- fbdev.c
static DFBResult dfb_fbdev_set_mode( DisplayLayer          *layer,
                                     VideoMode             *mode,
                                     DFBDisplayLayerConfig *config )
{
     int                      vyres;
     struct fb_var_screeninfo var;

     DEBUGMSG("DirectFB/core/fbdev: dfb_fbdev_set_mode (layer: %p, "
              "mode: %p, buffermode: %d)\n", layer, mode,
              config ? config->buffermode : DLBM_FRONTONLY);

     if (!mode)
          mode = dfb_fbdev->shared->current_mode ?
dfb_fbdev->shared->current_m>

     vyres = mode->yres;

     var = dfb_fbdev->shared->current_var;

     var.xoffset = 0;
     var.yoffset = 0;

     if (config) {
          if (config->buffermode == DLBM_BACKVIDEO)
               vyres <<= 1;

--->>      var.bits_per_pixel = DFB_BYTES_PER_PIXEL(config->pixelformat)
* 8;
 In this line bpp is derived from pixel format. But RGB16 and YUV modes
have SAME (usually bpp=16). Because subsequent ioctl uses only bpp (not
pixel format - if we only test configuration) reports OK it thinks that
we test layer for RGB16!

As a quick soludion I suggest disabling all YUV modes for fbdev by
simple pixelformat check in dfb_fbdev_set_mode.

                JS



-- 
Info:  To unsubscribe send a mail to [EMAIL PROTECTED] with 
"unsubscribe directfb-dev" as subject.

Reply via email to