Jump to content
Eternal Lands Official Forums
Entropy

The Release Candidate is here!

Recommended Posts

 

I tested this location with Daniel, me using Windows, and he using Linux.

We tried rotating the camera and walking around, and we couldn't reproduce the problem,

 

Post your system specs please.

 

SuSE Linux 10.1

 

GeForce 6600/PCI/SSE2

PCI Express 16X

VBIOS version: 05.43.02.16.24

Video Memory: 128 MB

IRQ 169

NVDIA Driver Version 1.0-8776

 

OpenGL Version 2.0.2 NVIDIA 87.76

 

1280x1024 16.7 Mio colours (24 bit)

 

/usr/lib/libcal3d.so.11.0.0

 

Processor 0: Intel® Pentium® 4 CPU 3.20 GHz Cache 1024KB

Processor 1: Intel® Pentium® 4 CPU 3.20 GHz Cache 1024KB

 

Memory 1GB

 

Piper

Share this post


Link to post
Share on other sites

well, it crashes for me, too (yay, more stuff to try to debug)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47008618560688 (LWP 12947)]
0x00002ac10ade76c3 in _nv000052gl () from /usr/lib/libGLcore.so.1
(gdb) bt
#0  0x00002ac10ade76c3 in _nv000052gl () from /usr/lib/libGLcore.so.1
#1  0x00002ac10ae52d11 in _nv000052gl () from /usr/lib/libGLcore.so.1
#2  0x00002ac10ae4c945 in _nv000052gl () from /usr/lib/libGLcore.so.1
#3  0x00002ac10ae4def9 in _nv000052gl () from /usr/lib/libGLcore.so.1
#4  0x00002ac10ab49138 in _nv000061gl () from /usr/lib/libGLcore.so.1
#5  0x000000000042515d in render_submesh (meshId=0, submeshCount=1, pCalRenderer=0x18ba4e60,
meshVertices=0x7d24c0, meshNormals=0x77a680, meshTextureCoordinates=0x73fd00, meshFaces=0x6ad540) at cal.c:199
#6  0x0000000000425cdd in cal_render_actor (act=0x1437a060) at cal.c:376
#7  0x000000000048fa56 in draw_enhanced_actor_shadow (actor_id=0x1437a060) at shadows.c:586
#8  0x000000000048fcef in display_actors_shadow () at shadows.c:640
#9  0x000000000048fde2 in display_shadows () at shadows.c:701
#10 0x00000000004903a5 in render_light_view () at shadows.c:918
#11 0x000000000044ac47 in display_game_handler (win=0x4383130) at gamewin.c:623
#12 0x000000000043e00a in draw_window (win=0x4383130) at elwindows.c:1054
#13 0x000000000043e63a in display_window (win_id=0) at elwindows.c:1202
#14 0x000000000043b91a in display_windows (level=1) at elwindows.c:57
#15 0x0000000000435024 in draw_scene () at draw_scene.c:98
#16 0x0000000000464594 in start_rendering () at main.c:127
#17 0x0000000000464874 in main (argc=1, argv=0x7fffa30316e8) at main.c:239

#5  0x000000000042515d in render_submesh (meshId=0, submeshCount=1, pCalRenderer=0x18ba4e60,
meshVertices=0x7d24c0, meshNormals=0x77a680, meshTextureCoordinates=0x73fd00, meshFaces=0x6ad540) at cal.c:199
	submeshId = 0
	vertexCount = 171
	textureCoordinateCount = 171
	faceCount = 208

I'll investimagate s'more and see if I can find a fix

Share this post


Link to post
Share on other sites

Can loading and unloading of an dll cause memory leaks or expanding memory usage?

 

If so, then we should check out libpng12.dll, it loads/unloads like 100 times on client load.

 

For the crash:

Remember to use a rather high prespective and go up and down with camera and while being "down" rotate and it should crash.

I tried to disable shadow mapping right after client load and rotated and stuff, then I didn't crash. But I didn't crash after enabling it either... at least not straight away, it took some minute and several camera rotates and walking to get it to crash, but finally did and with same result.

 

Note: I haven't really been checking for the crash for that long with shadow mapping disabled so I cannot conclude that much right now, but if The_Piper crash only with shadow map on I guess that could be true.

 

Also I use CVS debug version compiled with MSVS 2005. The Piper uses RC? or CVS? And ttlanhil using Linux+gcc+CVS?

Is it confirmed that both crashes?

ent: What did you and Daniel use? RC or CVS?

Edited by Beaverhunter

Share this post


Link to post
Share on other sites

I've been playing with the eye candy settings because the eyecandy kills my FPS. I have found a good combo of settings that gives me 19-23 FPS in the tele room, which is a drastic improvement from what I had before (like 1-9).

 

However, there is one problem that happens. When I teleport to the tele room, it seems to ignore my eye candy settings. All the "beams" are in full detail, so my FPS is very low (7-9). Once I relog *in* the tele room, the settings take effect, and the LOD drops.

 

Also, changing the settings while in the tele room *only* has an effect if I have already relogged while in the tele room.

 

I tested this several times, and it was the same effect every time. I have to relog inside the tele room to get the settings to take effect.

 

Here are my system specs:

Windows XP, RC client

Nvidia GeForce 4

OpenGL version 1.5.7

Pentium 4, 2.67 GHz

512 MB Ram

46 GB hard drive

 

Here are the eye candy settings I have now:

Max framerate: 45

Min framerate: 20

Light column threshhold: 15

 

Hope this is useful :)

Edited by Tanyia

Share this post


Link to post
Share on other sites

Can loading and unloading of an dll cause memory leaks or expanding memory usage?

 

If so, then we should check out libpng12.dll, it loads/unloads like 100 times on client load.

 

What do you mean loads 100 times? As I know we dont use dinamic loading interface like dlopen, so

libraries are loaded just once by ld.

 

Yes there is initializing and destoying functions in libraries, that initialize global variables, and they can consume

memory, but again they are called only once on loading library into memory.

Share this post


Link to post
Share on other sites

Can loading and unloading of an dll cause memory leaks or expanding memory usage?

 

If so, then we should check out libpng12.dll, it loads/unloads like 100 times on client load.

 

What do you mean loads 100 times? As I know we dont use dinamic loading interface like dlopen, so

libraries are loaded just once by ld.

 

Yes there is initializing and destoying functions in libraries, that initialize global variables, and they can consume

memory, but again they are called only once on loading library into memory.

SDL_Image might be dynamically loading libpng

Share this post


Link to post
Share on other sites

...

 

What do you mean loads 100 times? As I know we dont use dinamic loading interface like dlopen, so

libraries are loaded just once by ld.

 

Yes there is initializing and destoying functions in libraries, that initialize global variables, and they can consume

memory, but again they are called only once on loading library into memory.

 

Well... I get this:

'elc.exe': Loaded '.\Eternal Lands RC\libpng12.dll', Binary was not built with debug information.

'elc.exe': Unloaded '.\Eternal Lands RC\libpng12.dll'

 

477 times on client load. (Yep I did count by copying all into Word, it gave me 19 pages...of this)

I would call that rather bad.

Its probably textures and alike loading, but the only textures in .png format is eye candy right?

Share this post


Link to post
Share on other sites
I'll investimagate s'more and see if I can find a fix
nope. it's currently boggling me.

for interest, my current debugging info is:

Index: cal.c
===================================================================
RCS file: /cvsroot/elc/elc/cal.c,v
retrieving revision 1.42
diff -u -r1.42 cal.c
--- cal.c	   5 May 2007 17:16:56 -0000	   1.42
+++ cal.c	   19 May 2007 16:02:11 -0000
@@ -193,10 +193,18 @@
					// draw the submesh
					glTexCoordPointer(2, GL_FLOAT, 0, &meshTextureCoordinates[0][0]);

+					   if(faceCount == 208){
+					   int i = 0;
+					   for(; i < faceCount; ++i){
+					   printf("i: %d/%d, submeshId/submeshCount: %d/%d, meshFaces[%d][0]: %d, meshFaces[%d][1]: %d, meshFaces[%d][2]: %d\n", i, faceCount, submeshId, submeshCount, i, meshFaces[i][0], i, meshFaces[i][1], i, meshFaces[i][2]);
+					   }
+					   }
+					   printf("drawing...\n");
					if(sizeof(CalIndex)==2)
							glDrawElements(GL_TRIANGLES, faceCount * 3, GL_UNSIGNED_SHORT, &meshFaces[0][0]);
					else
							glDrawElements(GL_TRIANGLES, faceCount * 3, GL_UNSIGNED_INT, &meshFaces[0][0]);
+					   printf("done\n");
			}
	}
}

which gives output ending in

i: 197/208, submeshId/submeshCount: 0/1, meshFaces[197][0]: 168, meshFaces[197][1]: 150, meshFaces[197][2]: 120
i: 198/208, submeshId/submeshCount: 0/1, meshFaces[198][0]: 150, meshFaces[198][1]: 168, meshFaces[198][2]: 163
i: 199/208, submeshId/submeshCount: 0/1, meshFaces[199][0]: 163, meshFaces[199][1]: 166, meshFaces[199][2]: 150
i: 200/208, submeshId/submeshCount: 0/1, meshFaces[200][0]: 145, meshFaces[200][1]: 147, meshFaces[200][2]: 169
i: 201/208, submeshId/submeshCount: 0/1, meshFaces[201][0]: 169, meshFaces[201][1]: 168, meshFaces[201][2]: 145
i: 202/208, submeshId/submeshCount: 0/1, meshFaces[202][0]: 168, meshFaces[202][1]: 169, meshFaces[202][2]: 160
i: 203/208, submeshId/submeshCount: 0/1, meshFaces[203][0]: 160, meshFaces[203][1]: 163, meshFaces[203][2]: 168
i: 204/208, submeshId/submeshCount: 0/1, meshFaces[204][0]: 147, meshFaces[204][1]: 149, meshFaces[204][2]: 170
i: 205/208, submeshId/submeshCount: 0/1, meshFaces[205][0]: 170, meshFaces[205][1]: 169, meshFaces[205][2]: 147
i: 206/208, submeshId/submeshCount: 0/1, meshFaces[206][0]: 169, meshFaces[206][1]: 170, meshFaces[206][2]: 161
i: 207/208, submeshId/submeshCount: 0/1, meshFaces[207][0]: 161, meshFaces[207][1]: 160, meshFaces[207][2]: 169
drawing...

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47590273293488 (LWP 15576)]
0x00002b48783156c3 in _nv000052gl () from /usr/lib/libGLcore.so.1

. that submesh with a faceCount of 208 is the culprit each time... yet it's displayed several times (and I even put 2 sets of output for the mesh with 208 into text files and ran diff, they are the same) and doesn't crash the first time

 

as a side note, vertexCount and textureCoordinateCount are set from Cal3d calls, but not used (they're also always the same value that I've seen)... and the sizeof() call probably isn't needed either since CalIndex is typedef'd as an int (ie: not dynamic type).

 

it would probably take someone a lot more familiar than I with cal3d and/or opengl to do more chasing down... it could just be an issue with nvidia... though given the different versions of drivers and different cards, that would be a little suprising

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×