Jump to content

OpenGL ES 3D drivers, v1 compatibility layer


Recommended Posts

So, I'll ask one more question (sorry I'm pretty slow), what is the difference between the libs you gave me and the libs in Cute20 project ? Where do the Cute20 OGLES lib come from if not from Meizu M8 SDK ?

Thanks again for you precious help :D

Link to comment
Share on other sites

Guest is77gal

:D :( I must say that this is to technical for me and I need a simple answer: is opengl working or not on o2...do I download or not? and what do i download? I tried the cab from the start of the topic, did a softreset and the it gave an error on boot...sry can`t remember exactly what it said just that it was missing something...hoptpoint some....don`t remember....and I uninstalled it. I should also mention that I installed resco photo viewer at the same time...so i don`t now for sure if it the error was just from GL. BTW rom is H5

Link to comment
Share on other sites

Guest daskalos

To Ginkage et. al

Someone ported X2 panels for Rhodium....

Installed it to my Acer M900...of all the panels,the tilewave panel only worked...

Obiviously the panels use Open GL es 1.0, if the team has some extra time, can the driver be tweaked to fully run the panels :D

DSC04658.jpgDSC04659.jpg

Edited by daskalos
Link to comment
Share on other sites

Guest NuShrike
the m900 is using a S3C6410 that why the opengl1 dll of this thread is working also on m900.

m900 driver seems to be very similar to o2

Yes, as I pointed out, customized for Acer hardware. The Acer *900 and the Omnia 2s don't use the exact same Samsung drivers, and the Omnia2 gets more driver revisions. Each driver version has many quirks and so AcerShell was written to work with Acer's implementation issues.

This means the IOControl calls in gles.dll core driver are slightly different, and you can't swap the lib*gl*.dll files between the two devices easily.

Feel free to try to get AcerShell and their custom OGLES2.0 engine (named BGL) ported/working on the Omnia2, but imho, it's not worth the time. So as I said before, GK's drivers do not affect BGL and so therefore does not affect AcerShell.

Edited by NuShrike
Link to comment
Share on other sites

Guest daskalos
Feel free to try to get AcerShell and their custom OGLES2.0 engine (named BGL) ported/working on the Omnia2, but imho, it's not worth the time. So as I said before, GK's drivers do not affect BGL and so therefore does not affect AcerShell.

Well as a M900 owner too, I don't like Acer Shell, it's a bit "old fasioned" for me. But one thing I like is the music player within Acer Shell. It's fast,simple and I like the graphics and animations too. I hope it can be isolated from Acer Shell and work as an independent app :D

Link to comment
Share on other sites

Guest DunKnow

After using the newest driver for OpenGL on this thread, activated by TF3D i found out that my other application such as Samsung phonebook is faster. May i know without using TF3D or any other 3D games, could i activate the driver when running windows plainly.

Or is it just me, other application such as Samsung phonebook does'nt use the driver at all.

Thank You for your hard work Chainfire and GinKage, your development made my device wonderful to use. :D

Link to comment
Share on other sites

Guest Weesals

Sorry to bother you guys about a slightly off-topic question, but I've been hitting my head against a wall trying to figure out how to get the required shader binary format definition.

glGetIntegerv(GL_SHADER_BINARY_FORMATS, formats); seems to do nothing, and causes an internal GL error, and

glShaderBinary(1, &id, (GLenum)0, &data, size); prints out "[FIMG:ERR] Unsupported Shader binary version! [2196, glshaderapi.cpp]" in the output window and doesnt seem to load the shaders.

(I am looking for what to pass into glShaderBinary as the 3rd parameter)

Perhaps we could start an OpenGL ES on i8000 development guide, as there seems to be a lot of hidden issues.

Edited by Weesals
Link to comment
Share on other sites

Guest GinKage
glShaderBinary(1, &id, (GLenum)0, &data, size); prints out "[FIMG:ERR] Unsupported Shader binary version! [2196, glshaderapi.cpp]" in the output window and doesnt seem to load the shaders.

(I am looking for what to pass into glShaderBinary as the 3rd parameter)

Well, my shaders compile the same way:

	 prog = glCreateProgram();


	 vs = glCreateShader(GL_VERTEX_SHADER);

	 glShaderBinary(1, &vs, (GLenum)0, vs_data, sizeof(int)*vs_len);

	 glAttachShader(prog, vs);


	 fs = glCreateShader(GL_FRAGMENT_SHADER);

	 glShaderBinary(1, &fs, (GLenum)0, fs_data, sizeof(int)*fs_len);

	 glAttachShader(prog, fs);


	 glLinkProgram(prog);

So it doesn't seem you're doing anything wrong. Could you hand me your source code so I'd try to fix it?

Link to comment
Share on other sites

Guest Weesals

I just used the default shaders from Cube20_Demo, like

#ifdef GL_ES

precision highp float;

#endif

attribute vec4 vertexPos;

attribute vec4 texCoord;

uniform mat4 mvp;

varying vec4 texC;

void main() {

	gl_Position = mvp * vertexPos;

	texC = texCoord;

}
for the vertex shader, and then to load it i use prepareShader(0); with the following code:
void WinOGLRenderer::prepareShader(int id) {

	SBuffer &sbuffer=getSBuffer(id);

	if(sbuffer.prog!=0) return;

	sbuffer.vs=compileFromFile("/Shaders/def.vs", GL_VERTEX_SHADER);

	sbuffer.ps=compileFromFile("/Shaders/def.ps", GL_FRAGMENT_SHADER);


	sbuffer.prog=glCreateProgram();

	glAttachShader(sbuffer.prog,sbuffer.vs);

	glAttachShader(sbuffer.prog,sbuffer.ps);

	glBindAttribLocation(sbuffer.prog, 0, "vertexPos");

	glBindAttribLocation(sbuffer.prog, 1, "texCoord");

	glLinkProgram(sbuffer.prog);

	GLint paramId=glGetUniformLocation(sbuffer.prog, "mvp");

	glUniformMatrix4fv(paramId, 1, GL_FALSE, &mViewProj.n11);

}

GLuint WinOGLRenderer::compileFromFile(const char *pFile, GLenum pShaderType) {

	typedef char GLchar;

	FILE *file=fopen(pFile,"rb");

	if(!file) return 0;

	fseek(file,0,SEEK_END);

	GLint size=ftell(file);

	GLchar *string = new GLchar[size+1];

	fseek(file,0,SEEK_SET);

	fread(string,1,size,file);

	fclose(file);

	string[size]='\';


	GLuint id=glCreateShader(pShaderType);

	glShaderBinary(1, &id, (GLenum)0, &string,size);

	delete[] string;

	return id;

}

Which as far as i can tell, is what the Cube20 Demo calls.

/Shaders/def.vs and /Shaders/def.ps both exist and are loaded properly (I can breakpoint and see that the data is properly read in), they are just the compiled versions of Sample.frag and Sample.vert from Cute20_Demo, using orion.exe to compile then and renaming Sample.frag.bin to def.ps and Sample.vert.bin to def.vs.

The output error happens at the glShaderBinary call in compileFromFile, after getting to line 3 of prepareShader. And then paramId is always -1 in prepareShader, even though it should point to a vaild Matrix

Also I think it is totally unacceptable that Samsung hasnt given as a shader compiler, or even an SDK with the Omnia 2 :\, surely it cant be that hard... However it is pretty awesome that we can actually have our own shaders running on a mobile system ;). Cant wait till we get HLSL supported on Windows Mobile.

Edited by Weesals
Link to comment
Share on other sites

Guest dwallersv
To Ginkage et. al

Someone ported X2 panels for Rhodium....

Installed it to my Acer M900...of all the panels,the tilewave panel only worked...

Obiviously the panels use Open GL es 1.0, if the team has some extra time, can the driver be tweaked to fully run the panels ;)

DSC04658.jpgDSC04659.jpg

I'd like to try this out on the 920. Can you give some details where to get it? And do I just need to install the current OGL package in this thread?

Thanks!

Link to comment
Share on other sites

Guest Weesals

Never mind, I found out the issue was that I was passing in the reference to a pointer to data, as glShaderSource required, rather than just the pointer its self.

Ive changed it to

glShaderBinary(1, &id, (GLenum)0, data, size);

and it all seems to be loading ;), nothing renders yet but thats another matter.

Thanks for all your help GinKage ;)

Link to comment
Share on other sites

Guest daskalos

Hi there any update on the driver?

Call of Duty 2 (3D accelerated version) now runs with the driver but is slow and has many graphic glitches (below)...

Will COD2 be supported in future versions? ;)

Screen15.jpg

Link to comment
Share on other sites

Guest darkworldzz

just dl the latest version on the first post lo...

its 0.258 if i m nt wrong..

and jus follow instructions on how to update touch flo if already installed..

Link to comment
Share on other sites

Guest GinKage
Call of Duty 2 (3D accelerated version) now runs with the driver but is slow and has many graphic glitches (below)...

Will COD2 be supported in future versions? ;)

Ah, yet another app with alpha-blending issue. Fourth one, to be precise (and, maybe, the first one worth fixing). Someday I'll definitely fix it.

Link to comment
Share on other sites

Guest GinKage

And now, for something completely different!

Finally, I want to go open-source. There are three main reasons for this:

  1. I want the project to evolve, even when I don't have enough time for it (like last month, and the next two weeks, as I'll go on vacation).
  2. I want to see more GL2 applications for Omnia 2 created by third-party developers (waiting for a Samsung's GL2 SDK is some pain).
  3. I want Samsung to finally fix their GL2 driver (and I hope that maybe this lib's sources will help).
So, I don't really think there's any other way to make these wishes possible.

Project source is now 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 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 can 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.

*cough* Donate button is also there *cough*

Link to comment
Share on other sites

Guest Weesals

Thanks for all your hard work GinKage / Chainfire / NuShrike, the source helped me figure out what I was doing wrong with my own GLES engine :) (Mainly I didnt know about the limit of 100 buffers)

I think you have a problem with your email on sourceforge, I recieved "We cannot process this transaction because there is a problem with the PayPal email address supplied by the seller." when trying to donate.

Link to comment
Share on other sites

Well, someone found following dlls that can work in F900.

libEGL.dll

libGLESv1_CM.dll

libGLESv2.dll

After put them in F900 and with latest OpenGL ES dirver, OpenGL works at F900!

I successfully run Xtrakt and Experiment 13 at F900. Both of them run good.

Thanks you all for writing this driver!

Now I'm disappointed with 128M Ram of F900....It's really small for running these 3D program.

Here.... :) ;)

d2.rar

thanks, on my Acer F900 now also the SPB Carousel works in 3d and with the gsensor. While Extract gives generic error (but i run wm6.1 maybe that's the problem) and i don't think it's the memory cause i got other memory error when some applications were unloaded.

Experiment 13 runs but only with the charger plugged ( i can't find the setting "high performance") and btw there are bugs because there is nothing that can be read but only white blank boxes.

Tower defence, Prince of Persia HD works great.

Edited by onesky
Link to comment
Share on other sites

Guest Chainfire

I may have some time during this holidays to update the source with some more comments (and also latest QTC and CFC compatibility - most is in there, but not all). Though most of the really cool stuff has been done by GinKage and I do not know specifics about those parts that GinKage does know, there are some parts that are based on my own and/or NuShrike's code for the CFC project and various TF3D ports I may write some helpful comments about.

Link to comment
Share on other sites

Guest rodrigofd
I may have some time during this holidays to update the source with some more comments (and also latest QTC and CFC compatibility - most is in there, but not all). Though most of the really cool stuff has been done by GinKage and I do not know specifics about those parts that GinKage does know, there are some parts that are based on my own and/or NuShrike's code for the CFC project and various TF3D ports I may write some helpful comments about.

That's great chainfire, actually your update in QTC/CFC might fix current crash issues with manila 2.5.... i debugged the published source, and it crashes at function Vec3 ComputePrincipleComponent( Sym3x3 const& matrix ) from file: squish_s3tc.cpp...

This libgles is beyond my skills so i cannot fix it myself, but maybe you can ... a few screens of manila 2.5 that display a textbox, and automatically deploy the keyboard, make manila crash at first line of such function, but no idea why...

Link to comment
Share on other sites

Guest Chainfire
That's great chainfire, actually your update in QTC/CFC might fix current crash issues with manila 2.5.... i debugged the published source, and it crashes at function Vec3 ComputePrincipleComponent( Sym3x3 const& matrix ) from file: squish_s3tc.cpp...

This libgles is beyond my skills so i cannot fix it myself, but maybe you can ... a few screens of manila 2.5 that display a textbox, and automatically deploy the keyboard, make manila crash at first line of such function, but no idea why...

Hmm S3TC eh? That is weird. I didn't know Manila used S3TC! Anyway, that is not part of my code, must be GinKage's. Unfortunately I have not been able to do anything as I have been dead sick the whole past week... Spent most of that time sleeping :/

Which Manila 2.5 package are you using, your own, or this fabled ROM I have not tried yet?

Edited by Chainfire
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.