OpenGL ES 3D drivers, v1 compatibility layer, [2009-02-23] v0.26 |
![]() ![]() |
OpenGL ES 3D drivers, v1 compatibility layer, [2009-02-23] v0.26 |
|
Aug 19 2009, 13:48
Post
#1
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
General info:
Samsung S3C6410 processor supports OpenGL ES 1.1 and 2.0, but for some reason Samsung didn't include any proper OpenGL ES 1.0 implementation on our devices. This is the project of creating a libgles_cm.dll library which compensates this. So, here is the release of the OpenGL ES 3D v1 (and HTC) compatibility layer for Samsung Omnia II, Pro (Qwerty) and Giorgio Armani 2 (and M900 and...): Installation: ZIP download (current version): (original GinKage material) Download it by clicking on this link. The zip contains libgles_cm.dll, put this in your \Windows folder for activation across the entire device, or in the same folder as the EXE of the program you want to try this with. CAB download (version 0.26): (some additions by Chainfire) Attached! This CAB will place the libgles_cm.dll file in your \Windows folder (unsigned). This means it will be used by all (capable) programs. I have also included libgles_cl.dll (an adaption from NuShrike's CL), which may add some compatibility for some games, but is untested in combination with GinKage's CM library. 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. Compatibility: What works:
Known issues:
What does NOT work:
Remember, I DON'T actually want to know about apps that DON'T work. What I DO want to know about, is if anything else apart from the list above work. That would really be a surprise! Source code The project is open-sourced. There are three main reasons for this:
Project source is available at SourceForge here: http://sourceforge.net/projects/omnia2gl/ To build the source code you'll need Visual Studio 2008, Windows Mobile 6 SDK and GL2_SDK.zip from the Files section of the SourceForge project. At the moment, only me (GinKage) and Chainfire are the project admins, so if you have something to commit you'll need to contact us. You may also find Screentex source there. Simple app it is, but it may be compiled in both GL1 and GL2 modes (some time earlier, it was also D3DM-compliant, not sure about it now). I kindly ask you not to criticize the code too much, as I haven't even tried to make it look like industrial-standard. It was created as a hobby, a brain siesta. If you want to prettify it, do it (and send us a patch, so it would find its way to SVN). Also, if you use some parts of the code, please do mention us (GinKage, Chainfire, NuShrike) in credits. That's all I ask in return. Bonus (for Samsung representatives if any): A short list of some stupid bugs found in Samsung's driver during my work on this project:
Release history: Version 0.2, pre-alpha (Sep 24, 2009)
One of the nicest updates. Faster, smaller, better. That is:
Version 0.256 (Nov 14, 2009) A minor yet highly recommended update!
Following games are now supported:
Yet another minor update:
Congratulations to MindPol on getting Bronze medal in App Contest with this one! Version 0.26 (Feb 23, 2010) Back to the two-digit version numbers!
This post has been edited by tacchan23: Feb 28 2010, 09:36
Attached File(s)
-------------------- |
||
|
|
|||
Aug 19 2009, 16:42
Post
#2
|
|||
|
Regular Group: Posters Posts: 97 Joined: 6th July 2007 Member No.: 274,749 Device(s): Omnia II |
Attaching my versions to this post. hope this helps!
Attached File(s)
libGLESv2.dll.zip ( 100.24K )
Number of downloads: 1840
libGLESv1_CM.dll.zip ( 115.7K )
Number of downloads: 1429 |
||
|
|
|||
|
Aug 19 2009, 17:32
Post
#3
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
Thanks, you also have libEGL.dll for me?
|
||
|
|
|||
Aug 19 2009, 18:23
Post
#4
|
|||
|
Regular Group: Posters Posts: 97 Joined: 6th July 2007 Member No.: 274,749 Device(s): Omnia II |
|||
|
|
|||
|
Aug 19 2009, 22:15
Post
#5
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
Thanks... unfortunately they seem to have the same issue. Guess it's time to nag Sammy.
|
||
|
|
|||
Aug 20 2009, 01:06
Post
#6
|
|||
|
Regular Group: Posters Posts: 97 Joined: 6th July 2007 Member No.: 274,749 Device(s): Omnia II |
what were the issues you were seeing?
I am not that technical when it comes to coding, but still am interested. |
||
|
|
|||
|
Aug 20 2009, 11:43
Post
#7
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
To describe the exact issues would be a very long post. Suffice to say it doesn't work properly. Theoretically making a patch that allows standard libGLES to work was a 5 minute job, but there is something weird going on with these drivers. OpenGL ES 1.x does not work at all (2.0 does, see the Cube app, which uses it), also not when used as it's "meant" to be used with these drivers. It either gives errors or a black screen (I have been able to run things like glBenchmark and such, but without sane output). Using M900 drivers I could get garbled output, but that's not much use either
|
||
|
|
|||
Aug 20 2009, 18:59
Post
#8
|
|||
|
Regular Group: Posters Posts: 97 Joined: 6th July 2007 Member No.: 274,749 Device(s): Omnia II |
Maybe the Samsung SDK can help?
I would really love to see OpenGL application that run on the touch HD run on our O2. |
||
|
|
|||
|
Aug 21 2009, 00:12
Post
#9
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
If only the Samsung SDK had that stuff
But yeah, getting existing OGLES apps to work with this was the general idea (goodbye HTC!). Theoretically you should be able to run most of the "old" GL apps on the Omnia II. It certainly has the capabilities for it, however OGLES 1.x (which is used in pretty much every OGLES app out there for WM) seems to be emulated in OGLES 2.0. Unfortunately that doesn't work right now (or I'm just an idiot... |
||
|
|
|||
|
Aug 21 2009, 02:49
Post
#10
|
||
|
Regular ![]() Group: Chefs Posts: 75 Joined: 24th October 2005 Member No.: 155,341 Device(s): Many Twitter: @@hdubli |
May be drivers from acerm900 help as they use they use the same CPU
Attached File(s)
|
||
|
|
|||
|
Aug 21 2009, 11:27
Post
#11
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
Already had and tried them - similar but different issues (on the i8000).
|
||
|
|
|||
|
Aug 21 2009, 13:09
Post
#12
|
||
|
Enthusiast Group: Posters Posts: 248 Joined: 20th March 2007 Member No.: 240,024 |
so, is there any hope for running TouchFLO3D on i8000?
|
||
|
|
|||
|
Aug 21 2009, 15:26
Post
#13
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
Some... if this 1.x GLES can be gotten to work that'd be a tiny step in the right direction. After that, TF3D would have to be completely repackaged, converting the QTC's to a format the PVR card can understand, and coding a new intermediate GLES layer to patch the texture loading mechanisms. Not to mention that the device checks need to patched, all dependancies (audiomanager, phonecanvas, etc etc) need to be satisfied, probably several of which need their own patches to work properly. Some HTC drivers and services may need to be faked, etc.
It'd be quite an effort, but it is certainly possible. Maybe somebody will be crazy enough to do it - it probably won't be me, though I have created several tools in the past that may assist in the effort (shameless plug) |
||
|
|
|||
|
Sep 4 2009, 10:50
Post
#14
|
||
|
Enthusiast Group: Posters Posts: 225 Joined: 16th August 2009 Member No.: 576,397 Device(s): Samsung i8000 (Omnia II) |
Well, it is true that Samsung didn't give us any SDK to use with Omnia II.
But, Chainfire, you may look into these two files: http://down2.meizu.com/m8/sdk/M8SDK_CHS_V0.9.2.6.rar and http://bbs.meizu.com/attachment.php?aid=26...mp;t=1252061067 These are Meizu M8's SDK (which is, of course, WinCE 6.0, but I think there's no harm in trying) and Cube 2.0 sample (and, I want to point out, this sample is written by Samsung itself). As you maybe know, M8 uses the same processor, so it ships with the same three GLES driver files! Headers, Libs, Sources - everything is there... |
||
|
|
|||
|
Sep 4 2009, 11:39
Post
#15
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
Well, it is true that Samsung didn't give us any SDK to use with Omnia II. But, Chainfire, you may look into these two files: http://down2.meizu.com/m8/sdk/M8SDK_CHS_V0.9.2.6.rar and http://bbs.meizu.com/attachment.php?aid=26...mp;t=1252061067 These are Meizu M8's SDK (which is, of course, WinCE 6.0, but I think there's no harm in trying) and Cube 2.0 sample (and, I want to point out, this sample is written by Samsung itself). As you maybe know, M8 uses the same processor, so it ships with the same three GLES driver files! Headers, Libs, Sources - everything is there... I haven't checked out the SDK in full yet (slow DL), however the cube sample is GLES2. That works fine, it's the GLES1 support that isn't working properly, and that's exactly what we need to have for compatibility with already existing GL apps for WM. |
||
|
|
|||
|
Sep 4 2009, 12:11
Post
#16
|
||
|
Enthusiast Group: Posters Posts: 225 Joined: 16th August 2009 Member No.: 576,397 Device(s): Samsung i8000 (Omnia II) |
QUOTE the cube sample is GLES2 Not exactly. Look closer: it has sources for both 1.x (cuTe) and 2.0 (cuBe), and two sets of glutLib as well. |
||
|
|
|||
|
Sep 4 2009, 12:17
Post
#17
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
|||
|
|
|||
|
Sep 4 2009, 13:02
Post
#18
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
Can't get it to work for GLES2, can't seem to recompile it to properly use GLES1 (only) either. Did you manage to do this?
|
||
|
|
|||
|
Sep 4 2009, 13:35
Post
#19
|
||
|
Enthusiast Group: Posters Posts: 225 Joined: 16th August 2009 Member No.: 576,397 Device(s): Samsung i8000 (Omnia II) |
In fact, I haven't tried it yet: my Omnia is only going to be delivered to me next week...
Though, I already tried to write a translation dll, just like you did: I tried to load libGLESv1_CM.dll (which only exports "gl*" functions) and libEGL.dll (which exports "egl*" functions), got procedure addresses, and exported all the functions mentioned in Qualcomm's libGLES_CM.dll (both gl* and egl* ones) by translating them to the corresponding Omnia's dll. And - yes, that also failed. I'll try digging even deeper when my Omnia arrives, and will keep you informed of my findings. |
||
|
|
|||
|
Sep 4 2009, 15:28
Post
#20
|
||
|
Enthusiast Group: Posters Posts: 191 Joined: 1st October 2007 Member No.: 306,145 |
In fact, I haven't tried it yet: my Omnia is only going to be delivered to me next week... Though, I already tried to write a translation dll, just like you did: I tried to load libGLESv1_CM.dll (which only exports "gl*" functions) and libEGL.dll (which exports "egl*" functions), got procedure addresses, and exported all the functions mentioned in Qualcomm's libGLES_CM.dll (both gl* and egl* ones) by translating them to the corresponding Omnia's dll. And - yes, that also failed. I'll try digging even deeper when my Omnia arrives, and will keep you informed of my findings. Creating a forwarder libgles_cm is not the issue at all. I made one long before I even started this thread. The problem is the original DLL's themselves. Try compiling a simple v1 sample (like triangle), using the original OmniaII/Pro drivers - so without the forwarder, just libGLESv1_CM.dll and libEGL.dll. It simply does not work. eglMakeCurrent will fail if libGLESv1_CM.dll is loaded (bad alloc). You can get around by loading libEGL, libGLESv1_CM and libGLESv2 in a certain order, but actual GL calls will still fail with AV's. You can get around that by setting up the context by using one of the GLES2 exports in the v1 lib. This will get rid of the AV's, and actually start the compiling of the shaders used to fake v1 functions in v2 (libGLESv1_CM is a v1 emulation driver that translates to v2 call). You can then actually use v1 functions, and an FPS counter will return FPS in the expected range for the video card to be doing actual work. However, the screen will remain blank, and debug output will return strings along the lines of that the state has not been flushed by the hardware. Some mixing and matching with M900 drivers has once given me garbled output (like the internal buffers' line length differ between the seperate driver builds). I've traced various of these problems with IDA, both live as well as doing a lot of reading of the code. It seems that some initialization routines in the v1 lib are creating havoc, but I am as of yet unsure. A friend of mine who was also a part of bringing hardware 3D accel to the HTC Kaiser, Polaris and Nike is also looking at it a bit, but I'm not sure how far he's looked and attempted things ATM. |
||
|
|
|||
![]() ![]() |
Similar Topics
| Topic | Replies | Topic Starter | Views | Last Action | |
|---|---|---|---|---|---|
![]() |
AutoReset v1.0 | 1 | Paul | 69 | 1st September 2010 - 11:37 Last post by: WaltA |
![]() |
OR by mcbee, AR by Pompoko from KingMobile |
121 | KSTAN | 66,703 | 30th August 2010 - 13:38 Last post by: urphonesux |
![]() |
Minor Update 13/3/2010! (Problem adding apps fixed) |
493 | gchris7 | 78,426 | Yesterday, 12:26 Last post by: rhimes83 |
![]() |
Working and fast but need some developers |
48 | magawa | 14,901 | Yesterday, 18:24 Last post by: andrew.mazlim |
![]() |
This is my version of a stock ROM (8-1-2010) |
235 | amdzero | 6,445 | Yesterday, 19:26 Last post by: JeremyGNJ |
|
Lo-Fi Version | Time is now: 3rd September 2010 - 00:21 |
Please visit our 'Plus Partners' - these companies support MoDaCo through 'MoDaCo Plus' - Click Here for more details!
ActiveKitten |
Binaryfish |
Conduits |
DeveloperOne |
eSoft Interactive |
FTouchSL |
Inesoft |
LastPass
Lingvosoft |
monocube |
OmegaOne |
Omnisoft |
Opera Software |
Resco |
SBSH |
Splashdata
Sprite Software |
Syncdata |
Teksoft |
Titanium Backup |
VITO |
WalkingHotSpot |
WebIS |
z4soft
Would your company like to become a 'Plus Partner'? Click Here to contact us!