Jump to content

OpenGL ES 3D drivers, v1 compatibility layer


Guest Chainfire
 Share

Recommended Posts

The video is great! by the way, how is that to do with the phone, and how far u r with the opengl Driver???

sry im reading eday the news in OpenGL updates, the newest windows 6.5 rom but Im still a noob, so could someone b so kindly and answer my Questions???

Thanky for all done work, gladly i found modaco, because of that i can be glead to have an omnia 2 and not such an Iphone ;-)

Link to comment
Share on other sites

Hello Chainfire/Ginkage, first of all thanks a lot for your voluntary effort in improving our phones with your great work.

That said, i'd like to comment you something, just out of curiosity (readers please avoid responses like 'do not rush them to finish anything, do not request , etc etc. just asking).

Anyway, as i am really interested in upcoming htc hd2 (leo) release, I've read elsewhere, two things: one, htc executives commenting on new manila sofware, htc 'sense', being able to be run in other phones, and 2nd... i also read something about new htc leo will run with opengl 2.0, particularly for new manila.

PLease, don't reply me with 'if you want that buy an htc phone instead'... i find that anoying...

With this info, could i say it'll be theorically possible to run new touchflo 3d versions in omnia2 hardware? or could opengl2 samsung implementation be somehow incompatible with htc leo opengl2 ? i know all this is conjetures, but i'd like to have a clue at most.

Regards and keep good work !!!

Link to comment
Share on other sites

Hello Chainfire/Ginkage, first of all thanks a lot for your voluntary effort in improving our phones with your great work.

That said, i'd like to comment you something, just out of curiosity (readers please avoid responses like 'do not rush them to finish anything, do not request , etc etc. just asking).

Anyway, as i am really interested in upcoming htc hd2 (leo) release, I've read elsewhere, two things: one, htc executives commenting on new manila sofware, htc 'sense', being able to be run in other phones, and 2nd... i also read something about new htc leo will run with opengl 2.0, particularly for new manila.

PLease, don't reply me with 'if you want that buy an htc phone instead'... i find that anoying...

With this info, could i say it'll be theorically possible to run new touchflo 3d versions in omnia2 hardware? or could opengl2 samsung implementation be somehow incompatible with htc leo opengl2 ? i know all this is conjetures, but i'd like to have a clue at most.

Regards and keep good work !!!

Another interested guy here!

Once again all the best and keep up the great work.

Link to comment
Share on other sites

With this info, could i say it'll be theorically possible to run new touchflo 3d versions in omnia2 hardware? or could opengl2 samsung implementation be somehow incompatible with htc leo opengl2 ? i know all this is conjetures, but i'd like to have a clue at most.

Dunno, in fact. When Omnia 2 was going to be released, I was pretty sure that its GL1 implementation will be compatible with everything. As it turned out, it isn't. BTW, the trick with combining libGLESv1_CM.dll and libEGL.dll into libGLES_CM.dll works perfectly on Snapdragon-based devices, but doesn't work on Omnia (or, I'd say, works slowly, and only after some rude hacks).

So, I'd say that licensing is more useful for non-HTC Qualcomm-based devices (like TG01 or s200), everything else is still unclear.

Link to comment
Share on other sites

... Anyway, as i am really interested in upcoming htc hd2 (leo) release, ...

As are we all :) but htc is somewhat strange company. They make phones looking like this: One really awsome feature (keyboard, screen, speed..) most of the phone is usual quality... and there is always one or two faults that f*ck up the phone big time. So u gotta decide if the good feature(s) outweigth the bad one(s). They made leo a great phone with neat processor and big capacitive screen. The first winmo. Yey! Then u see the design... its ... well usualy.. dont like it but lets call it acceptable. Right then u got this crappy battery taking the "price" for being slimer phone ending up with 6 hrs talk time autonomy... and with big screen that isnt even amoled... having the phone lasting just over a day! Well u can then have your super slim big screen extra fast and outrageously expensive phone on your table pluged on the recharger most of the time! Insane!

At samsung they make great phones lately... but they just dont have a single clue about coding obviously! Thank god for the modaco guys for putting in the effort. Anyways i think htc will make that 2.0 version optimized for htc phones however some parts of it should be usefull for omnias openGL. So my guess is that trough time we will be able to run anything on our phones. Fact is that android is developing fast and its gonna be a lot easier for the coders. Right as for manila 2d i think tf3d is not gonna be something missing on omnia phones in the near future.

Link to comment
Share on other sites

Well, there's not very much news since the last update.

Although, one of them is: glBenchmark is stil slower than Qualcomms in the HD test, but it is now faster (!) in the PRO test. Which means that rendering speed degrades slower than scene complexity increases. Which means, there is some global slow thing that brings performance down. We already know one such thing: eglSwapBuffers takes about 10ms, so it is now impossible to get more than 100 fps even on an empty scene. But, there may be something else as well.

Another good thing is, I've almost managed to get Xtrakt working. I think that the dll will be posted as soon as it will be of any use: currently, it is only able to run glBenchmark, but if we'll have some game (e.g. Xtrakt) running as well, that will be definetly worth a release.

Link to comment
Share on other sites

Well, there's not very much news since the last update.

Although, one of them is: glBenchmark is stil slower than Qualcomms in the HD test, but it is now faster (!) in the PRO test. Which means that rendering speed degrades slower than scene complexity increases. Which means, there is some global slow thing that brings performance down. We already know one such thing: eglSwapBuffers takes about 10ms, so it is now impossible to get more than 100 fps even on an empty scene. But, there may be something else as well.

Another good thing is, I've almost managed to get Xtrakt working. I think that the dll will be posted as soon as it will be of any use: currently, it is only able to run glBenchmark, but if we'll have some game (e.g. Xtrakt) running as well, that will be definetly worth a release.

Music to my ears. However i was wondering...(i know nth about programming/coding.) if a compatiblity layer could be built between the open gl in samsung and the open gl that the touchflo is using? this may lead to TF3D working without recoding the Touchflo... once again just a suggestion. Thanks for all of ur hard work :)

Link to comment
Share on other sites

OK, now for some REAL news. An actual release.

Attached to this post is the dll I worked on for a month now (I started on September 24th, so it's exactly one month), and it took more than 5000 lines of code to work. I call it version 0.2 pre-alpha.

To install, simply put it into \Windows folder on your device.

What works:

  • glBenchmark 1.0/1.1
  • Xtrakt (my biggest success yet!)
    • glBenchmark hangs after 10-13 tests, don't know why. So, if you want to benchmark, do it in 3-4 runs. Also, 'Flat' shading mode doesn't work, everything renders as 'Smooth'.
    • Xtrakt has some minor texturing issues (as you may see on fonts). Otherwise it's perfectly playable.
    • Opera 9.7 rendering breaks (not my fault, see bugs list below). 9.5 is OK.

    What does NOT work:

    [*]Spb Mobile Shell 3.5. Although you may switch acceleration on by registry at [HKLM\Software\Spb Software House 2\Spb Mobile Shell\Gl\], setting GlEnabed to 1, but it is really unusable: you can't tap on a panel or a message to select it, you can only swipe to rotate carousel. I don't really care, because Spb wants to add GL2 support in the nearest future.

    [*]NFS: Undercover. Almost worked for some time, but used to hang or crash randomly, and now it won't start at all. Again, I don't really care, as there will be NFS in Samsung's AppStore.

    [*]Tons of GL apps.

    Note:

    Don't forget to switch your device to HIGH performance mode or plug a charge adapter otherwise you won't get any decent performance.

    Remember, I DON'T want to know about apps that DOESN'T work.

    What I DO want to know about, is if anything else apart from glBenchmark/Xtrakt DOES work. That would really be a surprise!

    Bonus (for Samsung representatives if any). A short list of some stupid bugs found in Samsung's driver during my work on this project:

    eglGetDisplay(0) fails. It should work with a zero argument, by standard, but it fails.

    Calling glGetString() before eglInitialize(), crashes.

    eglGetConfigs with config_size = 4096 crashes.

    glBindBuffer generates GL_OUT_OF_MEMORY if buffer number is above 100 (it is an actual limit hard-wired into libGLESv2, I had to re-implement the whole buffer management by myself). And, Xtrakt needs 102 buffers...

    glGetIntegerv(GL_MAX_TEXTURE_UNITS) returns 0 instead of 2. This one totally breaks NFS.

    glGetIntegerv(GL_MAX_TEXTURE_SIZE) returns 2048. In reality, every texture larger than 512x512 is going to be ignored at all, with some allocaton errors in debugger output. It may be used with S3TC, but it's DXT1 only, not even DXT5. And, somehow, with a GL_RGBA_S3TC_OES format, an alpha bit is ignored at all.

    And don't forget to create mipmaps, or GL_*_MIPMAP_* won't draw anything at all (it should just use the only level available)!

    glAlphaFuncEXP is not iplemented in libGLESv2 (though the hardware DOES have this available), had to do a hack for this to work.

    glViewport works wrong after all. If the parameters, e.g. X and Width have a larger sum than the width of the window surface, then the resulting width is clamped, which results in scaled down rendering. It may be seen on TouchFLO 3D's clock with the v0.204 build of compatibility layer.

    eglCreateWindowSurface is a fail: it doesn't track window size change at all, so if you create a surface and change window size, your output will be of an inadequate size (e.g., in Opera 9.7 going from Widowed mode to Fullscreen, or in anything else when going from Landscape to Portrait mode).

    eglSwapBuffers is slow as hell (probably because of plain BitBlt it uses), it takes about 10 ms, which limits fps to about 100 and reduces the speed of everything else (e.g., you'll get 16 fps where you could have 20, only because of this functon).

    libgles_cm.zip

Edited by GinKage
Link to comment
Share on other sites

OK, now for some REAL news. An actual release.

Attached to this post is the dll I worked on for a month now (I started on September 24th, so it's exactly one month), and it took more than 5000 lines of code to work. I call it version 0.2 pre-alpha.

To install, simply put it into \Windows folder on your device.

What works:

  • glBenchmark 1.0/1.1
  • Xtrakt (my biggest success yet!)
    • glBenchmark hangs after 10-13 tests, don't know why. So, if you want to benchmark, do it in 3-4 runs. Also, 'Flat' shading mode doesn't work, everything renders as 'Smooth'.
    • Xtrakt has some minor texturing issues (as you may see on fonts). Otherwise it's perfectly playable.
    • Opera 9.7 rendering breaks (not my fault, see bugs list below). 9.5 is OK.

    What does NOT work:

    [*]Spb Mobile Shell 3.5. Although you may switch acceleration on by registry at [HKLM\Software\Spb Software House 2\Spb Mobile Shell\Gl\], setting GlEnabed to 1, but it is really unusable: you can't tap on a panel or a message to select it, you can only swipe to rotate carousel. I don't really care, because Spb wants to add GL2 support in the nearest future.

    Hi, I just try it in I8000XXIJ6 firmware, the SPB Mobile Shell 3.5 is not working at all, it won't rotate the carousel but just hanging there.

Link to comment
Share on other sites

AndrewTan,

Why trying something that is listed under "does NOT work"? :D

Anyway, try to reboot , it might change something. Or not.

Ha Ha, I know it is not working, but I seen at least it let to rotate for fun, but end up, nope, I already try restart... it not working. Just hanging there.

I test the Opera 9.5, it seems work on it, It looks like render better when I scroll up and down, zoom in and out. (not sure it is my illusion or not)

Thanks for your hardwork, keep working :P

Wish one day the SPB Mobile Shell will working on it. ;)

Link to comment
Share on other sites

Am developing openg es 1.x and 2.x apps for i8000, but with this dll the hardware acceleration is like software accelerator (slow)

Nobody should compare opengl performance with this (until its final working release)

Edited by taril
Link to comment
Share on other sites

taril,

Try running Xtrakt with your "bridge" lib, and then with my lib. See the difference. Then post something. Please, don't say something you don't know.

Instead of two "universal" shaders from libGLESv1, I use above twenty of my own shaders, with many workarounds I've described above. That's why it's kinda strange of you to say it does nothing. :D

Link to comment
Share on other sites

taril,

Try running Xtrakt with your "bridge" lib, and then with my lib. See the difference. Then post something. Please, don't say something you don't know.

Instead of two "universal" shaders from libGLESv1, I use above twenty of my own shaders, with many workarounds I've described above. That's why it's kinda strange of you to say it does nothing. :D

I dont have any bridge for libgles_cm.dll that is a 5 years old graphics library.

HD2 has the same library as omnia 2 has, the newest one.

But you still missing some things from yours, who cares about any shader when the performance is under the line?

I haven't said it does nothing! Maybe you need some help?

Edited by taril
Link to comment
Share on other sites

I dont have any bridge for libgles_cm.dll that is a 5 years old graphics library.

Wrong. It's just a standard GL interface. Implementation is what matters.

HD2 has the same library as omnia 2 has, the newest one.

Wrong again. The difference is in hardware interaction. And the hardware IS different

But you still missing some things from yours, who cares about any shader when the performance is under the line?

I didn't say it's perfect. I said it's pre-alpha. And the performance is way better than with libGLESv1. That's what I really care about.

Again, did you try it in fact, or just made everything up?

and this gles dll does nothing

its a fake opengl library.

I haven't said it does nothing! Maybe you need some help?

You DID say it.

Link to comment
Share on other sites

Hi, Tower defence v1.1 works too (at least runs now). The only thing is that only have missed parts of the UI.

Hm, that's interesting. I think I'll look into it.

Link to comment
Share on other sites

Than hurry up man!

Omnia 2 and HD2 does not use any gles 1.x. Because its HW released 2008/2009. Your right. :D They are really perform with 2.x shaders instead (this means 3d graphics is really fast as you can see in touch player, video list in landscape mode)

Ive corrected my post, it does something, I think ppl are very happy with their omnia 2 cause with your act SPB shell 3.5 is wokring in HW accelerated mode. Youre the man, cheers!

Link to comment
Share on other sites

Hi, Ginkage,

I notice the video you post at youtube last time where the SPB Mobile Shell 3.5 is working (at least it spin and the 3D message is flip with HW accelerated)

But the version you post here is not working at all. It just hanging there.

Do you might post the version you have done at that work like in youtube? Thanks.

Edited by AndrewTan
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.