You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt+DirectX视频渲染出现画面水平错位问题求助

4K DeckLink采集帧DirectX渲染水平错位排查方案
  • 先排查DeckLink采集侧行对齐问题:DeckLink输出的帧默认按128字节做行对齐,不要直接用分辨率宽度*单像素字节数计算行步长,调用采集帧的GetRowBytes接口拿到实际行步长,后续纹理上传完全按这个值作为源数据行步长处理,不要硬编码3840对应的数值。
  • 检查DirectX纹理上传参数匹配:创建D3D纹理时确认像素格式和采集帧完全匹配,比如DeckLink输出的10bit YUV422格式不要误当做8bit RGB处理。如果用动态纹理做帧上传,Map操作后拿到的D3D11_MAPPED_SUBRESOURCE::RowPitch是驱动对齐后的目标行步长,必须按源和目标各自的行步长逐行拷贝数据,不能直接整块内存拷贝。
  • 验证色彩空间转换逻辑:如果你在shader中做YUV到RGB的转换,确认采集帧的YUV排列顺序,UYVY和YUY2的采样顺序搞反的话,会直接出现水平方向的像素错位。
  • 确认Qt窗口视口参数正确:检查当前Qt应用是否开启了高DPI适配,获取窗口的devicePixelRatio系数,把渲染视口的宽高乘以该系数再传给D3D的视口设置接口,避免逻辑像素和物理像素不匹配导致的拉伸错位。
  • 排查自研图形管线采样规则:如果是从D3D9迁移的管线,确认已经适配D3D11的半像素偏移规则,避免采样位置整体偏移。同时检查纹理采样器的地址模式是否设置为D3D11_TEXTURE_ADDRESS_CLAMP,排除边缘采样溢出导致的画面异常。

内容的提问来源于stack exchange,提问作者Sang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:45:01