1. 手里是超微X11SRA的主板和华硕的Vega64,所以具体从这张显卡具体引申出来fb中的各个数字所代表的意思; 2. 以下均是参考各种黑苹果资料后个人理解,可能会有错误,希望给予指正,并在此向各位大神所做出的贡献致敬; 3. 首先AMD显卡要把性能发挥出来,调用正确的FB目前已经是共识了,调用后可以更好的开启性能,也能更好的节能(类似于CPU开启XCPM的感觉),个人使用感觉调用了至少在双4k显示器下鼠标反应明显流畅了很多。 4. 因为需要调用FB,但是MAC系统中的各种不同FB中显卡的输出都是固定的一些类型,不会刚好和零售用的AMD显卡所匹配,最终带来的就是零售用的AMD显卡有部分或者全部接口无法输出导致黑屏。所以我们在调用了FB后需要修复FB中关于接口的一些数值。但是如果调用了FB后你的显卡和显示器的那个接口刚好可以正常显示那也可以不需要修改FB的数值,除非你是强迫症。 5. Vega64的话各位大神都是选用FB是Kamarang和Iriri(他们都是DP,DP,DP,HDMI一共4个接口的组合),而没有选择其他的我猜可能是很多人用的Vega都是4个接口(比如蓝宝石和迪兰恒进之类),但是华硕的Vega64却与众不同给你弄DP,DP,HDMI,HDMI和DVI一共6个接口,因为平时用的双DP接双显示器,所以我最开始选用的是FB是Baladi,至于为什么是这个,那是因为选择这个不需要修改FB数值就可以双DP正常使用(HDMI和DVI没试)。后来为了理解FB的概念,就改用Kamarang然后尝试修改正确数值(下一步准备尝试刚好5个接口的FB)。 6. 说了这么多,我怎么确定FB的名字呢?开荒的前辈总是有不少的好工具可以用,这里可以用AMD_FrameBuffers_Catalina.php来获取各种FB的名字(但是貌似获取不了5700xt的,不知道5700xt这些最新显卡的名字从何而来)。这个软件论坛里很多帖子都有,这里就不提供了,善用搜索永远都是解决问题的好方法。 7. 找到合适的FB后,就准备开始修改FB中数值了 8. 从Kamarang开始,其中的数值是下面这个样子的,一共4排,第一排代表DP接口,第二年排代表DP接口,第三排代表DP接口,第四排代表HDMI接口。 000400000403000000010101000000002205020200000000 000400000403000000010201000000001204010100000000 000400000403000000010300000000001000050500000000 000800000402000000010400000000002001060600000000 9. 先逐步分解来看: 00040000 04030000 0001 0101 00000000 22 05 02 02 00000000 00040000 接口类型位(这个数值代表DP接口) 其他00080000代表HDMI,02000000代表LVDS(笔记本用),04000000代表DVI 04030000 接口标志位 一般04030000和DP配对,04020000和HDMI配对 0001 显示特征位 前两位00代表DP,HDMI,DVI,VGA接口特征,后两位01代表内建LCD 0101 占位符? 个人觉得前两位01是代表port口,01代表0号口 22 发射器 前一位代表发射器使用的线路(A和B线路或者双线路),后一位代表发射器所使用的UniPhy号(0,1或2号) 05 解码器 前一位0代表纯数字解码器,如果是1代表模拟转数字;后一位感觉0到5都可以 02 热插拔id号 表示接口依次通电接通的顺序,00则有可能代表全部通电接通 02 SenseID号(接口映射) 这个比较重要,关系到黑屏与否,如果改了FB后还是黑屏,那这个值肯定有问题,目前vega无法用软件导出显卡的这个值,Vega以前的显卡倒是可以用radeon_bios_decode和redsock_bios_decoder来导出确定正确值,所以vega我是靠试及别人现成的值。22050202这段关键代码vega都导不出来也就只有靠蒙了,另外如果花屏的话多半是发射器和解码器不对。其余没涉及到的位置是属于占位符,不用管。 10. 确定好了这些值的意义那就开始修改FB值,华硕的Vega64值见下(至少双DP可用,有条件的可以测试下HDMI管用不,DVI应该不用试了) 00040000 04030000 00010100 00000000 10000105 00000000 DP 00040000 04030000 00010200 00000000 20010206 00000000 DP 00080000 04020000 00010301 00000000 12040501 00000000 HDMI 00080000 04020000 00010401 00000000 22050602 00000000 HDMI 11. 修改好后有两种办法对FB值进行更改 1. 直接修改AMD10000Controller.kext中的那个文件,这个需要用到二进制软件,比较繁杂; 2. 直接用clover或者oc中的对应功能直接进行更改,具体怎样改如果不会那你只有善用搜索从头做起,了解基本功能,坛子里相应的文章应该不会少吧; 12. 另外有谁知道Vega和5700的发射器,SenseID等关键数值除了一个个试有什么简单方法及5700xt的FB是Adder是从哪里弄出来的?最后就是FB修改不是初学者必须的,请量力而行;
|