Jitter gets tired

pm's icon

I've just finished a complex video gig, with many jit.qt.movie and videoplanes, optimized as Vade proposed it with uyvy. I've tested my setup many times before the event and didn't had any bug.
During the show (my Max patch had run for a whole day intensively with no reboot) and then Jitter stopped working properly. I had many rehearsals during the day and did'nt had any problem. But during the show, movies didn't load as they were supposed to : blue screens, digital glitches, frames freezing and skipping. A pure nightmare.

Anybody has heard about this?

Does Jitter (or jit.qt.movie or jit.gl.videoplan) has a kind of "buffer" that gets full when used intensively? Is there a way to clear it without restarting Max?

Thanks a lot!

Axiom-Crux's icon

Im not sure that jitter has such problems, but laptops sure do, I know when I leave my laptop on and running complex things for a few days it starts to get kindof funky. Its possible that your memory and harddrive got tired more then jitter. I always restart before an important show, as Ive had similar problems but with different software.

pm's icon

I noticed that only the more used jit.qt.movie-jit.gl.videoplane were bugging. During the gig, a movie that was load in a "movie player" was rendered as a blue screen. I reloaded it in the same "movie player" and got the same result. When I loaded it in another "movie player", one that didn't got used a lot before, the movie loaded normally.
And it wasn't running on a laptop, but on a 8-core MacPro with 8 gigs of RAM. I don't think it's the harddrive, but you may be right...
Any other idea of where this could come from?

Thanks.

Pierre Alexandre Tremblay's icon

The only time this happened to me was after a long time not rebooing the machine.

When did you last reboot before oddities happened?

pa

Axiom-Crux's icon

yeah thats what I was saying more then the laptop aspect, I had just assumed it was a laptop since you took it to a gig, but now im curious how you took a desktop to a gig without rebooting??

Adam Kendall's icon

What kind of machine/system are you using?

If you're on XP, you could be running into a "page file" issue, i.e., Windows swapping memory between RAM and a special disk file.

Also, your computer could be overheating, causing the CPU or GPU to slowdown.

FWIW, in XP I sometimes have FPS anomalies that I can't get rid of for days, then just go away. Meaning, I'll work for days with no problems, then during sessions my FPS will temporarily drop 10%-20% for no reason I can figure out, then go back to normal. I'll shtudown, leave the computer alone, reboot, and the same thing happens.

Also, don't rule out QT as the culprit. I was having some noticeable time-hits loading movies into Jitter in XP. I downgraded Quicktime to 6.x and the problems went away.

Dg's icon

Hello fakegolfer,

Just a advice.

I always restart my computer after rehearsal and before the show, it is rule #1.

When you are working and testing your patch, then sometimes after your tests some process are not finished in the computer. So the best way to initialize things is to reboot.

pm's icon

I had restarted my machine in the morning. (a MacPro 8-core)

Thanks for the advice Kyred. I know I should have rebooted my machine between the reheasal and the show.

But my question was more : is there a way to clear Jitter's background processings without rebooting?

Thanks!

Pierre Alexandre Tremblay's icon

I don't think it has anything to do with Jitter. All my programs seem to get 'tired' it might be quicktime, the system, or any other ghost.

Reboot is great.

pa

Dg's icon

Exactly!

pm's icon

Thanks for your replies.

Next time, I won't be afraid of rebooting...

dtr's icon

fakegolfer wrote on Mon, 23 February 2009 02:51Anybody has heard about this?

bad karma?

(ok sorry that doesnt help, but sometimes it s just pure bad luck, isnt it? computers you know... i'm with the rebooting gang, btw)

ale's icon

Hello, this is an old post, but I have the exact same question: How can I clear Jitter's background processes without rebooting?

In my show, I use 12 different video patchers. They work fine individually after a reboot, but if I open them one after the other, Jitter starts lagging, even on a simple movie reading. I cannot reboot in the middle of the show.

The 12 patchers use multiple videos with jit.movie (always with an @output_texture 1), multiple jit.gl.meshwarp, multiple jit.gl.model with 3D objects, JS, and Node.js. They're kind of complex, but, again, there is no problem if I run them after a reboot. I do send them a "dispose" message before closing the patcher when needed.

Before closing any patch, I bang a js object with this content :

autowatch=1;
debug=false;
function bang() {
    var count = 0;
    var countDisable = 0;
    var rootPatcher = this.patcher;
    if (!rootPatcher) {
        post("[GlobalPurge] ERROR: this.patcher is null\n");
        return;
    }

    // Remonter à la racine
    while (rootPatcher.parentpatcher) {
        rootPatcher = rootPatcher.parentpatcher();
    }

    post("[GlobalPurge] scanning root patcher: " + rootPatcher.name + "\n");
    recurse(rootPatcher);
    post("[GlobalPurge] done. Objects touched: " + count + "\n Objects disabled : " +countDisable +"\n");

    function recurse(p) {
        if (!p) return;
        var obj = p.firstobject;
        while (obj) {
            purgeObject(obj);
            disableObject(obj);
            if (obj.subpatcher)
                recurse(obj.subpatcher());
            obj = obj.nextobject;
        }
    }
    function disableObject(o) {
        var cls = o.maxclass || "";
        try {
            // On cible les objets GL susceptibles d'avoir @enable
            if (cls.indexOf("jit.gl.") === 0) {
                o.message("enable", 0);
                if(debug) post("[DisableAll] enable 0 -> " + cls + "\n");
                countDisable++;
            }
        } catch (e) {
            post("[DisableAll] error: " + e + "\n");
        }
    }
    function purgeObject(o) {
        var cls = o.maxclass || "";
        try {

            if (cls.indexOf("jit.gl.render") >= 0) {
                // erase pour libérer le contexte OpenGL
                o.message("erase");
                if(debug) post("[GlobalPurge] erase -> " + cls + "\n");
                count++;
            } else if (cls.indexOf("jit.movie") >= 0) {
                // arrêt de la vidéo + libération
                o.message("stop");
                o.message("dispose");
                //o.message("read", "");  // forcer à charger "rien"
                if(debug) post("[GlobalPurge] stop/dispose -> " + cls + "\n");
                count++;
            } else if (cls.indexOf("jit.gl.texture") >= 0) {
                // débind la texture
                o.message("unbind");
               if(debug)  post("[GlobalPurge] unbind -> " + cls + "\n");
                count++;
            } else if (cls === "jit.matrix") {
                // clear la matrice
                o.message("clear");
                if(debug) post("[GlobalPurge] clear -> " + cls + "\n");
                count++;
            } else if (cls.indexOf("jit.gl.model") >= 0) {
                // dispose le modèle 3D
                o.message("dispose");
                if(debug) post("[GlobalPurge] dispose -> " + cls + "\n");
                count++;
            }
            // jit.gl.node, jit.gl.mesh, jit.gl.slab, jit.gl.videoplane
            // n'ont pas de message spécifique de libération documenté
        } catch (e) {
            post("[GlobalPurge] error: " + e + "\n");
        }
    }
}

The computer (a MacBook laptop) is working fine; no other software is impacted but Max/Jitter.

Despite previous messages, I still feel Jitter has a sort of cache that isn't clearing.

Thanks for any reply :)