Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 101 additions & 0 deletions hype/hdrinfo.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>hdrinfo: HDR Truth Before You Tune Pixels</title>
<style>
:root { --bg: #11131b; --card: #1a2130; --line: #314057; --ink: #eef4ff; --muted: #a8b6cc; --hot: #9df0ff; --warm: #ffd37a; }
* { box-sizing: border-box; }
body {
margin: 0;
color: var(--ink);
font: 16px/1.55 "Segoe UI", Arial, sans-serif;
background:
radial-gradient(900px 420px at 10% -10%, #20395a 0%, transparent 62%),
radial-gradient(800px 420px at 100% 0%, #49305a 0%, transparent 58%),
linear-gradient(180deg, #151b28, var(--bg));
min-height: 100vh;
}
main { max-width: 980px; margin: 0 auto; padding: 30px 18px 46px; }
section, .hero { border: 1px solid var(--line); border-radius: 14px; background: linear-gradient(180deg, #1b2434, #151d2a); padding: 18px; margin-top: 14px; }
.hero { margin-top: 0; padding: 24px; }
.eyebrow { color: var(--hot); text-transform: uppercase; letter-spacing: .12em; font-size: 12px; }
h1, h2 { margin: 0 0 8px; font-family: Cambria, Georgia, serif; }
h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.1; }
h2 { color: var(--warm); }
p { margin: 0 0 10px; color: var(--muted); }
ul { margin: 8px 0 0 20px; color: var(--muted); }
code { background: #101722; border: 1px solid #30415b; border-radius: 5px; padding: .1em .35em; color: #d8edff; }
pre { margin: 10px 0 0; background: #0d131d; border: 1px solid #30415b; border-radius: 10px; padding: 12px; overflow: auto; color: #d8edff; font: 13px/1.45 Consolas, "Cascadia Mono", monospace; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin-top: 14px; }
.pill { border: 1px solid var(--line); border-radius: 10px; background: #131b28; padding: 10px 12px; color: var(--muted); }
.pill strong { color: var(--ink); }
</style>
</head>
<body>
<main>
<header class="hero">
<div class="eyebrow">Hype Post</div>
<h1>hdrinfo gives HDR work a real display baseline</h1>
<p>
Before you tune a swap chain, tone mapper, or bug report around "HDR looks wrong", capture what Windows and DXGI actually know about the active outputs.
<code>hdrinfo</code> condenses that state into one shareable CLI report.
</p>
<div class="grid">
<div class="pill"><strong>Tool:</strong> hdrinfo</div>
<div class="pill"><strong>Date:</strong> July 03, 2026</div>
<div class="pill"><strong>Sources:</strong> DisplayConfig + IDXGIOutput6</div>
<div class="pill"><strong>Build:</strong> single C file, Windows SDK</div>
</div>
</header>

<section>
<h2>Fastest Win: Separate Panel Capability From OS State</h2>
<p>Run the tool once and you can tell whether the problem is hardware support, the Windows HDR toggle, link format, or tone-mapping assumptions.</p>
<pre>cl /O2 /W4 hdrinfo.c /link dxgi.lib dxguid.lib user32.lib
hdrinfo.exe</pre>
<pre>HDR supported : YES
HDR enabled : YES
Bits per channel : 10 bpc
Color encoding : RGB
SDR white level : 240 nits (slider 300.0%)
DXGI color space : HDR10 (PQ / BT.2020)</pre>
</section>

<section>
<h2>Workflow 1: Pick the Swap-Chain Format With Evidence</h2>
<p>Use the combined report as a pre-flight before choosing SDR, HDR10, or FP16/scRGB output paths.</p>
<ul>
<li><strong>HDR supported + enabled + 10 bpc:</strong> exercise the HDR path and verify tone mapping.</li>
<li><strong>HDR supported but disabled:</strong> avoid treating SDR compositor output as a rendering bug.</li>
<li><strong>8 bpc or YCbCr fallback:</strong> check bandwidth, cable, resolution, and refresh-rate constraints first.</li>
</ul>
</section>

<section>
<h2>Workflow 2: Normalize SDR UI in HDR</h2>
<p>The SDR white level gives a concrete scale factor for legacy UI brightness in an HDR desktop.</p>
<pre>scRGB white scale = SDRWhiteNits / 80.0
240 nits / 80 nits = 3.0</pre>
<p>That turns a subjective "too dim" or "washed out" report into a reproducible value to apply or compare.</p>
</section>

<section>
<h2>Workflow 3: Capture Tone-Mapping Anchors</h2>
<p>DXGI luminance and primary coordinates provide practical limits for highlight clipping, full-frame brightness, black floor, and gamut expectations.</p>
<ul>
<li><strong>Max luminance:</strong> specular highlight ceiling.</li>
<li><strong>Max full-frame luminance:</strong> sustained bright-scene target.</li>
<li><strong>Min luminance:</strong> shadow floor and contrast warning.</li>
<li><strong>Primaries:</strong> quick check for sRGB, DCI-P3, or wider-gamut behavior.</li>
</ul>
</section>

<section>
<h2>Guardrails</h2>
<p><code>hdrinfo</code> reports OS/display metadata; it does not measure the panel with a colorimeter or prove what an application rendered. Treat it as the first diagnostic artifact, then pair it with screenshots, captures, or instrumented rendering logs when chasing visual defects.</p>
</section>
</main>
</body>
</html>
6 changes: 6 additions & 0 deletions hype/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,12 @@ <h2 class="title">modsnap</h2>
<div class="desc">Get script-friendly module truth for a process in table, path, CSV, or count mode.</div>
</a>

<a class="card tone-5" href="./hdrinfo.html">
<h2 class="title">hdrinfo</h2>
<div class="date">July 03, 2026</div>
<div class="desc">Turn Windows HDR display state into a practical report for swap-chain and tone-mapping decisions.</div>
</a>

<a class="card tone-3" href="./quuid.html">
<h2 class="title">quuid</h2>
<div class="date">February 02, 2026</div>
Expand Down
61 changes: 61 additions & 0 deletions reviews/hdrinfo.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Tool Review: hdrinfo</title>
<style>
body { font-family: "Segoe UI", Arial, sans-serif; margin: 2rem auto; max-width: 900px; line-height: 1.5; color: #1f2937; }
h1, h2 { color: #111827; }
code { background: #f3f4f6; padding: 0.1rem 0.3rem; border-radius: 4px; }
.verdict { padding: 0.75rem 1rem; background: #eef2ff; border-left: 4px solid #4f46e5; }
</style>
</head>
<body>
<article>
<h1>Tool Review: hdrinfo</h1>
<p><strong>Date:</strong> July 03, 2026</p>
<p class="verdict"><strong>Executive verdict:</strong> <code>hdrinfo</code> is a strong fit for the repository: a single-file Windows CLI that turns hard-to-see HDR display state into actionable diagnostics. Recommendation: <strong>keep and improve</strong>.</p>

<h2>What It Does Well</h2>
<ul>
<li>Combines DisplayConfig and DXGI output metadata in one command instead of forcing manual registry, Settings, and graphics-debugger checks.</li>
<li>Reports both panel capability and current Windows state, which helps separate hardware, OS-toggle, and rendering-path problems.</li>
<li>Documents field meanings clearly enough for swap-chain, SDR-white, luminance, and gamut decisions.</li>
<li>Stays aligned with the repo's small-tool constraint: one C source file plus one Markdown usage/reference page.</li>
</ul>

<h2>Limitations and Risks</h2>
<ul>
<li>Windows-only APIs mean there is no meaningful Linux cron build or runtime check for the tool itself.</li>
<li>Reported luminance and primaries are metadata, not calibrated measurements; bad EDID or driver data can still mislead.</li>
<li>The output is plain text only, so automation must parse human-oriented labels.</li>
<li>No command-line switches yet for targeting one monitor, emitting JSON, or suppressing explanatory text.</li>
</ul>

<h2>Alternatives and Tradeoffs</h2>
<ul>
<li><strong>Windows Settings / Advanced display:</strong> easy to access but not scriptable and does not expose the full DXGI field set.</li>
<li><strong>DirectX diagnostics or graphics debuggers:</strong> deeper for rendering pipelines but heavier for support tickets and quick baselines.</li>
<li><strong>Colorimeter workflow:</strong> more accurate for calibration, but outside the low-friction diagnostic scope of this repo.</li>
</ul>

<h2>Workflow Fit</h2>
<ul>
<li><strong>Game/tool bring-up:</strong> run before choosing HDR10, scRGB, or SDR fallback behavior.</li>
<li><strong>Support triage:</strong> ask users to paste one report alongside screenshots and GPU/driver information.</li>
<li><strong>Display troubleshooting:</strong> identify YCbCr fallback, 8 bpc output, disabled HDR, or suspicious luminance metadata quickly.</li>
</ul>

<h2>Evidence Snapshot</h2>
<ul>
<li><code>hdrinfo.md</code> documents the MSVC build command, no-argument CLI, DisplayConfig fields, DXGI fields, and interpretation tables.</li>
<li><code>hdrinfo.c</code> declares a single-file Windows tool using DXGI, DisplayConfig, and user32-linked APIs.</li>
<li>The tool is listed in the release changelog; this review adds the missing Pages review parity entry.</li>
</ul>

<h2>Final Recommendation</h2>
<p><strong>Recommendation: keep and improve.</strong> The best follow-up is a <code>--json</code> mode with stable field names, plus optional monitor selection for multi-display systems.</p>
</article>
</body>
</html>
5 changes: 5 additions & 0 deletions reviews/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,11 @@ <h1>Critical Reviews</h1>
<div class="date">Review post</div>
<div class="desc">Module snapshot workflow value and comparison to debugger-native paths.</div>
</a>
<a class="card" href="./hdrinfo.html">
<div class="title">hdrinfo</div>
<div class="date">Review post</div>
<div class="desc">HDR/display capability report fit, source coverage, and workflow limits.</div>
</a>
<a class="card" href="./quuid.html">
<div class="title">quuid</div>
<div class="date">Review post</div>
Expand Down