SGX demo over s-video (sans X11)

Has anyone run RAW (non X11) SGX demos over s-video?
($OMAP_SDK/GFX_Linux_SDK/OGLES/SDKPackage/Binaries/CommonRaw/Demo/)

Q1: I think I am missing something fundamental.

I can get the SGX demos to work over DVI: both with and without the X
server running, works great.
And they run over s-video BUT only with an Xserver using the X11
binaries, again works great.
They will NOT run over s-video with the raw (non X) binaries

When I try to run the non X applications over s-video they cannot
create the window surface glCreateWindowSurface()

I also noticed that the X server nulls out /dev/fb1

Q2: Is /dev/fb1 tied to s-video in any way? Is there a reference
somewhere that describes a high level architecture for /dev/fb0,1,2,
display0, display1, DVI, S-video, and lcd arcitecture...

here is a dump of the successful X11 and failed raw demo for S-video
only:
<code>
.-------.

      > .-.
  > >-----.-----.-----.| | .----..-----.-----.
      > > __ | ---'| '--.| .-'| | |
  > > > > >--- || --'| | | ' | | | |

'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
                -' |
                '---'

The Angstrom Distribution beagleboard ttyS2

Angstrom 2009.X-stable beagleboard ttyS2

beagleboard login: root

root@beagleboard:~# uname -a
Linux beagleboard 2.6.29-omap1 #1 Sat Jun 20 15:29:31 CEST 2009 armv7l
GNU/Linux

root@beagleboard:~# cat /proc/cmdline
console=ttyS2,115200n8 console=tty1 root=/dev/mmcblk0p2 rootwait
nohz=off omapfb
.mode=tv:ntsc omapdss.def_disp=tv vram=24M omapfb.vram=0:8M,1:8M,2:8M

root@beagleboard:~# fbset -depth 16 -rgba 5/11,6/5,5/0,0/0
root@beagleboard:~# fbset -i

mode "720x482-50"
    # D: 22.153 MHz, H: 25.174 kHz, V: 50.248 Hz
    geometry 720 482 720 482 16
    timings 45140 80 48 3 6 32 10
    rgba 5/11,6/5,5/0,0/0
endmode

Frame buffer device information:
    Name : omapfb
    Address : 0x8080a000
    Size : 8388608
    Type : PACKED PIXELS
    Visual : TRUECOLOR
    XPanStep : 1
    YPanStep : 1
    YWrapStep : 0
    LineLength : 1440
    Accelerator : No

root@beagleboard:~# fbset -i -fb /dev/fb1

mode "720x482-50"
    # D: 22.153 MHz, H: 25.174 kHz, V: 50.248 Hz
    geometry 720 482 720 482 32
    timings 45140 80 48 3 6 32 10
    rgba 8/16,8/8,8/0,0/0
endmode

Frame buffer device information:
    Name : omapfb
    Address : 0x8100a000
    Size : 8388608
    Type : PACKED PIXELS
    Visual : TRUECOLOR
    XPanStep : 1
    YPanStep : 1
    YWrapStep : 0
    LineLength : 2880
    Accelerator : No

root@beagleboard:~# /etc/init.d/gpe-dm.mov start
Starting GPE display manager: gpe-dm

root@beagleboard:~# ./pvr/GFX_Linux_SDK/OGLES/SDKPackage/Binaries/
CommonRaw/Demo
s/ChameleonMan/OGLESChameleonMan
Exit message has been set to: "PVRShell: Unable to initialise EGL
".
PVRShell: EGL Error (EGL_BAD_ALLOC)
InitAPI failed!
PVRShell: Unable to initialise EGL

root@beagleboard:~# /etc/init.d/pvrrc.mov start
[ 7166.141693] PVR: PVRCore_Init
[ 7166.144836] PVR: PVRCore_Init: major device 250
[ 7166.149475] PVR: Setting Debug Level = 0x4
[ 7166.154266] PVR: PVRSRVDriverProbe(pDevice=bf0d7570)
[ 7166.159393] PVR: EnableSystemClocks: Enabling System Clocks
[ 7166.165191] PVR: Setting GPTIMER11 parent to System Clock (13Mhz)
[ 7166.171386] PVR: GPTIMER11 clock is 13000000Hz
[ 7166.175933] PVR: Setting GPTIMER11 mode to posted (currently is non-
posted)
[ 7166.182952] PVR: OSUnMapPhysToLin: unmapping 4 bytes from
0xd8088040
[ 7166.189392] PVR: OSUnMapPhysToLin: unmapping 4 bytes from
0xd8088024
[ 7166.195800] PVR_K:(Error): EnableSGXClocks: Enabling SGX Clocks
[590, /mnt/de
bian/omap3-sgx-modules-1.3.13.1397/services4/system/omap3430/
sysutils_linux.c]
[ 7166.209930] PVR: CPU Clock is 1000Mhz
[ 7166.213653] PVR: SGX FClock is 55Mhz. Setting to 110Mhz now
[ 7166.219299] PVR: SGX FClock is 55Mhz
[ 7166.417816] PVR: Installing MISR with cookie bf0d85bc
[ 7166.422912] PVR: Installing device LISR SGX ISR on IRQ 21 with
cookie ce8501a
0
[ 7166.430389] PVR: OSUnMapPhysToLin: unmapping 16384 bytes from
0xd0b98000
[ 7166.437194] PVR_K:(Warning): SysFinalise: Version string: SGX
revision = 1.2.
1 [387, /mnt/debian/omap3-sgx-modules-1.3.13.1397/services4/system/
omap3430/sysc
onfig.c]
[ 7166.452117] PVR: DisableSGXClocks: Disabling SGX Clocks
[ 7166.504180] PVRSRV_PIXEL_FORMAT_RGB565
Continuing to load PowerVR services
Loaded PowerVR consumer services.
JDG - set framerate with devmem2
/dev/mem opened.
Memory mapped at address 0x4001f000.
Value at address 0x48004B40 (0x4001fb40): 0x2
Written 0x0; readback 0x0

root@beagleboard:~# ./pvr/GFX_Linux_SDK/OGLES/SDKPackage/Binaries/
CommonRaw/Demo
s/ChameleonMan/OGLESChameleonMan
PVRShell: EGL 1.4 initialized
[ 7184.836944] no flipping
[ 7184.840179] no flipping
[ 7184.845275] no flipping
[ 7184.848419] no flipping
Exit message has been set to: "PVRShell: Unable to create surface
".
InitAPI failed!
PVRShell: Unable to create surface

root@beagleboard:~# export DISPLAY=":0.0"
root@beagleboard:~# ./pvr/GFX_Linux_SDK/OGLES/SDKPackage/Binaries/
CommonX11/Demo
s/ChameleonMan/OGLESChameleonMan
PVRShell: EGL 1.4 initialized
[ 7208.144622] PVR: SysDevicePostPowerState: SGX Leaving state D3
[ 7208.150512] PVR_K:(Error): EnableSGXClocks: Enabling SGX Clocks
[590, /mnt/de
bian/omap3-sgx-modules-1.3.13.1397/services4/system/omap3430/
sysutils_linux.c]
[ 7208.164611] PVR: CPU Clock is 1000Mhz
[ 7208.168365] PVR: SGX FClock is 55Mhz. Setting to 110Mhz now
[ 7208.173980] PVR: SGX FClock is 55Mhz
[ 7208.177673] PVR_K:(Warning): Soft Reset of SGX [337, /mnt/debian/
omap3-sgx-mo
dules-1.3.13.1397/services4/srvkm/devices/sgx/sgxreset.c]
[ 7208.189910] PVR_K:(Warning): SGXPostPowerState : SGX Power
Transition from 3
to 0 OK [308, /mnt/debian/omap3-sgx-modules-1.3.13.1397/services4/
srvkm/devices/
sgx/sgxinit.c]

#### X11 binary runs over S-VIDEO here
cntrl-C

root@beagleboard:~# [ 7215.265960] PVR: SysDevicePrePowerState: SGX
Entering sta
te D3
[ 7215.271881] PVR: DisableSGXClocks: Disabling SGX Clocks
[ 7215.277221] PVR_K:(Warning): SGXPostPowerState : SGX Power
Transition from 0
to 3 OK [308, /mnt/debian/omap3-sgx-modules-1.3.13.1397/services4/
srvkm/devices/
sgx/sgxinit.c]

root@beagleboard:~# fbset -i

mode "720x482-50"
    # D: 22.153 MHz, H: 25.174 kHz, V: 50.248 Hz
    geometry 720 482 720 482 16
    timings 45140 80 48 3 6 32 10
    rgba 5/11,6/5,5/0,0/0
endmode

Frame buffer device information:
    Name : omapfb
    Address : 0x8080a000
    Size : 8388608
    Type : PACKED PIXELS
    Visual : TRUECOLOR
    XPanStep : 1
    YPanStep : 1
    YWrapStep : 0
    LineLength : 1440
    Accelerator : No

### X server blows away /dev/fb1???
root@beagleboard:~# fbset -i -fb /dev/fb1

mode "0x0"
    geometry 0 0 0 0 0
    timings 0 0 0 0 0 0 0
    rgba 0/0,0/0,0/0,0/0
endmode

Frame buffer device information:
    Name :
    Address : (nil)
    Size : 0
    Type : PACKED PIXELS
    Visual : MONO01
    XPanStep : 0
    YPanStep : 0
    YWrapStep : 0
    LineLength : 0
    Accelerator : No
root@beagleboard:~#

</code>

Has anyone run RAW (non X11) SGX demos over s-video?
($OMAP_SDK/GFX_Linux_SDK/OGLES/SDKPackage/Binaries/CommonRaw/Demo/)

Q1: I think I am missing something fundamental.

I can get the SGX demos to work over DVI: both with and without the X
server running, works great.
And they run over s-video BUT only with an Xserver using the X11
binaries, again works great.
They will NOT run over s-video with the raw (non X) binaries

There shouldn't be anything preventing using SGX on s-video.

When I try to run the non X applications over s-video they cannot
create the window surface glCreateWindowSurface()

I also noticed that the X server nulls out /dev/fb1

I think X (Xv actually) uses fb1 or fb2 for playing video, and it will
also free the framebuffer if it's not in use. So you need to reallocate
the framebuffer yourself, or perhaps fb2 is left non-used by X.

Q2: Is /dev/fb1 tied to s-video in any way? Is there a reference
somewhere that describes a high level architecture for /dev/fb0,1,2,
display0, display1, DVI, S-video, and lcd arcitecture...

fb1 is not tied to s-video in any way. There is Documentation/ARM/OMAP/DSS
in kernel sources.

  Tomi

Has anyone gotten non X11 SGX demos over s-video port to work?

I'm using it on S-Video port, it runs well.

I do use sgx over DVI output without X11.
SGX may not run properly on RGB888 but RGB565.
If X server nulls out /dev/fb1 it may be in order to 'reset' the
overlay.