www.jpct.net

General => News => Topic started by: EgonOlsen on March 23, 2009, 04:45:01 pm

Title: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on March 23, 2009, 04:45:01 pm
Hi,

i need some testers with different configurations for the compiled object stuff discussed here: http://www.jpct.net/forum2/index.php/topic,809.15.html (http://www.jpct.net/forum2/index.php/topic,809.15.html)

I made a simple test case (Windows only, no Web start) using the model that Paul provided. It's a self extracting exe that can be found here: http://www.jpct.net/download/beta/car.exe (http://www.jpct.net/download/beta/car.exe)

It extracts into a "car"-subdir. The extracted version is quite large (around 200MB), because it includes the whole World in serialized form (be patient...it takes some time to load!). Just run the "run_me.bat", and tell me if and how it works. Preferably with frame rate and system configuration. I tested it on various ATI cards (worked great), on Intel onboard (looked fine but ran like crap...but that was to be expected). I haven't had the chance to run it on NVidia yet...

You can move and zoom the car with the mouse, right mouse button shows wireframe view. Exit it by exiting the console window (not the 3d window).

This is a quick and dirty hack...please treat it as one. And don't be confused about the size of the jpct.jar. It's the debug version, the release version will be smaller (around 230KB in size).
Title: Re: Compatibility test for compiled Object3Ds
Post by: fireside on March 23, 2009, 09:00:21 pm
I'm getting 8 frames per second on my amd 4200 with onboard geforce 6100.
Title: Re: Compatibility test for compiled Object3Ds
Post by: paulscode on March 23, 2009, 09:31:58 pm
Getting 42 FPS here.  Using NVIDIA GeForce 9400 GT (1GB video memory) plugged into a PCI-Express x16 v1.0, on a Compaq SR1750NX motherbord and AMD Athlon 64 processor (2.19Ghz, 1 GB RAM).

I'll also run the test on some of my test machines when I get a chance, and let you know the results and specs.
Title: Re: Compatibility test for compiled Object3Ds
Post by: influt on March 24, 2009, 12:31:22 am
20 FPS
==============
Configuration:
NVIDIA GeForce 6200 (128MB / AGP)
AMD Athlon XP 2500+ (1.83 GHz)
RAM 1GB DDR


update.
i was unable to launch it on another PC getting the following every time:
Code: [Select]
Loading textures...
Loading geometry...
Java version is: 1.5.0_14
-> support for BufferedImage
Version helper for 1.2+ initialized!
-> using BufferedImage
Software renderer (OpenGL mode) initialized
Software renderer disposed
Display thread initialized!
Current mode:800 x 600 x 32 @72Hz
Exception in thread "main" java.lang.IllegalStateException: Cannot determine clo
se requested state of uncreated window
        at org.lwjgl.opengl.Display.isCloseRequested(Display.java:551)
        at VW.main(VW.java:79)

==============
Configuration:
Intel 82915G/GV/910GL Express Chipset Family
Intel Pentium 4 2.66 GHz
RAM 1GB
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on March 24, 2009, 09:53:52 am
Yes, that's a problem that i encoutered myself...i've uploaded a version that should fix this. In addition, the new version is around 50%-75% faster on my machines (except on that intel onboard one...). Please give it a try.
Title: Re: Compatibility test for compiled Object3Ds
Post by: influt on March 24, 2009, 10:03:03 am
crap!  ;D
now it shows 3 FPS on that Intel onboard
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on March 24, 2009, 12:10:47 pm
crap!  ;D
now it shows 3 FPS on that Intel onboard
Nothing you can do about this. Even the newer Intels are slow, and yours is oooooold. Even the newest ones don't do T&L in hardware IIRC. The model consists of over 1 million vertices...just too much for those crapsets and your trusty P4.
Title: Re: Compatibility test for compiled Object3Ds
Post by: JavaMan on March 24, 2009, 02:04:08 pm
Hi,
I tried out the new version on a ATI Radeon HD 2600 XT with Quad Core2 2.6Ghz 4GB ram. I'm getting about 114FPS when view the entire car. Looks great!  I was having that same exception problem on two XP machines, but I'll give the new version a run on those.
Title: Re: Compatibility test for compiled Object3Ds
Post by: influt on March 24, 2009, 06:21:48 pm
the fixed version now gives 23 fps on my GeForce 6200 and Athlon 2500+
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on March 24, 2009, 08:52:46 pm
I've uploaded another version. This one uses larger sizes for the polygon batches. On my ATI, this increased the fps from 140 to 540. On my Intel, this crashes, because it can't handle the larger sizes. That's why there is a new batch-file for Intels, that limits the size to 1000, which work fine on them. It would be very cool, if someone with an NVidia could give it another try to see, if NVidia can handle the size. If it can't, you can specify the size to use right after the VW in the bat-file (look at the Intel.bat for an example).
Title: Re: Compatibility test for compiled Object3Ds
Post by: influt on March 24, 2009, 10:10:24 pm
well, mine does handle this size and now i am getting 30 fps. Good job, Egon!
Title: Re: Compatibility test for compiled Object3Ds
Post by: paulscode on March 24, 2009, 10:25:50 pm
125 FPS now on NVIDIA GeForce 9400 GT (same machine as my last post).  I haven't had a chance to run it on my other test machines yet.
Title: Re: Compatibility test for compiled Object3Ds
Post by: paulscode on March 24, 2009, 11:55:12 pm
Here are the results from my test laptops (using "runme.bat"):

A Dell Inspiron 8100 (Intel Pentium III, Mobile CPU 1.2Ghz, 256 MB RAM):
1-2 FPS (NVIDIA GeForce 2 Go, 64 MB 64-bit DDR)

Three seperate Dell Inspiron 1150's (Intel Pentium IV, 2.8GHz, 1GB RAM):
3-4 FPS (Intel 82852/82855 GM/GME Graphics Controllers)

A Dell Inspiron 1525 (Intel Pentium Dual CPU 2.0Ghz, 3GB RAM):
3-5 FPS (Mobile Intel 965 Express)

I've also got a couple of test PC's I'll run this on when i get a chance to hook them up.
Title: Re: Compatibility test for compiled Object3Ds
Post by: fireside on March 25, 2009, 12:05:48 am
I ran the newer version and still got 8 fps.  AMD 4200 with nforce onboard 6100.
Title: Re: Compatibility test for compiled Object3Ds
Post by: JavaMan on March 25, 2009, 01:55:54 am
I tested the new version:

Desktop: Windows Vista Quad Core 2.6Ghz 4GB Ram Ati Radeon HD 2600 XT runme:183-190FPS 

Desktop: WindowsXP SP1 Pentium 4 2.66Ghz no hyper-threading  512MB Ram    NVIDIA GeForce4 MX 440 AGP8X fps:8-15

Laptop:  WindowsXP SP2 Intel Core2 2.00GHz 2.00GB Ram NVIDIA GeForce Go 7950 GTX fps:Won't run

On the laptop it gets all the way until the output starts the fps, but the car doesn't appear. Then I get the WindowsXP this programs has screwed up and do you want to send a report dialog. The previous version ran on the laptop.
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on March 25, 2009, 10:27:16 am
Laptop:  WindowsXP SP2 Intel Core2 2.00GHz 2.00GB Ram NVIDIA GeForce Go 7950 GTX fps:Won't run

On the laptop it gets all the way until the output starts the fps, but the car doesn't appear. Then I get the WindowsXP this programs has screwed up and do you want to send a report dialog. The previous version ran on the laptop.
Damn...i had a similar problem myself, where compiling the display lists (which is what happens in that stage) causes a VM crash from time to time when using a larger batch size than 2000-something (which is actually quite small). I've moved that operation to another stage now. For me, it fixes the problem. Maybe you could give this fixed version another try on the laptop!? If it still doesn't work: I've included various batch-files that start with 1000, 2000, 4000, 6000 and 8000 as batch size in addition. Maybe on of them works?

BTW: Closing the windows now works too.
Title: Re: Compatibility test for compiled Object3Ds
Post by: JavaMan on March 25, 2009, 01:39:46 pm
I tried out all the versions. The problem begins with the runme_6000. The strange thing is though that I ran the program with VM 9000. Sometimes that would work, and other times it wouldn't work: I get the error dialog. Also, I get the same random work-doesn't work issue with the runme_6000.

Maybe you have already thought of this, but I noticed that the print out prints the first fps value and then states that all the objects have been compiled. I am wondering if jpct tries to draw the car before it is completely compiled, and sometimes this doesn't work out? Maybe some threading issue, since the problem is so random. Just a thought.
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on March 25, 2009, 03:04:10 pm
The interleaved print out of fps and "compiled..." is fine. It may be a threading issue anyway. The demo uses multi-threading in two ways. The first way is in the renderer itself. The second part is when calculating normals (which should be not related to this issue) and when filling the buffers to render. I've uploaded a new version (again... :-[ ) and a different one. The new version still uses multi-threading for the renderer but not any longer for the filler. The second one (http://www.jpct.net/download/beta/car_nt.exe (http://www.jpct.net/download/beta/car_nt.exe)) doesn't use MT at all. Maybe one of those will work?

BTW: I was able to verify the occasional crashes on my machine. They seem to be gone with both new versions, but that's just me...

Edit: And thank you very much for your patience...

Edit 2: This really annoys me. The problem (at least the crash that i get on my machines from time to time) is somehow related to the filling. What i call "filling" here, is copying an Object3D's mesh data into java.nio.FloatBuffer...nothing too special at all. This used to happen in multiple threads on multi-core machines to speed it up. The filling itself went fine (at least without errors) but rendering the result afterwards caused a crash sometimes. The crashes got more likely the larger the FloatBuffers were. With a batch size of 50000, i got a crash for sure. With 10000, it was like a 20% chance. I've ensured that each object is compiled exactly once, i.e. not two threads are working on the same buffers. There is nothing static in the structure that holds the buffers, all buffers are filled and ready to render when starting to compile the display lists from them (which is the step that caused the crashes). So the only option left that could cause these crashes is bad data in the buffers! But i've no f***ing idea what causes this. It makes no sense at all. Four threads working on four completely different sets of data with no interaction between them...how could this cause bad data in some of them? If i wouldn't know it better (i don't, but i've the feeling that i should...), i would think that this is a problem with java.nio, not with my code.
Anyway, i've removed the multi-threaded code from this section now and it seems to work. At least i can't reproduce the crashes i got before anymore.
Title: Re: Compatibility test for compiled Object3Ds
Post by: JavaMan on March 25, 2009, 11:52:55 pm
Ok, I downloaded it earlier this morning, but didn't get a chance to try it out. I will re-download the car_nt and the car.exe files and try them out, and let you know what happens.

Until, then I did a search and I found this old topic in the Sun's forums. I didn't read the whole thing( it was rather long), but the issue was over how nio is uses the native os to perform the work:might help. http://forums.sun.com/thread.jspa?threadID=607775 (http://forums.sun.com/thread.jspa?threadID=607775)
Title: Re: Compatibility test for compiled Object3Ds
Post by: .jayderyu on March 26, 2009, 05:26:11 pm
What I have

CPU(cheap dual core)
775LGA
Intel Pentium D 2.80 Dual Core(MMX, SSE, SSE3, EM64T)

Ram DDR2(266.6MHz, 1.5gb)

ATI Radeon HD 3400
512MB ram
Internal DAC(400mhz)

Windows XP sp3, DX9.0c

FPS: 70-74
Title: Re: Compatibility test for compiled Object3Ds
Post by: JavaMan on March 26, 2009, 10:32:12 pm
Oh yah! I got to test out the new version of the car.exe and car_nt.exe,  :D they both work just fine! I am getting 134-137fps. Also, the laptop has a Centrino Duo processor and 1GB of ram not 2.

One little note. Sometimes the OpenGL window is just slightly larger than the screen instead of 800*600. In this window though, jpct only renders to what appears to be 800*600 in the bottom left corner of the window.
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on March 27, 2009, 10:30:55 am
Oh yah! I got to test out the new version of the car.exe and car_nt.exe,  :D they both work just fine! I am getting 134-137fps. Also, the laptop has a Centrino Duo processor and 1GB of ram not 2.

You were a bit lucky with the car.exe, because it still has the problem (somewhat relaxed, but it's there). BUT: I finally found the source! It's not in jPCT's code, it's in the demo itself. The demo uses LWJGL to poll the keyboard and to determine the state of the Display. Because the renderer of car.exe is running in another thread, there seems to be a problem when compiling the display lists in one thread while querying the display and/or keyboard in another. The solution is to move that stuff into the methods that the IPaintListerner Interface provides because they will be called in the same thread. This one took me a few days, but if i would just have followed my own advises, i would have noticed this earlier... ;)

One little note. Sometimes the OpenGL window is just slightly larger than the screen instead of 800*600. In this window though, jpct only renders to what appears to be 800*600 in the bottom left corner of the window.
Nothing i can do about that. I'm just asking LWJGL for the windows. Why it does this strange thing...i don't know.

However, i thank you very much for testing. It really helped me to narrow it down.
Title: Re: Compatibility test for compiled Object3Ds
Post by: JavaMan on March 27, 2009, 12:48:35 pm
Quote
You were a bit lucky with the car.exe, because it still has the problem (somewhat relaxed, but it's there). BUT: I finally found the source! It's not in jPCT's code, it's in the demo itself. The demo uses LWJGL to poll the keyboard and to determine the state of the Display. Because the renderer of car.exe is running in another thread, there seems to be a problem when compiling the display lists in one thread while querying the display and/or keyboard in another. The solution is to move that stuff into the methods that the IPaintListerner Interface provides because they will be called in the same thread. This one took me a few days, but if i would just have followed my own advises, i would have noticed this earlier... Wink
Thats great you figured it out!

Quote
However, i thank you very much for testing. It really helped me to narrow it down.
Hey, I am glad I was able to help a little for the new feature.  ;)
Title: Re: Compatibility test for compiled Object3Ds
Post by: raft on March 28, 2009, 01:44:07 am
all the tests run ok on my crap intel 915 on board chipset. fps are 3-7

i will run them on a decent desktop as soon as i can..
Title: Re: Compatibility test for compiled Object3Ds
Post by: Melssj5 on March 30, 2009, 07:40:13 pm
It ran at 13 fps on my centrino 1.6, 1GB ram, ATI X600, Windows XP - jre1.6.0_12
Title: Re: Compatibility test for compiled Object3Ds
Post by: C3R14L.K1L4 on April 18, 2009, 09:50:42 pm
At my desktop got ~243 FPS.

(http://img205.imageshack.us/img205/1346/image2wpi.png)

Specifications:
Quote
CPU Type   Mobile AMD Turion 64 ML-34, 2289 MHz (9 x 254) 
   Motherboard Name   Asus K8N4-E Deluxe (3 PCI, 3 PCI-E x1, 1 PCI-E x16, 3 DDR DIMM, Audio, Gigabit LAN, IEEE-1394) 
   Motherboard Chipset   nVIDIA nForce4-4X, AMD Hammer 
   System Memory   2048 MB (PC3200 DDR SDRAM)

Video Adapter   Asus EN8600GT  (512 MB)
   GPU Code Name   G84GT (PCI Express 1.0 x16 10DE / 0402, Rev A2) 
   GPU Clock (Geometric Domain)   648 MHz (original: 540 MHz, overclock: 20%) 
   GPU Clock (Shader Domain)   1404 MHz (original: 1188 MHz, overclock: 18%) 
   Memory Clock   837 MHz (original: 700 MHz, overclock: 20%) 

OS: Microsoft Windows XP Professional 32-bit SP3

At my laptop got ~36 fps.

Specs:
Quote
Operating System   Microsoft Windows 7 Ultimate
CPU Type   DualCore AMD Athlon X2 QL-62, 2000 MHz (10 x 200)
Motherboard Name   Toshiba Satellite L300D
Motherboard Chipset   AMD M780V, AMD K11
System Memory   2816 MB  (DDR2-800 Registered DDR2 SDRAM)
DIMM1: Samsung M4 70T2864QZ3-CF7   1 GB DDR2-800 DDR2 SDRAM  (6-6-6-18 @ 400 MHz)  (5-5-5-15 @ 333 MHz)  (4-4-4-12 @ 266 MHz)
DIMM3: Samsung M4 70T5663QZ3-CF7   2 GB DDR2-800 DDR2 SDRAM  (6-6-6-18 @ 400 MHz)  (5-5-5-15 @ 333 MHz)  (4-4-4-12 @ 266 MHz)
Video Adapter   ATI Radeon 3100 Graphics  (256 MB)

I hope I didn't scare anyone with this...
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on April 21, 2009, 04:33:01 pm
I hope I didn't scare anyone with this...
I don't think so. Why should you... ???
Title: Re: Compatibility test for compiled Object3Ds
Post by: C3R14L.K1L4 on April 22, 2009, 04:34:24 pm
Just because you requested "Preferably with frame rate and system configuration" and I detailed it :D

At my sister's PC, GF7600GS + 1.5GB DDR400 + VIA K8M800 + Sempron 3100+ ~ 76 fps.
Title: Re: Compatibility test for compiled Object3Ds
Post by: EgonOlsen on April 22, 2009, 10:12:14 pm
Just because you requested "Preferably with frame rate and system configuration" and I detailed it :D
That's cool...i like that. Being a hardware freak myself, i really like detailed specs.