Skip to content

feat(hdr): HDR 初步适配 DLSS5 - #13

Open
konodiodaaaaa1 wants to merge 1 commit into
SAOG0721:experimentalfrom
konodiodaaaaa1:hdr-initial-adaptation
Open

feat(hdr): HDR 初步适配 DLSS5#13
konodiodaaaaa1 wants to merge 1 commit into
SAOG0721:experimentalfrom
konodiodaaaaa1:hdr-initial-adaptation

Conversation

@konodiodaaaaa1

@konodiodaaaaa1 konodiodaaaaa1 commented Sep 2, 2026

Copy link
Copy Markdown

这次适配解决什么问题

Windows 开启 HDR 后,Graphics Capture 默认路径不能保留 HDR 桌面的 FP16 scRGB 数据。直接把 HDR 捕获帧交给普通 SDR 效果会出现过曝,直接让当前 DLSSNR 运行库读写 FP16 又会出现黑屏或红色通道异常。

这次提交增加一条 HDR 专用桥接路径:捕获阶段使用 FP16 scRGB,DLSS5/DLSSNR 阶段使用它已经验证过的 R8 SDR 颜色缓冲,最后恢复为 FP16 scRGB 交给 HDR 呈现器。Windows 系统 HDR 全程保持开启。

使用方法

导入仓库中的 presets/ScalingModes-HDR-DLSS5.json,然后在 Magpie 配置文件中同时设置下面两项:

捕获方式: Graphics Capture (HDR)
缩放模式: HDR DLSS5 Bridge

捕获方式必须选择 Graphics Capture (HDR)。普通 Graphics Capture 使用 B8G8R8A8 SDR 捕获,无法进入本次 HDR 适配路径。只导入缩放模式、没有切换 HDR 捕获时,效果链的输入格式与预期不一致。

测试所用配置

本次提交测试时使用的完整效果顺序如下,顺序需要保持一致:

HDRToSDR
FrameRate_Filter (targetFrameRate = 60)
DLSSNR\\DLSSNR_AI_Filter
SDRToHDR

每个效果的格式和作用:

顺序 效果 输入 -> 输出 作用
1 HDRToSDR R16G16B16A16_FLOAT -> R8G8B8A8_UNORM 按 SDR 参考白点缩放 HDR 捕获帧,并转换为 DLSS5 的 SDR 工作格式
2 FrameRate_Filter R8 -> R8 将处理帧率限制为 60 FPS
3 DLSSNR\\DLSSNR_AI_Filter R8 -> R8 执行 DLSS5/DLSSNR 神经处理
4 SDRToHDR R8G8B8A8_UNORM -> R16G16B16A16_FLOAT 将 DLSS5 输出恢复为 HDR 呈现器使用的 FP16 scRGB

DLSSNR 保持 R8 输入和输出合约。之前尝试让 DLSSNR 直接处理 FP16 scRGB 时,运行库返回成功状态,但实际画面出现红色通道失真,因此桥接路径刻意把格式转换放在 DLSSNR 前后。

SDR 白点参数

测试显示器的 Windows 参数为:

DISPLAYCONFIG_SDR_WHITE_LEVEL = 4500
4500 / 1000 = 4.5x
4.5x * 80 nits = 360 nits

HDRToSDR.hlslSDRToHDR.hlsl 当前使用 sdrWhiteScale = 4.5。这个值对应本次测试显示器。更换显示器后,需要读取新的 DISPLAYCONFIG_SDR_WHITE_LEVEL,并同步修改两个效果文件中的参数。

实际测试环境

  • Windows 11,系统 HDR 开启
  • NVIDIA GeForce RTX 4070
  • Microsoft Edge 浏览器窗口
  • 捕获方式:Graphics Capture (HDR)
  • 缩放模式:HDR DLSS5 Bridge
  • DLSSNR Preset 0,Style 0,Intensity 1
  • Frame Guidance 0,Depth Inference Interval 4
  • FrameRate_Filter 目标帧率 60 FPS

测试结果:浏览器视频可以正常显示,画面没有黑屏和红色通道异常,DLSSNR 连续返回成功结果,视频和桌面 UI 的亮度接近原生 HDR 桌面。极亮 HDR 高光经过 R8 SDR 工作缓冲后会受到范围限制,原始 HDR 动态范围暂时不会完整保留。

日志验证

启动缩放后,可以在 logs\\magpie.log 中检查:

当前捕获模式: Graphics Capture (HDR)
读取文本文件: effects\\HDRToSDR.hlsl
读取文本文件: effects\\SDRToHDR.hlsl
DLSSNR STATUS: Feature=18 ... result=0x1 success=...

如果日志里没有 HDR 捕获模式,先检查配置文件中的捕获方式。如果效果文件缺失,请完整解压 Release 包,不要只复制 Magpie.exe

提交内容

  • 新增 HDR 捕获方式和 FP16 呈现支持
  • 新增 HDRToSDRSDRToHDR 两个桥接效果
  • 增加 HDR 配置模板 presets/ScalingModes-HDR-DLSS5.json
  • 增加详细说明 docs/experimental/HDR-DLSS5-Bridge.md
  • 保留现有 SDR 缩放模式行为

这是 HDR 的初步适配,主要目标是让当前 DLSS5/DLSSNR 运行库在 Windows HDR 桌面上得到一条可用、可复现的处理路径。

@konodiodaaaaa1 konodiodaaaaa1 changed the title feat(hdr): initial HDR DLSS5 adaptation feat(hdr): HDR 初步适配 DLSS5 Sep 2, 2026
@SAOG0721

SAOG0721 commented Sep 2, 2026

Copy link
Copy Markdown
Owner

这个方案不会有明显色阶断层和压缩吗...
HDR 的兼容方案说实话 有点没有头绪 因为以开始magpie对这部分的支持就不好 如果要支持很可能只能用16-8的损失方案了 不然有很大的管线重构的工作量
我稍后会尝试先合并到我本地然后看看效果
非常感谢

@konodiodaaaaa1

Copy link
Copy Markdown
Author

这个方案不会有明显色阶断层和压缩吗...

HDR 的兼容方案说实话 有点没有头绪 因为以开始magpie对这部分的支持就不好 如果要支持很可能只能用16-8的损失方案了 不然有很大的管线重构的工作量

我稍后会尝试先合并到我本地然后看看效果

非常感谢

这一套是用codex探索出来的,我测试了一些视频下和浏览器里至少可以没有明显的过曝了,但更细致的对比个人不太专业看不大出来,总之是一个探索的初步可行方案

@SAOG0721

SAOG0721 commented Sep 2, 2026

Copy link
Copy Markdown
Owner

加一下群吧 917416708 我可能会做一个测试包帮我测试一下 我这里hdr有 但是支持不好

@konodiodaaaaa1

Copy link
Copy Markdown
Author

我刚才测试了一下好像不用16转8,直接16转16这套管线好像也能正常出来

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants