热度 2||
网上搜到的,转在远景空间备用。感谢翻译的同学!
首先,讲解下NVCAP的重要部分以及它们怎么工作的:
04000000 0000xx00 xx000000 00000000 00000000
粗体字节定义了输出通道,它们使用一种“位图”设置来定义哪个输出设在哪个通道上,但实际上对于常用的显卡并没有那么多的组合。
大多数显卡使用4或5种输出:
1/ DVI - 2/ VGA, 3/ VGA, 4/ TV out
1/ DVI - 2/ VGA, 3/ DVI - 4/ VGA, 5/ TV out
接下来,讲解下在GeForce 5/6/7/8 系列PC NVIDIA ROM(显卡bios)中是怎么定义的。
-大多双DVI显卡的通道使用这种设置(5种输出):
通道 1 :
DVI + VGA --> bitmap 0 0 0 1 1 --> hex 03
通道 2 :
DVI + VGA + TV --> bitmap 1 1 1 0 0 --> hex 1c
或者
通道 1 :
DVI + VGA + TV --> bitmap 1 0 0 1 1 --> hex 13
通道 2 :
DVI + VGA + TV --> bitmap 0 1 1 0 0 --> hex 0c
在VGA ROM中TV输出一般被定义在最后一个输出口,这就是为什么它使用最后的位置。(双DVI显卡的第五个,或者DVI+VGA显卡的第四个)。
-对于DVI+VGA 显卡(4种输出):
通道1 :
DVI + VGA --> bitmap 0 0 1 1 --> hex 03
通道2 :
VGA + TV --> bitmap 1 1 0 0 --> hex 0c
或者
通道1 :
DVI + VGA + TV--> bitmap 1 0 1 1 --> hex 0b
通道2 :
VGA --> bitmap 0 1 0 0 --> hex 04
(如你所看到的,TV输出在最后的可用位置,即4种可用输出的第四位置)
或者
通道1 :
VGA --> bitmap 0 0 0 1 --> hex 01
通道2 :
DVI + VGA + TV --> bitmap 1 1 1 0 --> hex 0e
或者
通道1 :
VGA + TV --> bitmap 1 0 0 1 --> hex 09
通道2 :
DVI + VGA --> bitmap 0 1 1 0 --> hex 06
对于窗口化系统,最大的不同就是Windows下的NVIDIA驱动可以动态定义哪一个通道用于TV输出,而OS X驱动使用固定位置来输出,NVCAP值被定义在显卡bios中,并存储于输入输出设备的注册文件内。这样的设置导致一旦驱动被加载到OS X中就不能改变。
标准显卡的NVCAP值一般为:
04000000 00000300 0c000000 00000000 00000000 -->
取消第五个位置, 没有 TV 输出.
04000000 00001300 0c000000 00000000 00000000 -->
第五个位置用于TV输出设在通道1, 当没有其他显示连接到通道1时TV输出可用.
04000000 00000300 1c000000 00000000 00000000 -->
第五个位置用于TV输出设在通道2, 当没有其他显示连接到通道2时TV输出可用.
DVI+VGA 显卡:
04000000 00000100 06000000 00000000 00000000 -->
取消第四位置, 没有TV输出, 只有1个输出设在通道1, DVI + VGA 输出设在通道2.
04000000 00000300 04000000 00000000 00000000 -->
取消第四位置, 没有TV输出, 只有1个输出设在通道2, DVI + VGA 输出设在通道1.
04000000 00000300 0e000000 00000000 00000000 --> VGA输出设在通道1, 第四位置用于TV输出设在通道2,当没有其他显示连接到通道2时TV输出可用.
04000000 00000900 06000000 00000000 00000000 -->
VGA输出设在通道1, 第四位置用于TV输出设在通道1,当没有其他显示连接到通道1时TV输出可用. (DVI + VGA 输出设在通道2使用第二第三位置,位图 0 1 1 0)
对于内置面板笔记本一般将通道1用于1种输出,即主显示,在第一位置,当有其他输出可用时,通道2可以使用位置2,3,4:
04000000 00000100 02000000 00000000 00000000
04000000 00000100 06000000 00000000 00000000
04000000 00000100 0e000000 00000000 00000000