DirectFB - Home of the pragmatist Roadmap


[directfb-users] Re: NSC GX1 16x9 modes
Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[directfb-users] Re: NSC GX1 16x9 modes



Sure,

I didn't make any patches yet, but I can give you diffs against a
vanilla CVS of the 2.7.7 driver if you would like.

The changes are minimal so here they are.

added to DisplayParams struct in gfx_disp.c

>   /* 1366x768 */
> 
>   { GFX_MODE_60HZ |
>     GFX_MODE_8BPP | GFX_MODE_16BPP,
>     0x0558, 0x0558, 0x05A0, 0x0630, 0x0708, 0x0708,
>     0x0300, 0x0300, 0x0301, 0x0304, 0x031B, 0x031B,
>     0x0055DC00,
>   },
> 
>   /* 1366x768 */
> 
>   { GFX_MODE_70HZ |
>     GFX_MODE_8BPP | GFX_MODE_16BPP,
>     0x0558, 0x0558, 0x05A0, 0x0630, 0x0708, 0x0708,
>     0x0300, 0x0300, 0x0301, 0x0304, 0x031B, 0x031B,
>     0x0055DC00,
>   },

in disp_gu1.c  I had to alter the test on the xres (checks pitch using
horizontal res.  this should really check both h and v) to check
vertical resolution.

>   if (gfx_cpu_version != GFX_CPU_PYRAMID && yres > 768)

in nsc_gx1_fb.c I added a predefined mode for 1368x768

>   { "1368x768-16", 0x117, Display_CRT | Display_FP,
>     {   1368, 768, 1368, 768, 0, 0, 16, 0, {11, 5, 0},
>       {5, 6, 0}, {0, 5, 0}, {0, 0, 0}, 0, 
>       FB_ACTIVATE_NOW, -1, -1, FB_ACCELF_TEXT, 0, 
>       0, 0, 0, 0, 0, 0,
>       FB_SYNC_COMP_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
>       FB_VMODE_NONINTERLACED
>     }
>   }, 

The actual display I am using does 1368x768 and not 1366x768 (it uses a
scaler for 1366x768).  

My directfb code (0.9.20) is the following for init.


void
display_init()
{
  DFBCardCapabilities      card_caps;
  IDirectFBSurface        *image_area;
  int ret;

  DirectFBInit(0, 0);
  
  DirectFBSetOption("bg-none", NULL);
  DirectFBSetOption("no-cursor", NULL);
  DirectFBSetOption("vsync-none", NULL);

  ret = DirectFBCreate(&dfb);
  
  dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN);
  
  dsc.flags = DSDESC_CAPS;
  dsc.caps  = DSCAPS_PRIMARY | DSCAPS_FLIPPING | DSCAPS_SYSTEMONLY;

  dfb->CreateSurface(dfb, &dsc, &primary_surface);
  dfb->SetVideoMode(dfb, 1280, 1024, 8);
  
  primary_surface->GetSize(primary_surface, &screen_width,
&screen_height);
  
  printf("Framebuffer: %dx%d\n", screen_width, screen_height);
}


The application captures output from a sigma MPEG decoder (using v4l2
driver) and writes output to framebuffer.  If I don't put DirectFB in a
4x3 mode it looks like it's trying to do interleaving or something.  The
vertical resolution is distorted.

Another option would be running DirectFB at 1600x1200 16bpp.


On Sat, 2004-07-31 at 00:03 +0300, Ville Syrjälä wrote:
> On Fri, Jul 30, 2004 at 10:42:42AM -0500, Brian G. Rhodes wrote:
> > I am trying to get a couple 16x9 resolutions working on the NSC geode
> > GX1 with the NSC framebuffer driver.
> > 
> > I have added a 848x480 and a 1368x768 resolution to the NSC framebuffer
> > driver, and have the framebuffer running at 1368x768 currently.
> > 
> > #fbset
> > 
> > mode "1368x768-60"
> >     # D: 85.866 MHz, H: 47.704 kHz, V: 60.004 Hz
> >     geometry 1368 768 1368 768 16
> >     timings 11646 144 144 12 12 144 3
> >     rgba 5/11,6/5,5/0,0/0
> > endmode
> > 
> > I added the same mode to /etc/fb.modes which DirectFB reads to find
> > modes.
> > 
> > I call SetVideoMode with a width of 1368, height of 768 and depth of 16
> > bits.  While DirectFB seems to use that resolution, the graphics are not
> > displaying on the surface in that resolution.  I'm not sure how to
> > accurately describe the problem, but if anyone knows what I should look
> > at next I would appreciate a pointer.
> 
> Can we see the code?
> 
> -- 
> Ville Syrjälä
> syrjala@sci.fi
> http://www.sci.fi/~syrjala/
> 





Home | Main Index | Thread Index


directfb.org / Development / Old Archives