Jump to content

OpenGL ES 3D drivers, v1 compatibility layer


Recommended Posts

Guest gertitombo
No H9 users around? :)

Note, I did try to use the H9 drivers on my ROM, and v2 seems to work a bit better, but v1 doesn't work at all anymore.... But I had that same problem with G7 drivers which seem to work on a realy G7 ROM, so...

I'm an H9 user. Screentex Version 2.0 works very fast. Triangle2 doesn't work.

GT

Link to comment
Share on other sites

Guest Chainfire
Well, glBenchmark runs WITH texturing, and with all those awfully bloated shaders (imagine FIVE computational instructions, including logarithms and multiplications, per every pixel (!), instead of just ONE texture sampling operation), so I just think that its performance could be improved dramatically just by replacing those shaders with some "sane" ones. And, if I'm right, the situation won't change until we'll get sane version of libGLESv1_CM.dll, which I don't think will happen in the nearest couple of weeks or months. I think that, after all, we should contact Samsung directly to have some information on this.

Of course, it's only my guess.

Update: Tried to look at vertex shader as well, and... Well, it's big. Really big. So we might later encounter a vertex bottleneck as well.

I have also looked at the data in disasm, and, yes, found some init function that xref's to a binary-compiled version of the shaders I mentioned. So, editing shaders in-place seems possible. I'll try to do it a bit later.

Update2: I realized I looked at some old dll (maybe even from G1). So, I downloaded G7 ROM, dumped it, looked into libGLESv1_CM.dll, felt an urge for some liquor. One binary PS (and a long one, too). One binary VS. Same text asm sources, probably unused. Nothing more.

If it really goes this way, we'll need to do some really hard work to make a usable v1...

I agree. I was myself unable to use anything else but binary shaders, by the way. 2.0 shaders are definitely not my area of expertise. Perhaps OpenGL ES 1.1 Fixed Function Vertex Pipeline from Addison Wesley's OpenGL ES 2.0 Programming Guide (page 173) can be used as a base?

I'm an H9 user. Screentex Version 2.0 works very fast. Triangle2 doesn't work.

GT

Same thing here with my ported H9 drivers. It seems several versions of driver sets are not able to use libGLESv1_CM. It's like they update some GL code but forget v1 or something. Either way screentex seems to be faster with H9 v2 drivers than G7 v2 drivers - same with cube, btw. Perhaps FPS report from Screentex2 would be nice, GinKage :)

BTW, attached is H9 drivers CAB, see if it works for you and if it seems faster for you too, or if it's just wishful thinking. (You can just uninstall if it doesn't work right)

EDIT: doh forgot the file :D

Chainfire_OmniaII_GL_Update.cab

Edited by Chainfire
Link to comment
Share on other sites

Perhaps OpenGL ES 1.1 Fixed Function Vertex Pipeline from Addison Wesley's OpenGL ES 2.0 Programming Guide (page 173) can be used as a base?

The way it is, I wonder if Samsung DID use that shader program for its v1 dll. :)

In fact, a smart implementation would use several (many, in fact) different shaders for different combinations of render states, texture counts and so on.

Though I am now beginning to think we should at least wait for WM6.5 update before we dive into it.

Link to comment
Share on other sites

Guest Chainfire
The way it is, I wonder if Samsung DID use that shader program for its v1 dll. :)

In fact, a smart implementation would use several (many, in fact) different shaders for different combinations of render states, texture counts and so on.

Though I am now beginning to think we should at least wait for WM6.5 update before we dive into it.

Samsung's shader seems (at least to me) to be quite a bit more complex? Point taken on the different shader combo's though. Wondering why you think we should wait? (I don't necessarily disagree). I may have it sooner than expected...

Link to comment
Share on other sites

Looked into H9 v1 dll, it is almost byte-to-byte the same as G7. So, it seems like there is really nothing to wait here. And, yes, v1 doesn't work at all. As for v2, well, I didn't see any difference (probably I need to add a fps counter, though).

Link to comment
Share on other sites

Guest gertitombo
I agree. I was myself unable to use anything else but binary shaders, by the way. 2.0 shaders are definitely not my area of expertise. Perhaps OpenGL ES 1.1 Fixed Function Vertex Pipeline from Addison Wesley's OpenGL ES 2.0 Programming Guide (page 173) can be used as a base?

Same thing here with my ported H9 drivers. It seems several versions of driver sets are not able to use libGLESv1_CM. It's like they update some GL code but forget v1 or something. Either way screentex seems to be faster with H9 v2 drivers than G7 v2 drivers - same with cube, btw. Perhaps FPS report from Screentex2 would be nice, GinKage :)

BTW, attached is H9 drivers CAB, see if it works for you and if it seems faster for you too, or if it's just wishful thinking. (You can just uninstall if it doesn't work right)

EDIT: doh forgot the file :D

No difference i'm afraid.

GT

Link to comment
Share on other sites

Guest gertitombo
GT, the cab was for me. :)

Of course it won't do any difference to you, as it contains H9 drivers, and you already have H9 ROM. :D

Ok thanks. That's why there was no difference :P

Link to comment
Share on other sites

I1 ROM v1 drivers do not work either.

Well, in that case we may as well start developing our own v1 driver.

Good thing is, it doesn't have to implement all possible combinations of client states, only those that are really used in games.

Link to comment
Share on other sites

Guest NuShrike
Can I get FPS quotes please on different ROMs ?
46 fps on Acer M900, on or off power. We used to get closer to 300 fps on the Kaiser. Maybe try scaling the poly to Kaiser's size. Edited by NuShrike
Link to comment
Share on other sites

Guest Chainfire
Well, in that case we may as well start developing our own v1 driver.

Good thing is, it doesn't have to implement all possible combinations of client states, only those that are really used in games.

Agreed, as same behavior has been quoted for I5 and I9.

Link to comment
Share on other sites

I started to work on my own custom v1 proxy driver, and it is currently able to render Screentex v1 (compiled with a .lib from Xperia SDK, thus requiring libGLES_CM.dll) at a v2 speed.

Chainfire, could you send me a Triangle app compiled the same way? I want to try adding a couple of more shaders to run it.

When that's done, the next stop would be gradually working through glBenchmark tests (starting from the simplest ones), and that'll take some time.

After that, it should be a piece of cake to make something like Xtrakt compatible... And then we'll see.

Link to comment
Share on other sites

Guest Chainfire

Nice work. If I don't forget I'll do this later tonight... (sorry got some other stuff I gotta take care o first)

Perhaps I will PM you later with some other "stuff".

Edited by Chainfire
Link to comment
Share on other sites

carmod, we are currently recreating v1 API from scratch, by implementing it via v2, just like Samsung did, but in a more "optimized" way.

It will take more time than just using Samsung's implementation, but ultimately it should become more compatible (e.g., able to use Qualcomm's texture format) and, well, faster. For example, our test version currently runs Triangle2 at 87 fps.

We'll post updates when the progress will be more evident, e.g., when we will be able to show some fully-working 3D-game in action.

Link to comment
Share on other sites

carmod, we are currently recreating v1 API from scratch, by implementing it via v2, just like Samsung did, but in a more "optimized" way.

It will take more time than just using Samsung's implementation, but ultimately it should become more compatible (e.g., able to use Qualcomm's texture format) and, well, faster. For example, our test version currently runs Triangle2 at 87 fps.

We'll post updates when the progress will be more evident, e.g., when we will be able to show some fully-working 3D-game in action.

Thanks Ginkage for the update..hope to hear from you soon

Link to comment
Share on other sites

Guest daskalos

It's nice to see some developments...

I'm no Omnia II user, but I'm still avidly reading this thread for my Acer Tempo M900...'cause all know we both have the same processors and 3D drivers...

I'm afraid that Acer M900 might be left behind when the backward compatible openGL ES 3D drivers for Omnia II/Louvre comes out/is developed... :P

The Acer M900 community lacks ROM cookers and stuff, and only relies on HTC forums and for developments, tweaks and stuff, though we know at the back of our mind, not all HTC projects are compatible for M900 (like HTC'S 3D driver development).

Omnia II/Louvre users are so lucky that they have people like Chainfire and Ginkage et. al that are eagerly and hardly working to make things better for their devices... Hope Acer M900 community will have people like them too... :) Seeing them working something for Omnia, that, hardware-wise, might be compatible with M900, gives me hope...

Though inappropriate, can I make a request? When the time comes that this project is finished, that Omnia II is enjoying more 3D games and apps due to successful drivers, could the team make a workaround for the drivers to be compatible with M900? That is if the team still has time and if it's not too much to ask...

Thanks for the effort the team is giving for Omnia. Even if my request might not be possible anytime soon, seeing a successful driver developed for Omnia II is quite enough, for this means a OpenGles 1.0 driver for M900 is possible too, someday :D

Link to comment
Share on other sites

Guest daskalos
Actually daskalos, NuShrike is an M900 user, not an Omnia II/Pro user, so ... *wink*

So NuShrike is in the team too... it's good news for M900 :)

@NuShirke

You mentioned you got 46fps in the triangle2 test

Mine is 48fps and sometimes a 49fps (with or without power connected)

I'm using the Starhub 166 Lite ROM

OT:

SBP Mobile Shell 3.5 is out

The Enhanced 3D Carousel is Great, BUT only works with HTC Hardware (Touch HD/Pro2 etc.). Just shows the "old" carousel with Omnia II and Acer M900

Is this because we lack gl v1 support or just because SPB made the enhanced 3D carousel for especially for HTC hardware?

Edited by daskalos
Link to comment
Share on other sites

Guest Chainfire

This is a reply to the last few posts here as well as the last few posts in the FPU thread, as they are inter-related.

First, let me note that my own involvement in the GL thing was pretty much making a bridge between HTC-GL using programs and the Samsung GL v1 layer. However, we have found out that on newer ROMs this is totally broken anyways, so no use. Primarily GinKage is now working on creating our own GL v1 layer (I am a code hacker, not a GL expert - while GinKage and NuShrike can be called GL experts, at least compared to myself), with some small additional help from me and NuShrike. The aim is to make more software compatible, including software written for HTC-GL. This is not an easy task, but GinKage is doing great so far.

Several applications already work somewhat with the development version. As you will note there is a new YouTube link posted in the first post. I think GL for MS3.5 is almost working, and HTC textures (QTC) are also being supported (no CFC yet, but coming up).

All this combined, GLv1/HTC layer, FPU Enabler, HTC compatible g-sensor patch, etc, will make the Omnia II much more compatible with existing software.

However, it does seem at this point that the 3D chip in the Omnia II is poor - very poor - in performance. It can hardly measure up with HTC's 3D from two years ago. This is very bad, but maybe improvements can still be made. Combined with the oversight of Samsung of putting in an ARM11 instead of a Cortex-A8, this is what ultimately will keep the new Omnia line down... Because aside from those two things, they are dream devices.

Link to comment
Share on other sites

Guest the_KIT

Thanks for the clarification! I'm sure it cleared many doubts of ours... :P

Now i'm a little sad abt the truth... :) ... cuz one of the reasons i decided to buy O2 over Touch Pro 2 is i thot it is a much powerful processor than that of touch pro...since i thot they're processors of the same class...is this poor 3D chip performance issue mainly due to a hardware or the implementation of drivers by samsung? sorry if i'm asking noob questions...can anyone enlighten me??

Nevertheless...Thank you for all your hardwork!! I'm realli looking forward to what you guys are coming up with! :D

Cheers!

Link to comment
Share on other sites

Guest Chainfire

Well make no mistake, the Omnia II and Pro are a class above the Touch Pro 2 in performance. Which is why it's strange that the 3D performance is seriously lacking. What the reason for this is, we're not exactly sure. According to the supposed specs of the 3D chip in the O2 (etc) it should be at least twice as fast as the 3D on the TP2 - but obviously it is not. So either the supposed specs are faulty, or we can still make improvements...

As for the ARM1176 vs Cortex-A8, well, sure this CPU is much faster than TP2. But it cannot compare against upcoming HTC Leo (HD2), Toshiba G01 (K01, etc), Acer F1, etc. I assure you though, I also have TP2's, and after using the Omnia II/Pro you can't use the TP2 anymore because the slowness will annoy you to death.

Link to comment
Share on other sites

Guest willowfarru
Well make no mistake, the Omnia II and Pro are a class above the Touch Pro 2 in performance. Which is why it's strange that the 3D performance is seriously lacking. What the reason for this is, we're not exactly sure. According to the supposed specs of the 3D chip in the O2 (etc) it should be at least twice as fast as the 3D on the TP2 - but obviously it is not. So either the supposed specs are faulty, or we can still make improvements...

As for the ARM1176 vs Cortex-A8, well, sure this CPU is much faster than TP2. But it cannot compare against upcoming HTC Leo (HD2), Toshiba G01 (K01, etc), Acer F1, etc. I assure you though, I also have TP2's, and after using the Omnia II/Pro you can't use the TP2 anymore because the slowness will annoy you to death.

Current Mobile GPUs: Triangles/sec, Fill Rate

Nintendo DS: 120,000 triangles/s, 30 M pixels/s

PowerVR MBX-Lite (iPhone 3G): 1 M triangles/s, 100 M pixels/s

Samsung S3C6410 (Omnia II): 4 M triangles/s, 125.6 M pixels/s

ATI Imageon (Qualcomm MSM72xx): 4 M triangles/s, 133 M pixels/s

PowerVR SGX 520 (Palm Pre): 14 M triangles/s, ___ M pixels/s

ATI Imageon Z430 (Toshiba TG01): 22 M triangles/s, 133 M pixels/s

PowerVR SGX 535 (iPhone 3GS): 28 M triangles/s, 400 M pixels/s

Sony PSP: 33 M triangles/s, 664 M pixels/s

Future Mobile GPUs:

PowerVR SGX 540 (TI OMAP4): 35 M triangles/s, 1000 M pixels/s

Nvidia Tegra APX2500 (Zune HD): 40 M triangles/s, 600 M pixels/s

ATI Imageon _ (Qualcomm QSD8672): 80 M triangles/s, >500 M pixels/s

Samsung S3C6410 speed is 600mhz in datasheet but o2 is 800mhz . I don,t know if that mean 25% more triangles than the official specs.

I dont know much about 3d , open gl , i want to know if graphics perfomance is important in regular aplications (no games ) like opera

browser , skyfire , office ..

Sorry my english.

Edited by willowfarru
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
×
×
  • Create New...

Important Information

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