找回密码
 立即注册
搜索
楼主: zmw_831110

[硬件] [解决了,一个都不能少]RX470硬解HEVC 10bit用madvr渲染遇见的问题

[复制链接]
     
发表于 2017-1-11 21:22 | 显示全部楼层
N卡建议CopyBack,因为无论是P010还是NV12格式的DXVA2 DX9 Surface目前都无法share,也无法直接当作纹理用于渲染。所以madVR接DXVA2 Native的做法是先用GPU把P010、NV12的surface给转成RGB格式,然后再转回YUV格式,进行chroma upsample,但N卡的DXVA2 surface->RGB Texture转换,会进行一些UV插值,导致再转回来的UV信息已经不是原先的UV信息了,也就是理论上质量会有所降低。
当然,CopyBack自然要吃带宽,因为它要先把DXVA2 surface从USWC mem中read出来,写进普通内存中,然后再把它写进USWC memory里。即使不进行格式转换,那也等于起码多了两次复制。
如果想避免copyback又想得到纯粹的YUV信息。一方面lav升级,从directshow结构变成MediaFoundation结构,使用D3D11.1而不是目前的D3D9Ex(意味着抛弃Win7),这样才可以直接把YUV纹理传给D3D11.1渲染器进行处理,此外MadVR也得做相应的修改。而一切的大前提是,播放器框架得从Dshow转到MediaFoundation结构。

直接输出HDR信号被TV自动识别,倒是要简单得多,相应的头文件(DXGI 1.5)已经随Win10周年更新发布了,但需要等显卡驱动支持WDDM2.1才能用(当然是Win10 only的)。
回复

使用道具 举报

     
发表于 2017-1-11 22:52 来自手机 | 显示全部楼层
hourousha 发表于 2017-1-11 21:22
N卡建议CopyBack,因为无论是P010还是NV12格式的DXVA2 DX9 Surface目前都无法share,也无法直接当作纹理用 ...

但是现在显卡驱动已经是wddm2.1了啊

—— 来自 Jiayu S3, Android 7.1.1上的 S1Next-鹅版
回复

使用道具 举报

     
 楼主| 发表于 2017-1-12 00:01 | 显示全部楼层
本帖最后由 zmw_831110 于 2017-1-12 00:04 编辑
hourousha 发表于 2017-1-11 21:22
N卡建议CopyBack,因为无论是P010还是NV12格式的DXVA2 DX9 Surface目前都无法share,也无法直接当作纹理用 ...

能帮忙解释一下我A卡用DXVA2 native解码HEVC 10bit然后给madvr渲染结果输出黑屏的问题么?

不仅仅4K,我连1080P 10bit这样操作也是黑屏的.
不过字幕是有的
然而这样的解决方案解码HEVC 8bit 60fps视频是流畅的.
回复

使用道具 举报

     
发表于 2017-1-12 01:29 | 显示全部楼层
qwased 发表于 2017-1-11 22:52
但是现在显卡驱动已经是wddm2.1了啊

—— 来自 Jiayu S3, Android 7.1.1上的 S1Next-鹅版 ...

看了一下确实已经是WDDM2.1,那么接下来就等madVR更新就好了。
回复

使用道具 举报

     
发表于 2017-1-12 01:46 | 显示全部楼层
zmw_831110 发表于 2017-1-12 00:01
能帮忙解释一下我A卡用DXVA2 native解码HEVC 10bit然后给madvr渲染结果输出黑屏的问题么?

不仅仅4K,我连1 ...

可能性不少,可能是驱动bug,或者其他bug,这事完全说不好,有时候会出现莫名其妙的问题,而且无法解释。
比如我之前装的一台HTPC,i3-3225的,只要是用lav的DXVA2解码VC1和WMV3的视频,就画面完全错误,必须选quicksync才能硬解,重装N次系统,驱动皆无用。但除我之外几乎所有人都没这问题
就你给出的情况,大体来说,可能就是从DXVA P010 surface ->D3D RGB Surface 这块出了问题。属于GPU驱动的范筹。是你的个例还是某版驱动普遍问题或者是否还和其他硬件有关,不得而知。
说起来类似问题我最近也遇到过(N卡1060),不过更邪乎,DXVA P010 surface->D3D RGB Surface没问题,但是DXVA RGB surface ->D3D RGB Surface全黑,最后发现把原surface尺寸稍微设大一点可以解决这问题,简直莫名其妙的问题。
总之就是,Dshow和D3D9这块的东西很老了,可能厂商就会有所疏忽,导致莫名其妙的bug出现。
回复

使用道具 举报

     
 楼主| 发表于 2017-1-12 11:19 来自手机 | 显示全部楼层
引用第44楼hourousha于2017-01-12 01:46发表的  :
引用:zmw_831110 发表于 2017-1-12 00:01能帮忙解释一下我A卡用DXVA2 ......

非常感谢。抽空我试一试搭配470首发版本的驱动试一试

----发送自 STAGE1 App for Android.
回复

使用道具 举报

头像被屏蔽
     
发表于 2017-1-12 11:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2017-1-12 11:49 来自手机 | 显示全部楼层
zmw_831110 发表于 2017-1-11 20:01
能帮忙解释一下我A卡用DXVA2 native解码HEVC 10bit然后给madvr渲染结果输出黑屏的问题么?

不仅仅4K,我连1 ...

其实我在硬解这个视频的时候也出现了黑屏,但是应该算是播放器的锅?文件在本地ssd上,但是第一次打开绝对黑屏,我需要暂停拖动一下进度条,视频就可以正常播放了,同理如果我直接跳一个时间也会黑屏,必须暂停播放拖过去就可以播放了

但应该和你不是一个问题
回复

使用道具 举报

     
 楼主| 发表于 2017-1-12 12:07 来自手机 | 显示全部楼层
引用第46楼阳炎n1于2017-01-12 11:29发表的  :
引用:zmw_831110 发表于 2017-1-12 00:01能帮忙解释一下我A卡用DXVA2 ......

copy back我g1840 1333单通扛不住,帧数只有35,到不了60。
今天新u到,明天内存到。我测试一下,瓶颈到底在哪里

----发送自 STAGE1 App for Android.
回复

使用道具 举报

     
 楼主| 发表于 2017-1-12 12:15 来自手机 | 显示全部楼层
引用第47楼sirlion于2017-01-12 11:49发表的  :
引用:zmw_831110 发表于 2017-1-11 20:01能帮忙解释一下我A卡用DXVA2 ......

render queue我一直是0,说明显卡没干成活。。
你的应该不是这种

----发送自 STAGE1 App for Android.
回复

使用道具 举报

     
 楼主| 发表于 2017-1-12 14:21 | 显示全部楼层
本帖最后由 zmw_831110 于 2017-1-12 14:26 编辑

CPU换成E3 1285L (只能最高3.5GHz...3.9GHz睿频都达不到,这H81醉了)
内存频率从1333提升到1600单通道
coyp-back(对比了一下,copy-back,lav的的确不如pot内置的,即使都是DX11的)
帧数依然只有一半,等明天8G内存到了以后,组双通再看效果


切换成软解的话...
可怜的1X fps


回复

使用道具 举报

     
发表于 2017-1-12 17:23 | 显示全部楼层
zmw_831110 发表于 2017-1-12 10:21
CPU换成E3 1285L (只能最高3.5GHz...3.9GHz睿频都达不到,这H81醉了)
内存频率从1333提升到1600单通道
coyp- ...

你这个dx11是不是也和我dx9一样变成了nv12?你试试dx9能不能60帧,我dx11没法解码,1s就黑屏
回复

使用道具 举报

     
 楼主| 发表于 2017-1-12 19:19 | 显示全部楼层
sirlion 发表于 2017-1-12 17:23
你这个dx11是不是也和我dx9一样变成了nv12?你试试dx9能不能60帧,我dx11没法解码,1s就黑屏 ...


dx9老样子啊,也许还是我内存带宽的问题
回复

使用道具 举报

     
 楼主| 发表于 2017-1-14 12:29 来自手机 | 显示全部楼层
本帖最后由 zmw_831110 于 2017-1-14 14:36 编辑

内存到了,组了双通后
copy-back模式硬解,帧数提高到50左右


好吧,我放弃了
================
2017-1-14 14:34更新.
我搞错了...之前忘记开睿频了.CPU睿频到3.5G后,内存带宽好像也一起上去了,就没问题了.



----发送自 STAGE1 App for Android.

回复

使用道具 举报

     
 楼主| 发表于 2017-1-14 14:55 | 显示全部楼层
sirlion 发表于 2017-1-11 12:27
i72600 1060,用pot madvr lav解这个,必须用的dxva native,虽然不到60fps,只有4x多,但是用其他硬解软解 ...

这个问题...我终于解决了
回复

使用道具 举报

     
发表于 2017-1-14 15:17 | 显示全部楼层
zmw_831110 发表于 2017-1-14 12:29
内存到了,组了双通后
copy-back模式硬解,帧数提高到50左右

内存时序应该能优化下 CL8-9
回复

使用道具 举报

     
 楼主| 发表于 2017-1-14 15:51 | 显示全部楼层
塔奇克马 发表于 2017-1-14 15:17
内存时序应该能优化下 CL8-9

已经解决了,3.1G主频的系统总线带宽不够,3.5G就可以了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-24 19:19 , Processed in 0.081198 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表