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�
> [EMAIL PROTECTED]
> http://www.sci.fi/~syrjala/
>