Graphics Rendering with OpenGL ES - GDC 2006 presentations (PS3)

j^aws

Veteran
Khronos Group said:
Graphics Rendering with OpenGL ES - GDC 2006 presentations

March 24, 2006 The presentations from the day-long tutorial on March 21st at Game Developers Conference 2006 are now online. These PowerPoint slides provide an in-depth look at the latest technologies in OpenGL ES and how they can be applied to cutting-edge game graphics, with special attention is given to the unique performance and design requirements of embedded applications. Topics include Advanced Rendering, ColladaFX, PlayStation GL, Portable Engine Developement, Performance Optimizatin and more.

The following ppt's are available from the link,


All_OpenGL_ES_Tutorials_GDC_2006.zip

GLESTutorial01-Khronos_Overview.ppt

GLESTutorial02-OpenGLES_Overview.ppt

GLESTutorial03-Advanced_Rendering.ppt

GLESTutorial04-OpenGL_ES_Performance_Optimization.ppt

GLESTutorial05-OpenGL_ES_On_Symbian.ppt
GLESTutorial06-

Portable_OpenGL_ES_3D_Engine_Development.ppt

GLESTutorial07-PlayStation_GL.ppt

GLESTutorial08-ColladaFX.ppt

http://www.khronos.org/developers/content/GDC_2006/

Enjoy! Haven't read them yet though!
 
scificube said:
Thank you!!!

No probs!

I need to translate these acronyms from tutorial 7,

VBO = Vertex buffer objects?
FBO = frame buffer objects?
PBO = Pixel buffer objects?

Does vertex buffer objects suggest render to vertex buffer? Therefore improved vertex texturing?
 
pc999 said:
So can someone say how this compare to DX?
It's different :p

Same sort of thing, different commands. Featurewise I don't know how much difference there is between DX9.x for XB360 and PSGL for PS3, which I guess is what you're really asking about ;)
 
Shifty Geezer said:
It's different :p

Same sort of thing, different commands. Featurewise I don't know how much difference there is between DX9.x for XB360 and PSGL for PS3, which I guess is what you're really asking about ;)

In part yes:smile: , but I am also interesting to know how it compares to the PC versions of DX.

So feature wise it should be similar to DX9, and compared to XB only the obvius diferences I guess (MemoExport and such)?
 
Ingenu said:
Yes, Yes, Yes and Yes.

All those already exists and are supported by OpenGL.

Thanks. IIRC, R2VB isn't available on G7x through NV's SM3 implementation, which uses vertex texture fetch . But I didn't know OGL already supported it.

From tutorial7 again, does anyone know what exactly,

"Queries and Conditional Rendering"

...really is? It's a PSGL extension. It sounds like deferred rendering and a b/w saving feature?
 
Last edited by a moderator:
Jaws said:
Thanks. IIRC, R2VB isn't available on G7x through NV's SM3 implementation, which uses vertex texture fetch . But I didn't know OGL already supported it.
The DirectX model seems to be a problem here, since with OpenGL you can do it.

Jaws said:
From tutorial7 again, does anyone know what exactly,

"Queries and Conditional Rendering"

...really is? It's a PSGL extension. It sounds like deferred rendering and a b/w saving feature?
Occlusion Queries made usefull ;)
Given Occlusion Query result render the mesh or not.
(The idea AFAIR is that instead of doing it at app level, you insert it in the command queue, so that you don't have to poll for results and the drivers can optimize the rendering sequence.)
 
Cool, wonder if that can be done hierarchically (if so you could try just doing front to back rendering and letting the hardware handle all the occlusion culling itself, though the latency is probably still too big for that).
 
Last edited by a moderator:
Jaws said:
From tutorial7 again, does anyone know what exactly,

"Queries and Conditional Rendering"

...really is? It's a PSGL extension. It sounds like deferred rendering and a b/w saving feature?
It sounds like D3D10's predicated queries which work like Ingenu suggested.
 
Would it be unreasonable to expect SPUs Local store to be able to access those VBs, PBs and FBs by DMA'ing and vice-versa for RSX, to be able to DMA the SPUs local stores? Synchronisation would seem to be an issue, unless it's being taken care of by the DMA engines?

It's a nice surprise that vertex shaders on RSX could have access to upto 24 filtered TMUs via R2VB. It would be nice if shaders running on SPUs could have access to these too...

Occlusion queries and conditional rendering sounds like a nice way to save bandwidth, and surprising it's not available in D3D until D3D10? Could it be 'one' of the reasons why RSX is still on 22.4 GB/sec GDDR3, apart from the obvious costs?

So it sounds like two 'weaknesses' of RSX, vertex texturing and GDDR3 b/w, are being addressed to some extent with R2VB and conditional rendering via PSGL... will wait and see if it will suffice...
 
Ignoring OpenGL (everybody does ;-) ), Aliasing vertex memory and render targets is trivial in the extreme on fixed hardware... cos memory is memory is memory, you could do it on Xbox (the original) if you felt like it...

Its almost impossible to stop it... how does the GPU know if your rendering into something you later call a vertex buffer, its just memory offsets to the GPU...
 
Dumb question time: does predicated occlusion querying require hardware support, or is it an API thing that hasn't been provided till now (and DX10)?
 
Titanio said:
Dumb question time: does predicated occlusion querying require hardware support, or is it an API thing that hasn't been provided till now (and DX10)?

Depends how it's implemented.....
You could have theoretically done it on Xbox 1 with interupts and callbacks to patch display lists, the GPU could also have some conditional branching mechanism in it's front end.
 
Was there API support for it on Xbox, or was it something you'd have to do yourself? Was it ever done, would it be typically useable versus theoretically possible?

I'm just wondering if this is "hidden" capability in G7x hardware, that's just not exposed by PC APIs, or something they went out of their way to put into RSX.
 
The proble wth doing it on XBox 1 was that the pipeline is so long it's of questionable value. You would habe to have submitted your occluders so far ahead of expecting the results that more often than not you likely wouldn't save anythung. You couldn't really afford to wait around musch on XBox 1 when submitting things, the GPU wouls commonly outstrip your ability to submit tri's.

I believe the unreal engine 3 doesn't submit potentially occluded objects until the occlusion query results are returned by the GPU, this has the disadvantage of potentially stalling the renderer for a ms or so, but if you cull a significant amount of your scene it's likely still a win.

Don't know if it's hardware on RSX or if it exists on NV70.
 
Titanio said:
Dumb question time: does predicated occlusion querying require hardware support, or is it an API thing that hasn't been provided till now (and DX10)?
As I understand it D3D10's version is supposed to be a submit it and forget it type of thing which requires hardware support. Although I'm not intimately familiar with how it does work in D3D, just how I think it should work.

ERP brings up a good point regarding the length of the pipeline, but for hardware controlled conditionals I don't see it being a big problem. Say there is a delay of 1000 clocks between a bounding box entering the pipeline until the query result is known. Then for complex scenes it shouldn't be a problem to separate the occluder and real geometry by 1000 clocks in order to see a benefit from predicated rendering. If the hardware and API supports it further improvements might be made if there are many thousands of clocks between the occluder and geometry because the hardware could avoid transfering the geometry over the PCI-E bus.
 
Back
Top