3D Development Questions


Trenki

Member
Joined
Jun 15, 2006
Messages
114
Age
40
Location
South Tyrol, Italy
Website
www.trenki.net
Hi all!

The last time I used my GP2X F100 was a long time ago. Back then I developed a 3d software renderer and a 3d Demo for a GP2X contest. Now I found out there is the new GP2X Wiz which actually has 3D Hardware acceleration hardware and that caught my attention.

How does the GP2X Wiz 3D hardware with 133M Texel/sec and 1.33M Polygon/sec compare to:

  • Playstation
  • N64
  • 3dfx Voodoo 1
  • 3dfx Voodoo 2

From the numbers alone the Voodoo 1 & 2 should even be slower than the Wiz hardware. Unfortunately the numbers don't always tell the truth and performance also depends on the 3D API quality and the rest of the GP2X Wiz hardware.

So what kind of performance can one really expect? Which 3D games from the past should the GP2X Wiz be able to run very well (if for instance they would be ported from source)? Would it for instance be able to handle Need For Speed 3 wich ran on a 3dfx Voodoo1 accelerated Pentium with 166MHz? What about Playstation and N64 games?

How good is the OpenGL ES 1.1 implementation?

  • fast?
  • stable?
  • bug free?
  • does it have problems?

Newer Firmware versions seem to include the OpenGL ES library. Is it Open Source or GPH proprietary stuff?.

For me it would also be interesting to directly use the 3D hardware through the memory registers without the OpenGL ES API and write my own 3d driver/API (this should be possible even without writing a kernel module right?). But without proper documentation of the hardware this is impossible. The Wiz wiki already mentioned that finding documentation is hard, still I found a downloadable MMSP2+ databook and added a link to the location to the wiki. Unfortunately it is a prerelease version form 2007 and may contain bugs as the GP2X databooks did. Is there a newer version somewhere?

And about the Wiz SDK. The GPH site has no official download. It the openwiz SDK the official one?

hm, the post got very long, sorry :)
 
Hey Trenki, I remember your template based renderer indeed, and some convos with you on this sorta stuff.

Trenki said:
How does the GP2X Wiz 3D hardware with 133M Texel/sec and 1.33M Polygon/sec compare to:
  • Playstation
Better, definitely, in both performance and feature set. PS1's primitive drawing isn't even 3D (no perspective correction).

Trenki said:
Likely has much better fillrate and triangle setup rate, but also not limited by the tiny amount of texture RAM it had. Might not have feature parity, for example probably doesn't have as sophisticated color combining.

Trenki said:
  • 3dfx Voodoo 1
  • 3dfx Voodoo 2
Probably performs favorably, especially in feature set.

One thing to bear in mind is that Wiz provides floating point geometry transformations in hardware, although I don't know if the OpenGL ES implementation is leveraging it or not. It has some other features too, for instance the ability to draw tile-mapped textures which could be nice for 2D games.

Trenki said:
Newer Firmware versions seem to include the OpenGL ES library. Is it Open Source or GPH proprietary stuff?.

It's proprietary, probably to Magic Eyes (MES).

Trenki said:
For me it would also be interesting to directly use the 3D hardware through the memory registers without the OpenGL ES API and write my own 3d driver/API (this should be possible even without writing a kernel module right?). But without proper documentation of the hardware this is impossible. The Wiz wiki already mentioned that finding documentation is hard, still I found a downloadable MMSP2+ databook and added a link to the location to the wiki. Unfortunately it is a prerelease version form 2007 and may contain bugs as the GP2X databooks did. Is there a newer version somewhere?

Wiz doesn't use MMSP2+, it uses a further successor called Pollux. Some people have the datasheet, but it's not publicly available. It does describe the entire 3D subsystem interface and operation in detail, which is something that most manufacturers of 3D hardware probably don't make available to anyone. But making your own API would still be pretty difficult, IMO. It would have several advantages. For one, the ability to freely render to and from textures which can themselves be quickly and directly modified. I was going to look into using the 3D core directly to perform hardware scaling and rotation of a 2D virtual framebuffer, but I bricked my Wiz before I could get started.

Trenki said:
And about the Wiz SDK. The GPH site has no official download. It the openwiz SDK the official one?

GPH doesn't have an official SDK. They said they'd release one but haven't. The toolchain OpenWiz is a good candidate if you're on Linux. Someone (sorry, can't remember who) modified the Linux toolchain distribution so that it installs with fewer problems; I've gotten it to install fine myself but haven't been able to test it on anything. If you're on Windows then Open2x will actually work fine, and failing that people have gotten devkitpro to work.
 
Last edited by a moderator:
Thanks for your answers Exophase!

Graphics hardware seems to be quite good then. This would allow really great games.
AFAIK the Playstation emulator does not yet make use of the 3D hardware, the hardware acceleration could speed that one up quite a lot then.
And since N64 emulators made use of 3dfx would the Wiz then also be capable to emulate N64 games or is the Wiz CPU too slow?

I assume the MP2530/31F Databook from http://www.aesop.or.kr/?document_srl=24090 is the wrong one then?
 
Trenki said:
AFAIK the Playstation emulator does not yet make use of the 3D hardware, the hardware acceleration could speed that one up quite a lot then.

I think the Wiz 3D hardware could be a pretty good fit for PS1 if OpenGL ES were circumvented, since it might allow for direct emulation of framebuffer effects and paletted textures. Not sure about subtractive blending though.

Trenki said:
And since N64 emulators made use of 3dfx would the Wiz then also be capable to emulate N64 games or is the Wiz CPU too slow?

Unfortunately I don't think it's really in the running, based on what we're seeing on Pandora thus far.
 
Last edited by a moderator:
Trenki,

quake 1 is running with an limited opengl wrapper at about 20-25 fps. I had quake 2 running at one point.
The big problem I think it memory for textures, after a few levels in some start to disappear.

Theres also a 3d pack i put together it has SDL 1.3, libGLES, libnanogl, GLUES stuff.
 
Hey, I have forgot to ask some questions in my earlier post.

  • How many texture units does the Wiz have? I suppose two, since that is the minimum required by OpenGL ES 1.1.
  • What is the maximum supported texture size for 2d, 3d and cubemap (it supports cubemaps right?) textures? The sizes required by OpenGL ES are rather small.
 
Trenki said:
Hey, I have forgot to ask some questions in my earlier post.

  • How many texture units does the Wiz have? I suppose two, since that is the minimum required by OpenGL ES 1.1.
  • What is the maximum supported texture size for 2d, 3d and cubemap (it supports cubemaps right?) textures? The sizes required by OpenGL ES are rather small.
2 texture units, only 2D Texturing, neither 1D or 3D are supported, cubemaps i dont think so, but didnt try. max texture size is 512.

check out the specs. wiz supports opengl ES 1.1 LITE profile.
http://www.khronos.org/registry/gles/specs/1.1/es_cm_spec_1.1.10.pdf
 
Last edited by a moderator:
crow_riot said:
Trenki said:
Hey, I have forgot to ask some questions in my earlier post.

  • How many texture units does the Wiz have? I suppose two, since that is the minimum required by OpenGL ES 1.1.
  • What is the maximum supported texture size for 2d, 3d and cubemap (it supports cubemaps right?) textures? The sizes required by OpenGL ES are rather small.
2 texture units, only 2D Texturing, neither 1D or 3D are supported, cubemaps i dont think so, but didnt try. max texture size is 512.

check out the specs. wiz supports opengl ES 1.1 LITE profile.
http://www.khronos.org/registry/gles/specs/1.1/es_cm_spec_1.1.10.pdf

Thanks for clearing that up.
OpenGL ES 1.1 LITE is the fixed point profile and does not support floating point vertex data. This is sad since AFAIK the hardware supports it.
 
Last edited by a moderator:
Trenki said:
Thanks for clearing that up.
OpenGL ES 1.1 LITE is the fixed point profile and does not support floating point vertex data. This is sad since AFAIK the hardware supports it.

you can still use floating point, it's supported by the wiz's driver, too.
 
Last edited by a moderator:
Here's a specification sheet about the Pollux OpenGL unit (Also called "LF1000", which is similar) I found some time ago on gpain.com. I don't know if there is a NDA on it or if it helps...

Download.

This thread may be interesting for you, too.

Regards,
Stephan
 
Last edited by a moderator:
Back
Top