Revisiting Levels + Curves 32 Bug (Please Help Replicate/Test)

ALO wrote on 4/9/2025, 11:59 AM

History:

This has been ongoing for the past several years. I've always thought it was related to HEVC media, but in VP 22 I can replicate it just using Vegas' Generated Media. It took me a while to realize the problem results from an interaction between the Levels and Curves fx, in that order -- it is not just an issue with one or the other in isolation.

What it Is:

When used in combination at the clip level in a project-properties --> pixel formal --> 32-bit video levels project, Levels followed by Color Curves fx corrupt the clip brightness level, resulting in a much darker (and while playing, sometimes flickering) image.

How to Replicate:

Open a new 8-bit project in Vegas Pro, add a video track, and insert --> generated media --> color gradient to that track:

Now, at the clip level, add a Levels and a Color Curves Fx. Adjust the Levels to these numbers:

Input Start: .053

Input End: .825

Switch to the CC fx, and add contrast with the Color Curves fx:

You should be seeing something like this:

This is what things should look like--the levels fx is being applied properly, clipping the whites/blacks, and then the curves fx is being applied after the levels to remap the result with a "S" curve.

32-bit comparison:

Now, switch to project properties --> pixel format --> 32-bit video levels.

On my system, this is what I see:

The levels are badly corrupted. For me this happens with GPU acceleration on (NVIDIA RTX 3050 Ti) or off.

Interestingly, if I replace the Levels Fx with a LUT filter (replicating the Levels), that combination works with GPU acceleration "on", and breaks with GPU acceleration off.

Note that this can create a brightness flickering effect during playback/render, as (at least in past versions) the image would jump back and forth between correct and incorrect rendering.

Workarounds:

You can pair either Levels or Color Curves fx with a corresponding adjustment in the Color Grading Panel, ie clip Levels Fx + GC or GC + clip Color Curves Fx.

I personally find the CG panel slows my workflow and absolutely slows my renders. The Color Curves Fx seems clearly superior to me compared to the curves section of the GC panel, not only because you can animate it but also because it's a lot easier to control.

You can also delete the levels fx and add points to the Color Curves fx to replicate the effect of the levels fx. This gets tricky if you also want to use the levels fx to make gamma adjustments, however:

Final Thoughts:

This problem has been around for a while. It basically precludes using Levels + Curves fx in a 32-bit (video levels) project.

I first started posting about the issue three years ago. Hopefully, the steps I've outlined above will allow people to easily replicate the problem themselves, and give Vegas developers the information they need to finally address it.

 

 

Comments

john_dennis wrote on 4/9/2025, 3:55 PM

@ALO said:

"How to Replicate:

Open a new 8-bit project in Vegas Pro,"

I was setting up to test your theory when I realized that you were not explicit about which type of 8 bit project to create.

Please elucidate.

RogerS wrote on 4/9/2025, 7:06 PM

If you don't need media to replicate this can you share a sample .veg project for download? That would be quicker.

john_dennis wrote on 4/9/2025, 9:53 PM

This is what I see when switching to 32bit. I have no idea what it means except it's not what you see.

RogerS wrote on 4/9/2025, 10:00 PM

I don't think the ACES part makes any difference as that's disabled until you're in 32 bit full mode with view transform on.

ALO wrote on 4/25/2025, 1:20 PM

okay, I can replicate this with SD AVI video using levels + color corrector + levels fx, on a brand new machine, with a completely different graphics card, current build VP22.

So this is deep in the architecture of the fx chain code. At this point, this is a developer issue. Either they care or they don't. If you're going to use 32-bit video levels float, I think you basically have to use the CG panel

@VEGASDerek

fifonik wrote on 4/25/2025, 5:53 PM

I see the same behaviour in fresh project I created. Looks weird.

Camcorder: Panasonic X1500 + Panasonic X920 + GoPro Hero 11 Black

Desktop: MB: MSI B450M MORTAR TITANIUM, CPU: AMD Ryzen 5700X, RAM: G'Skill 32 GB DDR4@3200, Graphics card: MSI RX6600 8GB, SSD: Samsung 970 Evo+ 1TB (NVMe, OS), HDD WD 4TB, HDD Toshiba 4TB, OS: Windows 10 Pro 22H2

NLE: Vegas Pro [Edit] 11, 12, 13, 15, 17, 18, 19, 22

Author of FFMetrics and FFBitrateViewer

RogerS wrote on 4/25/2025, 6:43 PM

Sample .veg?

fifonik wrote on 4/25/2025, 7:15 PM

I thought the steps to re-produce are quite simple and easy to follow. Following steps by you own making sure that the shared sample project is not corrupted/adjusted in some unexpected way.
For some who would like to see sample project: here you are.

Download, unpack, open in VP22 and play with project settings (Alt+Enter), changing pixel format from '32-bit video levels' to '8-bit video levels' and visa versa and monitor scopes.

Camcorder: Panasonic X1500 + Panasonic X920 + GoPro Hero 11 Black

Desktop: MB: MSI B450M MORTAR TITANIUM, CPU: AMD Ryzen 5700X, RAM: G'Skill 32 GB DDR4@3200, Graphics card: MSI RX6600 8GB, SSD: Samsung 970 Evo+ 1TB (NVMe, OS), HDD WD 4TB, HDD Toshiba 4TB, OS: Windows 10 Pro 22H2

NLE: Vegas Pro [Edit] 11, 12, 13, 15, 17, 18, 19, 22

Author of FFMetrics and FFBitrateViewer

ALO wrote on 4/27/2025, 10:47 AM

I suddenly can't replicate this on either of my machines with either the levels+curves or levels+color corrector chain. No idea why. I have no idea what changed.

Sorry everyone--for now it doesn't look like I can be helpful on this

ALO wrote on 4/27/2025, 8:38 PM

And it's back for levels+curves in 32 bit.

I updated a few of my Visual C++ Redistributables to their current versions and as far as I know that's the only thing that's changed. I'll uninstall them and revert back and see if the problem goes away again. Current versions should just be security fixes but who knows?