OpenGL ES (GLES 1.1 / 2.0) compliance use of vertex arrays instead of immediate mode?
#16
Dangit no edit button. Forgot that you'll also need the uv coordinates in the font cache as well if the characters in the font texture are not regularly spaced. You'd probably still want them in an array though (as opposed to calculating them on the fly) because they can live on the card theoretically.
Reply
#17
Any updates on OpenGL 2.0 ES compliance support? Huh

...a patch would be more than welcomed Wink
http://wiki.xbmc.org/?title=HOW-TO_submit_a_patch
http://wiki.xbmc.org/?title=Development_Notes
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#18
For anybody that is interested in this. Here is a patch that moves the rounding and cordinate transformations required for font rendering onto the gpu.

When this path is in effect, the vertex coordinates are really just "posX + static vertex cordinate x" and same with y.

This means that with a small modification to the vertex shader, you could store texture/vertex coordinates in VBO, and then on render only pass the origin coordinate for each vertex and the index into the vbo for the character.

This should make rendering alot faster.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#19
Updated patch that supports ARB vertex shaders too.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#20
Question 
Any reasons for not making the default renderer OpenGL ES compatible? Huh
Would it not be possible to make it cross-compatible with standard OpenGL?

All I found was that OpenGL ES 2.0 is not 100% backward compatible with OpenGL ES 1.x
"though changes are minimized and removed functionality can be replaced with shaders"

Oo

http://www.khronos.org/opengles/
Quote:OpenGL ES 1.X

For fixed function hardware: OpenGL ES 1.1 is defined relative to the OpenGL 1.5 specification and emphasizes hardware acceleration of the API, but is fully backwards compatible with 1.0. It provides enhanced functionality, improved image quality and optimizations to increase performance while reducing memory bandwidth usage to save power. The OpenGL ES 1.1 Extension Pack is a collection of optional extensions added to OpenGL ES 1.1 that reduced variability and bring significant improvements in image quality and performance. Learn More...

OpenGL ES 2.X

For programmable hardware: OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification and emphasizes a programmable 3D graphics pipeline with the ability to create shader and program objects and the ability to write vertex and fragment shaders in the OpenGL ES Shading Language. OpenGL ES 2.0 does not support the fixed function transformation and fragment pipeline of OpenGL ES 1.x. Learn More...
Reply
#21
Question 
So several versions of the OpenGL ES specification now exist. OpenGL ES 1.0 is drawn up against the OpenGL 1.3 specification, OpenGL ES 1.1 is defined relative to the OpenGL 1.5 specification and OpenGL ES 2.0 is defined relative to the OpenGL 2.0 specification.
http://www.khronos.org/opengles/

This is a really good read to catch up:
http://developer.amd.com/assets/GDC2007_..._ES_20.pdf

PowerVR provides an OpenGL ES 1.0/1.1/2.0 PC emulator for Windows and Linux and a SDK (with tutorials and source code examples):
http://www.imgtec.com/powervr/insider/po...vframe.asp
http://www.imgtec.com/powervr/insider/powervr-sdk.asp
http://www.powervrinsider.com

AMD also provides a free OpenGL ES 2.0 emulator for Windows which is designed to aid developers in their design of OpenGL ES 2.0 games and applications:
http://developer.amd.com/GPU/OPENGL/Pages/default.aspx

Using these emulators you would not actually have to have the hardware at hand to develop renderer(s) for OpenGL ES

Many more development resources can be found here:
http://www.khronos.org/developers/resources/opengles/

I guess the biggest issue is though if you would want OpenGL ES 2.0 support with backwards compatibility with OpenGL ES 1.1 (OpenGL ES 1.1 would in theory should be good enough for XBMC as it should practically be very similar to the OpenGL 1.5 specification, however since OpenGL ES 2.0 is not backwards compatible you would have to work around than by adding shaders which take care of any functions not supported by that API).
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#22
I've updated the rounding patch again so it should work on more hardware. Think it might be worth committing after we release. It's a good base for using indexed vertex buffers instead. Like I said before, you'd only need a base vertex and and index position into character buffer to render a character.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#23
elupus Wrote:I've updated the rounding patch again so it should work on more hardware. Think it might be worth committing after we release. It's a good base for using indexed vertex buffers instead. Like I said before, you'd only need a base vertex and and index position into character buffer to render a character.

Hi,

what is the status of this patch?
Was any solution found yet to use Opengl ES2 ?

Thanks!
Reply
#24
The status is that it's idling in my own repo..

The font renderer is already compatible with opengl es 1.0 thou since it is not using immidiate mode. And we have a guy already working on getting xbmc running on opengl es systems.

I suppose I should update that patch to current svn and submit somewhere. Pointless to have people redo the work.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply

Logout Mark Read Team Forum Stats Members Help
OpenGL ES (GLES 1.1 / 2.0) compliance use of vertex arrays instead of immediate mode?1