Hugh performance difference between osx El captain and bootcamp windows 10

I’ve recently picked up OF again (still a noob) and been experimenting with HD animations with alpha.
I managed to get over 600 loaded and playing in sequence on my macbook pro 16gig ram. But when I tried the same project on the same machine in bootcamp windows 10 I could only get about 150 loaded and playing before the memory bombed and crashed the program. I also tried on a vr ready gaming pc win10 with the same results!
I tried every possible way to load the png sequence but couldn’t get any improvements.
Does anyone know why there would be such a high performance difference between osx and windows on the same spec machine?
Unfortunately the project I’m working on has to use a windows machine so I would tell like to know what’s going on here.

Would appreciate any incites

Hi.

That does seem strange. Did you try building 64bit in Windows? Not sure but that could help.

Also how are you loading the sequences. If you can share the code of how you are loading and storing the data it could be helpful.

One other thing. Did you make sure you have the latest graphics drivers for your GPU on Windows? That could be limiting you too.

All the best
Theo

Thanks Theo, a 64bit build did make a huge difference. I’m up to around 400 pngs from 150.
I tried installing new drivers even though it said they were up-to-date, but didn’t make any difference.
This is the link (win10 64bit at the bottom): https://downloadcenter.intel.com/download/26078/Intel-Graphics-Driver-for-Windows-10-and-Windows-7-8-1-15-40-
Would they be the correct/most recent drivers for Intel Iris Graphics 6100?

I’ve tried lots of variations to load and display the pngs including:
ofImage()
ofImage with setUseTexture(false)
ofTexture() only

But all surprisingly had same results. I think I got better results using ofxImageSequence addon.

This is the current code I used for the 64bit build and driver update tests:

//Setup
int nFiles = dir.listDir(“Renders”);
if (nFiles)
{
ofImage loader;
loader.setUseTexture(false);

for (int k = 0; k < dir.size(); k++)
{
	string filePath = dir.getPath(k);
	loader.loadImage(filePath);
	images[k].allocate(loader.getWidth(), loader.getHeight(), GL_RGBA);
	images[k].loadData(loader.getPixels(), loader.getWidth(), loader.getHeight(), GL_RGBA);
}

}

//Draw
images[frameIndex].draw(0, 0);

I haven’t tried ofxFastIOImage addon yet. Do you think would help?

Really appreciate your advice Theo.

Kind regards
Ant

I just tried my original OSX code, on Windows again but 64bit build, and it managed to load the whole sequence all without bombing. 600 pngs…
//Setup
int nFiles = dir.listDir(“Renders”);
if(nFiles)
{

    for(int i=0; i<dir.size(); i++)
    {
        
        // add the image to the vector
        string filePath = dir.getPath(i);
		ofTexture t;
		ofLoadImage(t, filePath);
        images.push_back(t);
        
    }
    
}

//Draw
images[frameIndex].draw(0,0);

I’ve been testing ofxTexturePacker so I’ll probably use this instead of loading 600 pngs, but I’m really glad Windows performance seems to be much closer to OSX now.

Still, I would gladly except any advice on further performance improvements.

Thanks again
Ant

also check that you are compiling in release mode not debug

Thanks Arturo, will do

I also ran into this problem when loading pixel sequences in 32-bit OF. In Windows, a single 32 bit process can only use as much as about 2 GB of RAM (theoretically its 4 GB, but 2 GB are usually reserved for the operation system). 64 bit processes, however, dont have this limitation because the available address space is so huge (16 exbibytes) :slight_smile: