Player (EX9.Texture) - Problem with big textures @60 fps

Hello vvvers,

I want to play back a big texture (5760 x 2160) spreaded on 6 screens via the Ati HD 7850 Eyefinity 6 using the ATI catalyst software to combine the 6 screens to one big desktop.
I am using the Player EX9.texture Node with DDS DXT1 textures on one big renderer.

When I started the system, everything went surprisingly well: played back in 60 FPS.

After ca. ½ an hour, the framerate dropped suddenly to ca 20 FPS.
So I thought something was full, maybe the RAM or the GPU RAM.

I closed vvvv and restarted the computer. But then it didn’t work any better → Framerate @ ~20 fps. I never got back on 60 fps again.

Just to check if i fucked up the hardware I tried the whole thing again on a different computer, with the exact same technical specs. Exactly the same: First ½ hour works like a charm, after that it runs only 20fps.

Some observations:

  • When @20 fps the “Loaded” Pin of the Player Node shows “0”. → Are the dds files too slow transferred from HDD to RAM?
  • In the Resources Monitor the standby ram is filling up really fast, when i start vvvv. → Is this a problem?
  • GPU-Z shows that only 400 MB of the 2GB GPU-RAM are used.
  • the tty renderer shows: “00:00:03 * : can’t draw whole geometry at once: * preprocessing vertices of any kind of billboards or onesided particles is not yet supported. World is camera dependent.switching to slicewise rendering.” → has this something to do with the problem?
  • EDIT: PerfMeter says the Problem is: CPU / preparegraph

Does anyone have an idea what could help?
Did anyone have a similar scenario?
Thank you.

My setup:

i7
16GB Ram
Windows 7
Revo Drive HDD
Win7
ATI Radeon HD 7850 Eyefinity 6 (http://shop.jacob-computer.de/club-3d-radeon-hd-7850-eyefinity-6-cgax-7856m6-artnr-2026321.html?gclid=CP_7scnL-78CFbDKtAod-00A8g)

vvvv 32.1 64bit

info missing: how long is your sequence?

For this test setup 3200 Frames, running in loop.

Later it will be about 15000 Frames.

might be an overheating issue? cpu steps back speed to protect itself? have you tried to turn off the machine and wait for a while?

@ elektromeier: Yes, I turned the machine off, waited several hours and started it again. Same problem…

When you say same problem after restart and waiting a while you mean it works fine for half an hour or does it start with 20 fps and is loaded output is false?

Sorry I was a bit unprecise:

When I switch the machine off, wait for a while and turn it on again, it starts with 60 fps, after a few seconds it drops down to 20 fps and loaded output is false.

  • What are the specs of your harddisk?
  • How large are your files?
  • Do you see anything unusual when running procmon?
  • What do the Duration IO and Duration Texture outputs say?
  • Just to make sure use a tool like openhardwaremonitor.org and check the temperatures of your hardware - but will probably be ok.

And how many textures are you preloading? If you play them sequentially (and not randomly) you probably won’t need to preload more than four. The less frames you preload the lower the general overhead will be. I’d also recommend to set the Threads Texture to one as you’re loading DDS files which get decompressed on the GPU anyway. This pin is more important for CPU bound decompression like JPEG etc.

The drop in performance after such a long time is weird. I never had that problem. To me it also sounds like a hardware problem.

If the whole sequence fits into RAM, it is sometimes slow on the first loop and the intriguingly fast subsequent later loops, as windows is auto-caching files as much as it can. So make sure to test with the final amount of frames. But it’s never the other way round.

Your overall load approximately equals one fullHD stream of uncompressed images, so it shouldn’t be a problem off a revo drive. If the problem persists, try splitting your video in 2 or 4 regions, as smaller textures usually transfer more smoothly …

Is it the same with v4 32bit?

I would assume, that the Revo Drive gets too hot. Try what happens when you copy a file under windows in parallel when @20fps.

Hi
thanks for your posts, here are some more Infos:

  • Harddrive: RevoDrive PCI-Express SSD 120GB
  • DDS Files are 5760x2160 and have 6,076 MB
  • as far as i can see, no strange behaviour in procmon.
  • Duration IO Pin: 0,0193 Duration Texture Pin: 0,0000
  • Max Temp CPU: 54°C, Max Temp GPU: 52°C
  • we are testing now with a sequence length of 15000 Frames

We have been preloading 15 Textures. Changed it to 4, like you recommendet, Problem is still there.

We tried with splitting the big texture in 2 smaller ones (5760x1080) and 6 smaller ones (1920x1080).
Exactly the same Problem for both versions: Runs the very first time perfectly @60fps for 30-45 min, after that it drops to 10-20 fps.
If you restart the computer after that, it is for a few seconds on 60 fps then drops to 10-20 fps. This happens both when you start it again immediately or after several hours.

So it can’t be the temperature…
Changing directory or renaming the files doesnt help also.

Problem appears as well in 32 and 64 bit version.

Is there any buffer where the player puts data in? Is there a possibility to force flushing of this buffer?

may it has something to to with some strange garbage collection handling of your revo drive? after copying a lot of files to any ssd drive at some point it will start an internal garbage collection process to make writable blocks available again. with a amount of copying 15k files this could take some hours. the problem is that you have no chance to control or even see whats going on inside your ssd…
performance wise there is also a huge difference between conusmer and enterprise ssds (which has an guaranteed constant read rate until dead - and of course a much higher price)

see: https://www.youtube.com/watch?v=a55cPf1x_S0

any chance to test the same thing with anoter ssd?

eno + milo, reminds me a little bit of our last job together where we had the same suspicion, ssd is doing some nasty magic in the background

Duration io says it took 19ms to read one file from the hard drive. That’s certainly too slow with a theoretical frame rate of 50 fps. Can you do a perf read test of your ssd before and after the frame rate drop and see if it keeps its advertised read speed? Which must be at least 360mb/s in your case.

We recently also considered the ocz revo for a project. But all hardware providers we asked for an offer advised against it because of quality issues.

After having a lot of hassle with another PCIe SSD (Mushkin Scorpion Deluxe) – which has problems with the current intel chipset Z97 – we settled for a dedicated PCIe raidcontroller and four “normal” SSDs in Raid0 which works quite nice.

@ u7angel - looking back I think we saw an intitialization process of new drives, as this behaviour never reoccured, also not after extensive testing.

360 mb/sec should be easily achievable from an onboard raid with two ssds. Even one could be enough, certainly for 300mb/sec = 50fps.

I also heard neagitve reports on revo drive quality.

@gerrit - how can you see the desired behaviour for 30minutes, if the bad behaviour persists even after a long shutdown? What did you do inbetween?

I still assume temperature problems on the revo drive. You only reported temperature for GPU and CPU, but you can also read it for other devices …


ah, did you shut off all indexing and search services in windows?

that’s why i asked to keep an eye on procmon for any weird background stuff going on…

First: Thank you very much for your help.

As a quick solution we changed the resolution to 6x720p. Now it works, no Problem for at least 5 hours.

At the moment i am very busy, but I will try to find the problem with 6x1080p and keep you posted!

Hello,
just to complete this thread:

After some more testing the revodrive really seems to be the problem.

Our solution is to split the Texture into two à 5760 x 1080 Px.
We can play back these two streams from two different SSDs without a problem in 60 fps.

Thanks for your help!