Jump to content

OpenGL ES 3D drivers, v1 compatibility layer


Recommended Posts

Guest oldnnwise

Thanks a lot!!!

You fixed my problem!!!!

I can handle PVR Texture and Matrix both properly.

You saved MY LIFE!!!

I really really really appreciate.

But, I have another problem with that new DLL.

I guess there's a MEMORY LEAK with that DLL. ( Not Sure... )

I'm using VBO for rendering sample primitives

with that new DLL and LIB file from Vincent Libra,ry. ( as I attatched )

I'm checking that problem.

If you can check memory leak with that DLL,

Please, share the results with me.....

anyway...

You gave me a BIG pleasure....

Thanks again....

Bless.

_libgles_cm.zip

Edited by oldnnwise
Link to comment
Share on other sites

Guest force of nature 1985

thanks for the reply.

from the 1st post, it is mention that:

"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."

so now that SPB mobile shell 3.5.3 has OpenGL ES 2.0 Support. does this mean that the above mention issue is solved?

Link to comment
Share on other sites

Guest oldnnwise

Finally, I found that 'OpenGL compatibility layer for Omnia 2' has a problem with VBO.

There is a memory leak after using VBO.

If I use libGLES_CM.dll from vincent library, there's no memory leak.

Version 0.258 and OpenGL compatibility layer for Omnia 2 both are have that problem.

Can You please, fix that problem???

I really really feel sorry to bother you.

but, It's very important for me using VBO.

Please, Help Me....

p.s ) Here's my codes and results used for testing the problem.

 

#define gF(X)   ((GLfixed)(((X) * 65536.0f) + 0.5f)) 

void CWMTestDlg::OnPaint()

{

CPaintDC dc(this); // device context for painting


// 1) Clear

glClearDepthx(65536); 

glClearColor(0.871f, 0.851f, 0.765f, 1.0f);

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


// 2) Set Perspective

glOrthof( 0, 800, 480, 0, 0, 2048 );

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();


// 3) Draw VBO Primitive * 100 Times

glEnableClientState(GL_VERTEX_ARRAY);

glDisable(GL_TEXTURE_2D); 

for(int i=0; i<100; i++)

{

  WORD swX,swY,wHSize,wVsize;

  swX = 100;

  swY = 100;

  wHSize = 100;

  wVsize = 100;


  GLfixed g_fSym[12];

  g_fSym[0]=gF(swX-wHSize);

  g_fSym[1]=gF(swY-wVsize);

  g_fSym[2]=gF(swX+wHSize);

  g_fSym[3]=gF(swY-wVsize);

  g_fSym[4]=gF(swX+wHSize);

  g_fSym[5]=gF(swY+wVsize);

  g_fSym[6]=gF(swX-wHSize);

  g_fSym[7]=gF(swY-wVsize);

  g_fSym[8]=gF(swX+wHSize);

  g_fSym[9]=gF(swY+wVsize);

  g_fSym[10]=gF(swX-wHSize);

  g_fSym[11]=gF(swY+wVsize);


  unsigned int iVbo_vertex=0;

  glGenBuffers(1,&iVbo_vertex);

  glBindBuffer( GL_ARRAY_BUFFER, iVbo_vertex );

  glBufferData( GL_ARRAY_BUFFER, 12*sizeof(GLfixed), g_fSym, GL_STATIC_DRAW );


  glBindBuffer( GL_ARRAY_BUFFER, 0 );


  glBindBuffer( GL_ARRAY_BUFFER, iVbo_vertex );

  glVertexPointer( 2, GL_FIXED, 0, (char *) NULL );


  glDrawArrays(GL_TRIANGLES,0,6);


  glBindBuffer( GL_ARRAY_BUFFER, 0 );

  glDeleteBuffers( 1, &iVbo_vertex );

}


// 4) Swap Buffers

eglSwapBuffers(g_display, g_surface);



// 5) Check Memory Status

TCHAR strDebug[256];

MEMORYSTATUS mem;

::GlobalMemoryStatus(&mem);

wsprintf(strDebug,_T("\r\n GlobalMemoryStatus============= AP:%.1f AV:%.1f")

   ,(double)(mem.dwAvailPhys) / 1048576.0

   ,(double)(mem.dwAvailVirtual) / 1048576.0);

OutputDebugString(strDebug);

}

====> the results

GlobalMemoryStatus============= AP:49.1 AV:24.5

.

.

.

GlobalMemoryStatus============= AP:49.1 AV:24.3.

.

.

GlobalMemoryStatus============= AP:49.1 AV:24.1

.

.

.

GlobalMemoryStatus============= AP:49.1 AV:24.0

.

.

.

GlobalMemoryStatus============= AP:49.1 AV:23.8.

.

.

.

.

.

.

.

GlobalMemoryStatus============= AP:25.2 AV:0.1Data Abort: Thread=87903d8c Proc=80844170 'WMTest.exe'

AKY=00020001 PC=03f9e600(coredll.dll+0x00054600) RA=00000000(???+0x00000000) BVA=24000000 FSR=00000807

Edited by oldnnwise
Link to comment
Share on other sites

Guest GinKage
Finally, I Found that 'OpenGL compatibility layer for Omnia 2' has a problem with VBO.

There is a MEMORY LEAK after using VBO.

If I use libGLES_CM.dll from VINCENT LIBRARY, there's NO MEMORY LEAK .

Version 0.258 and OpenGL compatibility layer for Omnia 2 both are have that problem.

Can You please, FIX that problem???

I really really feel sorry to bother you.

but, It's VERY IMPORTANT for me using VBO.

Would you, please, stop using caps? No need to shout.

As for your problem, I rather think it's an issue with Samsung's GL2 driver than with compatibility layer: the layer simply doesn't allocate memory, although GL2 driver does. Ergo, I can't and won't fix it.

Link to comment
Share on other sites

Guest oldnnwise
Would you, please, stop using caps? No need to shout.

As for your problem, I rather think it's an issue with Samsung's GL2 driver than with compatibility layer: the layer simply doesn't allocate memory, although GL2 driver does. Ergo, I can't and won't fix it.

Thanks a lot.

I really appreciate.

I'm sorry to use caps, and I did not mean to shout.

I'm poor for expressing my comments with english.

so, please understand me.

about your reply,

I have one more question.

I tested same exe file and just changed only 'libgles_cm.dll' file given by vincent library, and found that there's no memory leak.

I guess 'glDeleteBuffers' funtion cannot restore memory in the layer.

I think, if that issue is with GL2 Driver, the results must be same.

How can I understand that results?

Does not the layer support 'glDeleteBuffers' funtion?

Link to comment
Share on other sites

Guest GinKage
I tested same exe file and just changed only 'libgles_cm.dll' file given by vincent library, and found that there's no memory leak.

I guess 'glDeleteBuffers' funtion cannot restore memory in the layer.

I think, if that issue is with GL2 Driver, the results must be same.

How can I understand that results?

Does not the layer support 'glDeleteBuffers' funtion?

The layer passes it to the underlying GL2 driver, nothing less, nothing more.

Vincent's library is a pure software implementation, so it doesn't use GL2 or any other hardware acceleration.

Link to comment
Share on other sites

Guest oldnnwise
The layer passes it to the underlying GL2 driver, nothing less, nothing more.

Vincent's library is a pure software implementation, so it doesn't use GL2 or any other hardware acceleration.

Thanks a lot.

I did not fully understand how the layer works on OMNIA2.

( I'm just an APP developer....q.q )

as your reply,

I'll ask that issue to SAMSUNG development part.

anyway,

I got your kindest help.

I really really really really really appreciate that.

Thanks again.

and, Bless you.

Link to comment
Share on other sites

Guest alexovy

I have installed the las version .cab and none of the mentioned application is running. Do I have to do something else except the .cab install?

PDA: I8000NXXIJ9

CSC: I8000XSOIJ2

PHONE: I8000DXIJ1

Edited by alexovy
Link to comment
Share on other sites

  • 2 weeks later...

Hello everyone,

I was trying to follow this thread but it's too long... I have two simple questions:

1) Will this driver, at current state, do any good to the device graphical performance?

2) If question #1 = yest than what should I download and install? (many dlls arround)....

Link to comment
Share on other sites

Guest GinKage
I was trying to follow this thread but it's too long... I have two simple questions:

1) Will this driver, at current state, do any good to the device graphical performance?

2) If question #1 = yest than what should I download and install? (many dlls arround)....

Everything you need to know is in the first post. No need to read the whole thread and seek for different dll's, it's all there.

Link to comment
Share on other sites

Guest Krecik2002

Anyways, is there much you can upgrade in your library yet? Of course except small fixes making particular applications work on Omnia.

From what I've read in this thread, the main problem now is the poor performance of both GL ES V1 and V2 and this is strongly dependent on hard coded drivers from Samsung, am I right? Or is this general weakness of hardware used and not much can be done in software?

Link to comment
Share on other sites

Guest rodrigofd
Anyways, is there much you can upgrade in your library yet? Of course except small fixes making particular applications work on Omnia.

From what I've read in this thread, the main problem now is the poor performance of both GL ES V1 and V2 and this is strongly dependent on hard coded drivers from Samsung, am I right? Or is this general weakness of hardware used and not much can be done in software?

There is a specific group of issues in the driver, that i checked to affect HTC Sense 2.5 in my ROM experiments, however i have poor C++ skills enough to debug and fix such issues myself using source code..., so i can just hope some other talented guy can give a hand, since GK and apparently CF too are busy .

I believe there are a bunch of interested people in this... so anybody reading this that's interested please PM so i specify such issues ...Thanx

Link to comment
Share on other sites

Guest lambi1982
Not atm. I'm currently terribly busy, so there probably won't be any updates for at least a month.

Hey, a month is better that the year it would take Samsung to fix it (if ever)

Thanks for all you work.

Link to comment
Share on other sites

Guest Krecik2002

I think the question is if it's possible at all to fix/rewrite these hard coded drivers without manufacturer's documentation and if it wouldn't be too time consuming for just one or two persons doing in in their free time (and volountary). And of course big, big thanks to all who have already put their time in developing this V1 compatibility layer.

Link to comment
Share on other sites

Guest dwallersv

Guys -- any chance you might donate this to the community as an open source project, and roll it up to SourceForge or something?

I'd like to do some work on it, and I'd bet we get a good, solid library relatively soon with a bunch of people working on it.

Just a thought...

Link to comment
Share on other sites

Guest GinKage
Guys -- any chance you might donate this to the community as an open source project, and roll it up to SourceForge or something?

I'd like to do some work on it, and I'd bet we get a good, solid library relatively soon with a bunch of people working on it.

You're almost two months late with this idea (see this post).

Edited by GinKage
Link to comment
Share on other sites

Guest dwallersv
You're almost two months late with this idea (see this post).
Ahhhhh... good man!

Nevermind... ;)

Different question: Where do I get my hands on the OpenGL Test you guys were talking about earlier? Tried an internet search, but that was hopeless (too hard to narrow down).

Edited by dwallersv
Link to comment
Share on other sites

Guest GinKage
Where do I get my hands on the OpenGL Test you guys were talking about earlier? Tried an internet search, but that was hopeless (too hard to narrow down).

Try googling on xda-developers.com, you'll get this URL as a first result...

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.