Chromaster v2.x : The ultimate companion Topaz Video / Video AI deserves

:sparkles: Chromaster v2.8.0 — HDR UI update :sparkles:

Deep HDR rendering cleanup round.

Main change: move Chromaster’s GUI renderer to the HDR-era architecture, using the path first proven in ChromAV2 Player. :artist_palette:

:rainbow: HDR GUI renderer :rainbow:

Replace the old full-SDR/BGRA8 display path with a modern HDR-capable structure:


  • scRGB FP16 rendering path for HDR displays.
  • Flip-model swapchain instead of the legacy SDR model.
  • HDR display detection through D3D11/DXGI.
  • Conditional UI luminance mapping:
    • HDR display: HDR-friendly UI luminance.
    • SDR display: neutral 1.0 path, preserving SDR appearance.
  • Direct2D decoupled from the final backbuffer:
    • Render GUI normally with D2D.
    • Store result in an intermediate SDR texture.
    • Composite it into the HDR backbuffer through a final shader pass.

:shield: Safer HDR image routing :shield:

Add a dedicated wrapper for HDR source-image submission, keeping the HDR path explicit and protected from misuse.

Current scope:

  • 8 source-family image sites migrated to the HDR-aware wrapper.
  • Destination, QA and banner families left untouched.

:dna: H.266 / Metadata color classification cleanup :dna:

Centralize duplicated HDR/SDR source-classifier logic.

Avoid silent divergence between:

  • VVenC parameters.
  • Metadata tree display.

Preserve the original behavior:

  • H.266 tab: neutral case remains silent, no forced parameter.
  • Metadata tab: neutral case still shows “source unspecified”.

Preserve edge cases:

  • PQ priority.
  • BT.2020 as secondary refinement.
  • BT.470BG + PQ kept as PQ, not SDR 470BG.
  • Neutral case still site-specific.

:test_tube: HDR test hygiene :test_tube:

Stage HDR harness cleanup:

  • Stop duplicating PQ constants
  • Reference production HDR constants directly.
  • Prevent tests drifting away from renderer/shader constants.

:open_book: Summary :open_book:

  • Prove HDR GUI path in ChromAV2 Player.
  • Bring the same HDR-capable foundation to Chromaster.
  • Preserve SDR compatibility.
  • Make HDR source routing safer.
  • Centralize duplicated HDR/SDR classification.
  • Prepare a cleaner runway for the future wide-gamut CIE diagram.

More HDR visual work coming next. :rocket:

:floppy_disk: Download Chromaster v2.8.0

Oups error - Broken pipe. The program and the compiler didn’t account for the fact that my test machine lacks AVX2 support. :cry: I’ll be an observer for the time being. :handshake:

Could you tell me which CPU generation you’re using, and which codec it’s showing?

I also noticed that a broken pipe error can occur with Rigaya’s NVEncC (v9.23). He is now using a non-static executable (meaning it relies on companion DLLs), and the updater wasn’t handling this correctly until I patched it yesterday.

CPU Intel Core I7-3770K 3.50GHz
Error AV2 coder avmenc.exe v1.0.0.40 :cry:
PS Whith NVEncC64 v9.23 everything fine …i chust tem dounload and put all nessesary lib onto the same dir day before. :handshake:

Regarding NVEncC version 9.23, you handled the issue correctly. Chromaster 2.8.1 will extract these DLLs into the dependencies folder. I do not know whether Rigaya will change this behavior in the future. Either way, I will keep monitoring the topic as long as an H.266 codec is involved.

As for the AV2 codec, I will compile two builds: a SIMD build and a generic build, both automatically unpacked by the wizard.
The team behind avmenc is adding AVX2 and AVX-512 optimizations, but I am not sure the fallback paths are fully implemented yet.

Chromaster will detect the CPU and use the most appropriate build, which means the generic one in your case.

Incoming …

  • CIE 1976 u’v’ color space
  • True gammut supported by your display (EDID source)
    eg : here more than BT.709 but less than BT.2020, Viewsonic VA3820C
    → Gives your true estimation of color rendering
  • scRGB FP16 rendering :heart_eyes:

BT.2020 to DCI-P3 grading

Chromaster — CIE diagrams overhaul & internal hardening :microscope:

A major update on the Chroma tab, plus a deep internal cleanup pass. :sparkles:

Chromaster v2.8.1 α :artist_palette:

Dual CIE chromaticity diagrams :bar_chart:

The Chroma tab now hosts two synchronized chromaticity diagrams — CIE 1931 xy and CIE 1976 u′v′.

  • CIE 1931 geometry corrected :triangular_ruler: — hidden +12.5% x-axis stretch fixed, the locus has its true shape.
  • New CIE 1976 u′v′ diagram :new_button: — perceptually uniform companion, same spectral data, u′v′ projection.
  • Rendered in linear scRGB FP16 :rainbow: — unclamped wide gamut on HDR displays, sRGB 8-bit fallback.
  • Your display’s real gamut, live :desktop_computer: — EDID primaries via DXGI, unreachable colors dimmed, multi-monitor aware.
  • Layout tightened :broom: — margins reclaimed, titles anchored to grid corners, axis letters dropped.

Internal hardening — the “single source of truth” pass :nut_and_bolt:

A full code-quality audit, closed item by item. Invisible to the eye, decisive for reliability:

  • Encode command unified :gear: — CLI and Metadata tree share one token stream

  • Encoder profiles engine :floppy_disk: — five codec families on one engine

  • Process launching unified :rocket: — one spawn helper; CPU affinity always applied before the thread pool spins up.

  • Bug fixed along the way :bug: — clicks no longer pass through open dropdowns onto sliders underneath.

  • NVEncC updater hardened :wrench: — recent Rigaya builds are no longer static; required DLLs now deployed alongside.

:floppy_disk: Download Chromaster v2.8.1 α

Generic AV2 codec sent the same strange error :sleepy_face:

HWiNFO init: process=0 sm=0
Encode [yuv4mpegpipe @ 00000000001a2a80] Warning: generating non standard YUV stream. Mjpegtools will not work.
Encode Left chroma sample position only supported for 420mpeg2 input
Encode Fatal: Unsupported Y4M stream.
Encode [vost#0:0/wrapped_avframe @ 00000000001a5240] Error submitting a packet to the muxer: Broken pipe
:sleepy_face:

So you did use the 2 exe I posted on Github and renamed it for your try ?

Yes, I did. Do not warry about that. My Hardware upgrade very close.

I didn’t dare suggest it, given the CPU you mentioned. :innocent:

Let’s just say it’s getting on in years for video upscaling with Topaz and/or using Chromaster.

Got it!
I sencerely want to help you to make the best product. Have some ideas, but it is not for
Public. Need your personal e-mail. :face_with_hand_over_mouth:

PM here in Topaz’ messaging then :sweat_smile:

Chromaster — HDR scopes & CIE diagrams polish :artist_palette:

Another round on the Chroma & Luma tabs, all about pushing the colorimetry scopes into true HDR. :sparkles:

Chromaster v2.8.2 α :microscope:

Saturation & Waveform scopes in HDR :rainbow:

Both analytical scopes now render their colorimetric content — smoke and curve — in linear scRGB FP16 on HDR displays, so they actually pop instead of sitting flat in the SDR range.

  • Saturation scope wide-gamut :green_circle: — smoke + SATAVG curve pushed beyond sRGB green, glowing above reference white.
  • HDR Waveform wide-gamut :blue_circle: — log-luminance smoke rendered in extended blue, brighter than the UI white point.
  • Custom anti-aliased curve rasterizer :pencil: — signed-distance coverage in FP16; smooth curves, zero staircase aliasing.
  • Chassis stays SDR :framed_picture: — grid, axes, labels and cursor stay crisp; only the colorimetric content goes HDR, composited underneath.
  • Byte-identical SDR fallback :ring_buoy: — on SDR displays the scopes are pixel-for-pixel unchanged, proven by binary-identity harness.

CIE 1931 & 1976 diagrams — fixes & polish :triangular_ruler:

  • Purple line fill/contour fixed :wrench: — the gap between fill and outline along the purple line is closed, pixel-identical now.
  • CIE 1976 grid extended to 0.7 :bar_chart: — the full horseshoe fits, no more clipping off the right edge, legend breathes.
  • Display-gamut triangle restyled :red_triangle_pointed_up: — clean grey dash matching the destination triangle, snapped exactly onto the out-of-gamut boundary.
  • Out-of-gamut dimming now works in SDR :desktop_computer: — the display’s real gamut is a physical property, independent of HDR mode; dimming applies on any screen.
  • Titles & toggle anchored to the grid corners :broom: — margins reclaimed, layout tightened.

:floppy_disk: Download Chromaster v2.8.2 α

My status is very low, so
cannot

  • Send personal messages to other users :face_with_medical_mask:

Don’t worry, I got you :wink:

I already sent two messages yesterday. Did you get them? The system is glitching.

Yes I did, as I said :wink:
Nice content, I will definitely keep it in mind. For now, I have to schedule things so they run while I am sleeping, using my local AI. (audits, security checks and so on)

It’s hard to keep up with the rhythm alone as things are getting more and more complicated :sweat_smile:

Not really something about the software itself - but you should imo rethink your versioning scheme.

Telling it’s an “alpha” version and having a 2.x version number doesn’t fit.

Alpha versions definitely should have a 0.xxx number (as long as you’re not Microsoft)…

I completely agree with the principle, and you’re also right about the numbering rules.

You can tell you’re an expert who learned coding rules in school; I understand, I went through the same thing.

Except… Chromaster version v1 really exists; I have it on my computer, it’s awful, slow, and above all, completely hand-coded, resulting in a legendary waste of time.

I’ve wrecked a lot of libraries in the meantime, and here’s what I’ve managed to recompile for fun.

Then I put “alpha” because I’m clearly speedrunning development. The “alpha” is mainly to say, “Don’t yell at me if things go wrong here or there; I’m not DaVinci Studio.”

As for the numbering, MKVToolNix is ​​at version v100, so I’m allowing myself a little leeway too. :smiley:

Chromaster — HDR strip & internal hardening :hammer_and_wrench:

Less flashy than last time, more solid under the hood: the thumbnail strip goes fully HDR-aware, and a big cleanup pass hunted down latent bugs and duplicated plumbing. :brick:

Chromaster v2.8.3 α :microscope:

HDR thumbnail strip :film_frames:

The strip finally handles HDR sources instead of clipping them to a washed-out mess.

  • Tone-mapped thumbnails :sunrise_over_mountains: — HDR highlights rolled off with a mobius curve in linear light; no more blown-out skies, the blue stays blue.
  • Multi-source aware :artist_palette: — PQ, HLG and mistagged HDR sources are all recognized and linearized from their real transfer curve, not just PQ.
  • Live SDR/HDR switching :counterclockwise_arrows_button: — toggling the display’s HDR mode refreshes the strip on the fly, no reload needed.
  • Full-chroma readback :test_tube: — 4:4:4 all the way through, no gratuitous chroma subsampling.

Loading spinner in HDR :hourglass_not_done:

  • Always on top :bright_button: — during extraction the spinner and label stay readable over any HDR preview, instead of getting drowned by a 1000-nit frame behind them.

Status bar accuracy :label:

  • Correct provisional container :package: — each codec reports its real intermediate container with a matching colour; AV1 NVENC shows its raw AV1 stream, no more misleading IVF label.

Internal hardening :brick:

  • Seven latent bugs squashed :bug: — input-focus tracking on the AV2 tab, script prefix matching, crop ratio crossfade, CPU-temp sanity bounds, and more quiet defects fixed.
  • Unified path handling :card_index_dividers: — one consistent path-buffer convention across the whole app; several silent truncations on long paths eliminated.
  • Deduplicated plumbing :wrench: — the Y4M command builder and the FP16 graph engine collapsed into single sources of truth, proven byte-for-byte by identity harnesses.
  • Consistent container tags :artist_palette: — provisional-container colours now match their names across every codec.

:floppy_disk: Download Chromaster v2.8.3 α