Pandora, Framebuffer, X Servers And Hardware Acceleration


efegea

Active Member
Joined
Aug 8, 2005
Messages
636
Age
38
Location
GP32Spain, Spain
There is nothing clear about what will the pandora run, if framebuffer or an X server.

It's obvious that we need an X server because there is a lot of X apps people will want to run. And only using an X server we will get real multitasking.

But some people say that the X server will not support hardware acceleration, so no OpenGL ES support for X apps. I think it will be a big error if the pandora will not support opengl nor hardware acceleration on the X server.

There are more possibilities that the framebuffer will be the only one that will get full hardware acceleration, but we lose support for X apps and multitasking.

There are developers that prefer to code apps that run on the framebuffer because of the X server overhead. These apps can kill the X server and restore it when finished, just like we do on the GP2X. But that will be only necessary for very cpu/cpu/memory intensive emulators, although I think the X server overhead is not that big..


So please, craig or any other developer, what will the pandora run? I need this info for the gui I'm developing. Please, clarify this :)
 
I think you are plain wrong, so that's your error ;)

Most GUI apps don't use X directly but widgets like GTK, QT and WxWidgets. X is still quite bloated and not used on embedded systems, Pandora is quite powerful for being a handheld but not has the resources of a desktop like memory or a big HDD, and stuff like X eats too much memory.

Multitasking and X? What are you saying?!?!?!? Multitasking is part of the kernel, running many apps on top of the graphical system isn't exclusive of X.

There's even stuff like xdirectfb that makes possible to run X apps on top of a framebuffer interface.

http://www.directfb.org
 
timofonic said:
X is still quite bloated and not used on embedded systems
Wrong, X can be as slim or as packed as you like. GP2X11 dynamically linked on the GP2X only uses 3MB RAM and loads almost instantaneously.
 
Last edited by a moderator:
timofonic said:
I think you are plain wrong, so that's your error ;)

Most GUI apps don't use X directly but widgets like GTK, QT and WxWidgets. X is still quite bloated and not used on embedded systems, Pandora is quite powerful for being a handheld but not has the resources of a desktop like memory or a big HDD, and stuff like X eats too much memory.

Multitasking and X? What are you saying?!?!?!? Multitasking is part of the kernel, running many apps on top of the graphical system isn't exclusive of X.

There's even stuff like xdirectfb that makes possible to run X apps on top of a framebuffer interface.

http://www.directfb.org



And I think you are totally wrong on all what you said, so I'll do like I haven't read your post :angry:
 
Last edited by a moderator:
Rather than say something and then backtrack, I think it would be better to wait for Pandora hardware and kernel to be ready, and only talk about stuff once it's been proven.

Agree?

timofonic: You are wrong. X eats up as much memory as you give it. Its bloated on normal PCs simply because there is an abundance of memory, and it was implemented using those resources.

Yes, multitasking is done by the kernel, but switching between tasks is difficult unless a task allows it (I'm not tasking about text based apps). X makes multitasking much easier, and is the standard.

It seems that you complain about people spreading misinformation and talking about stuff they know little about, and then do the exact same thing yourself :)
 
Squidge said:
Rather than say something and then backtrack, I think it would be better to wait for Pandora hardware and kernel to be ready, and only talk about stuff once it's been proven.

Agree?
Ok, didn't know it still was unknown information. I'll wait.
 
Last edited by a moderator:
Squidge said:
It seems that you complain about people spreading misinformation and talking about stuff they know little about, and then do the exact same thing yourself :)
:lol: love you Squidge :wub: ;)

and so i'll wait a little too but i began to make a good dev environnement first on my linux pc :)
 
Last edited by a moderator:
We were runing XServers on machines with a few MB of RAM, before we had dyn libs (ie: static binaries take up a lot more memory ;)

So the Pandora is a badass machien compared to those days.

Porting a basic X server is trivial.

Getting h/w accel is just a matter of work or not; probably not too bad I would guess, but I'm not the one who would be working on it :)

jeff
 
skeezix said:
Getting h/w accel is just a matter of work or not; probably not too bad I would guess, but I'm not the one who would be working on it :)

Getting HW acceleration would first be a matter of getting documentation from Imagination... which probably won't happen :)
 
Last edited by a moderator:
Laurent said:
skeezix said:
Getting h/w accel is just a matter of work or not; probably not too bad I would guess, but I'm not the one who would be working on it :)

Getting HW acceleration would first be a matter of getting documentation from Imagination... which probably won't happen :)
Unless Imgtech write it all for us :)
 
Last edited by a moderator:
Squidge said:
Unless Imgtech write it all for us :)

That'd be the best. I hope they heard about Neon, or else their OpenGL ES 2 and 2d drivers will stink :p
 
Last edited by a moderator:
I've been wondering something for a while now and this seems like a good time to ask it. Excuse my ignorance but Lets say I'm running a windowed enviroment such as X11 and I graphically launch some application written for Pandora, but not for X11 (framebuffer based)... what exactly would happen? would It take over the frame buffer in unison with X11 or would X automatically shut down? or would it fail miserably? (The app has no code what so ever for X11 support, strictly FB based). And if by some kinda of vodoo magic X11 terminated or paged out, would their be some kind of automatic callback to launch it after the app terminates? Or would we need to write some kinda of smart launcher for X that could act as the middle man for the App and X11?
 
Squidge said:
It seems that you complain about people spreading misinformation and talking about stuff they know little about, and then do the exact same thing yourself :)
I was going to say that on that thread. (of course if u look at the ones who said they agree, they are the ones who are doing it ;) ). We are all guilty of misinformation but not this much.
 
Last edited by a moderator:
Linux has very basic task switching built in.

ctrl+alt+F1 though ctrl+alt F6 change to separate text terminals.
ctrl+alt+F7 changes to the X server.

The full capabilities of this may be worth looking into if we can't get X11 with 3d acceleration. Ie, run 2d apps and an interface in X11, then switch out of X11 for 3d games without actually closing X11. (X11 would just get shunted onto the swap file if need be)

This is just pure speculation though. o_O
 
efegea said:
And only using an X server we will get real multitasking.
What have X to do with real multitasking? Qtopia, for example, is not based on X and have real multitasking. Many servers have no X but real multitasking.

In my opinion X can be useful and can work well on embedded devices. An example for this is the Nokia Internet Tablet and hopefully soon the OpenMoko Handy.

An other example that small system can work very well without X is Qtopia, for example on the Sharp Zaurus. One disadvantage of this solution is, that it is difficult to port X based applications. Today this means mainly GTK based applications. Qt based applications are relatively easy to port, because Qt is also part of Qtopia.

If hardware 3D acceleration is best possible with the framebuffer on the Pandora, I personally would prefer a framebuffer based solution without X. Because most games and emulators, the most important applications on the Pandora, uses SDL. And a SDL implementation without X isn't a problem. So a Qtopia GUI with 3D accelerated framebuffer and a good SDL implementation would be the system I personally would prefer on the Pandora. Qtopia for some other applications (there exist many applications for the Zaurus) and SDL/Open GL ES on framebuffer for games / emus which can alo be started from the Qtopia GUI.
 
Last edited by a moderator:
Soulkiller said:
Lets say I'm running a windowed enviroment such as X11 and I graphically launch some application written for Pandora, but not for X11 (framebuffer based)... what exactly would happen?

The FB app would simply overwrite parts of the X11 screen, which would immediately be overwritten by the X11 FB access (after all there's only one displayable buffer). Since X11 will probably use doublebuffering it could happen that the FB app is writing to only one of the two buffers and hence only visible partialy or not at all. However, there's no proper way to use X11 and pure FB apps at the same time. You have to withdraw X11 explicitly or use an X11 window instead of the FB in the non-X11 app.
 
Last edited by a moderator:
For me personally, X is mandatory. If it won't be the default I'll roll my own.

Having X there gives much more flexibility than not. And you can simply not use it if you don't want to, framebuffer apps will work by switching to a different terminal (ctrl+alt+f thingy), running in an X window or just killing the server. Some way of easily setting a swap file on an SD card would help a lot too.
 
Something that I forgot: There are ways to hook into the X11 render system and execute something right before the buffer swap. That way you can do things like overlays (e.g. for volume control printed to the bottom of the screen). This works with direct FB access because you are sure that nothing's rendered into the area you're working in.
Also, due to the optimized updating of the FB by X you might see some parts of the "manually altered" FB even when drawing at the same time as X, because those areas might not be updated by X in each frame (but only by chance, no way to avoid an update). However, chances are also good that your system will encounter an illegal memory access due to some mmap'ed area used by X11 and just core dump... So never render to the FB when you don't own it.
 
the ctrl+alt+f-something trick would be cool if we could call the switch from within the application itself.
For example if i want my 3D game to own the FB i'd call a system function to switch to a new terminal and then go fullscreen.
either that or a system call to put X to sleep (which from what i'm guessing would be similar?)
 
timofonic said:
Most GUI apps don't use X directly but widgets like GTK, QT and WxWidgets. X is still quite bloated and not used on embedded systems, Pandora is quite powerful for being a handheld but not has the resources of a desktop like memory or a big HDD, and stuff like X eats too much memory.
Heh... As others have pointed out- you're wrong. Maemo uses X11. Coollogic and several other embedded Linux vendors have used it in the past. X isn't bloated as some think. Just implementations thereof. And it's the UI toolkits (The thing you glowingly talk about there...) are what make it seem that way in some cases. Qtopia doesn't work to X11 because it's shaving some of the dispatch overhead present in X11 and moving it a bit closer to shave a bit more off the system footprint. Unfortunately, this makes for other things being difficult, etc.

It's six of one, half dozen of another.

[edit]

This may mostly be a moot point- it all boils down to how the OpenGL ES driver layer works. We might have AIGLX and have ES doing the work or OpenVG doing the work for the X11 stuff.
 
Last edited by a moderator:
Back
Top