Showing results for 
Search instead for 
Did you mean: 

New Curious Findings About Spud [Technical]

Level 9
I am fighting/experimenting with Spud for 5-6 months already, and today while I was testing for something else (left tilt), I made a curious discovery.

After a reinstall of Oculus and after I also wiped my appdata/Oculus folder this time, I waited again until Oculus got the Spud data from the server.

I rebooted the PC, and started Oculus. I am familiar with the characteristics of this display already so I can spot minor things and know what to expect (re: "film grain" and some minor colour inconsistencies).

I am loading my test suite (Big Screen, grayscale images etc.)....and I can't believe my eyes: Everything looks WONDERFUL.
Very even grays, solid black without fading or "haze" and mura ("dirty window") literally GONE.

I was doublechecking whether Spud is really active (it IS), I am checking the logs and I see that spud is loaded, the cache generated and used.I also have other checks for this. So yes, Spud is on and the image is MUCH better than in the previous days. Grays are almost perfect, banding gone and mura ("dirty window") gone.

As soon as I kill and restart the OVRRuntime service, it of course uses the same Spud data, but THEN does something weird with it. As soon as I restarted the service, I saw more pronounced artifacts, banding and much more pronounced "dirty window".

Here is what I found:

--> Merely quitting/starting Oculus from desktop seems to KEEP the "good" Spud data.
--> Restarting Oculus (via the BETA tab), which I assume also restarts the service, "messes up" the data and then continues to show the "bad" behaviour, with artifacts, mura etc.
--> Restarting the service also results in the "bad" display.

This is new to me, despite me looking into Spud for some months already and trying to understand why it does what it does.

Oculus devs should look into what happens, why it displays "nicely" UNTIL the service is restarted. I suspect there is some internal Spud cache used (in addition to the cache FILE in the Spud folder, but I don't think the cache file itself changes. It's only generated once anyway.).

TLDR: Spud works correctly when spud data is fetched and Oculus starts for the first time. But as soon as the OVR Service is stopped and restarts, something happens with the Spud data. It is either interpreted wrongly or incorrect values are being applied or an incorrect internal cache is created.  (Resulting in banding, mura, greenish stuff etc.)

Here is the kicker why this is relevant (yes I am testing this as I type):

Once the "bad" Spud data/display has activated  and as a result of this you have mura, banding, tint, PERSISTS.
Even a PC reboot will do nothing. You will then have the "bad" display at all times.

I am now trying to figure out how to prevent this, whether it changes/creates a new cache file or something. It must save the incorrect cache somewhere, otherwise it couldn't make it over a reboot.

Edit: It is indeed loading the initial Spud cache file (*.mashed) that has been created previously, again, and then alters it (in the first $180 bytes) and re-saves it. (When it does that, the changes it does are not consistent, it writes different values every time)
I am assuming from my observations that the initial cache (the one it creates after you deleted BOTH, *.spud and *.mashed, reboot, and then let it create it) is correct. But when this initial cache has been created and is then re-created (for what reason??) the issues appear. The re-generated cache is always a "bad" one. Unfortunately, I cannot just write-protect the cache file. When I do that, Oculus doesn't display anything since it cannot "establish uniformity" according to the log.

Edit 2: Yes there IS a difference to Spud OFF and this. I tested it. With my current display, Spud off has "dirty window" visible basically in all lower shades, and the usual stuff like posterization in lower shades. Means, Spud is definitely working with this "trick", and this time actually correctly. Display has never been so clear and smooth. The question is...why is the software taking the generated Spud cache and changes it again? And how can we prevent this? (Obviously I am asking Oculus devs here)

Level 4
All these years I've owned the rift and I've just found out this fix. I'm both happy and annoyed that oculus didn't notify users like me of this issue. I cannot believe the difference it has made to the clarity and detail of the display.

Level 3
Hey I am reading this thread, what is "the fix".  I just see a bunch of info about spud.  did i miss "the fix"? 


Level 3
I you really want to disable the smear to enjoy true blacks and no smear:
Stop the oculus service, go to %localappdata%\Oculus, copy the Spud folder just in case and then delete the contents of the original folder. Right click on Spud -> Properties -> Security -> edit -> add 'everyone' -> set write permission to deny and start the oculus services again  😛