Views: 1,610,085 | Main | Rules/FAQ | Memberlist | Active users | Last posts | Calendar | Stats | Online users | Search | 11-23-24 09:39 AM |
Guest: |
0 users reading GPU abstraction layers | 1 bot |
Main - Homebrew discussion - GPU abstraction layers | Show post layouts | New reply |
StapleButter |
| ||
Member blarg Level: 30 Posts: 26/184 EXP: 151397 Next: 14472 Since: 10-27-14 From: France Last post: 2650 days ago Last view: 2560 days ago |
So this thread is going to list the current known efforts for a stable 3DS graphics layer.
ctrgl by minexew This is the most interesting I guess. ctrgl is aiming at becoming an OpenGL implementation. There are still some nonstandard bits that could be made standard, but it's being worked on. So far it looks pretty close to standard OpenGL. blargGL by StapleButter (source here) blargGL isn't aiming at being an OpenGL implementation. It's a thin wrapper around ctrulib's GPU API. Its role is mostly to hide the ugly details like the specific order in which the various GPU-related functions have to be called. It was made for blargSNES, but could be used anywhere really (just keep in mind it's under the GPL). It also lacks a few features (like index arrays). The blargSNES codebase also contains a simple block-based VRAM allocator in mem.c. gs.c by smealum This is used in smealum's 3dscraft. Not really a graphics layer per se, this code provides support for matrix stacks and VBOs. |
minexew |
| ||
Newcomer Normal user Level: 6 Posts: 5/6 EXP: 887 Next: 20 Since: 11-27-14 Last post: 3643 days ago Last view: 3641 days ago |
Actually, looking at blargGL, it seems to be pretty much the same as ctrGL, except it's not trying to emulate the OpenGL API and just does its own thing. (the essence, state tracking and updating, looks very similar)
As for the nonstandard bits, please let me know if I'm missing any OpenGL functions you think I should implement. There are indeed many extension functions, but most of them should also have a standard equivalent (some functions will obviously never be implemented, e.g. glCompileShader) Matrix setting is kinda hairy, but it is needed to enable automagic stereo. |
StapleButter |
| ||
Member blarg Level: 30 Posts: 27/184 EXP: 151397 Next: 14472 Since: 10-27-14 From: France Last post: 2650 days ago Last view: 2560 days ago |
What comes to my mind is the function you coded for uploading shaders.
OpenGL has glShaderBinary. Not that it matters much, though. That part is pretty much specific to the 3DS. |
minexew |
| ||
Newcomer Normal user Level: 6 Posts: 6/6 EXP: 887 Next: 20 Since: 11-27-14 Last post: 3643 days ago Last view: 3641 days ago |
Oh right, I completely forgot this existed in GL ES. (probably because I never use ES)
Then again, this would require allocating a shader object aside from a program object, which would pretty much just add bloat for no real benefit. Also, you can't tell glShaderBinary NOT to copy any data. |
Main - Homebrew discussion - GPU abstraction layers | Show post layouts | New reply |
Page rendered in 0.012 seconds. (2048KB of memory used) MySQL - queries: 26, rows: 69/69, time: 0.005 seconds. Acmlmboard 2.064 (2018-07-20) © 2005-2008 Acmlm, Xkeeper, blackhole89 et al. |