2

我正在开发一种视频显示设备,该设备使用不符合任何 VESA 标准的 848x480 和 800x480 分辨率的自定义时序。设备有一个 EDID 来指定这些时间。

我想知道 Windows XP 用于确定显示分辨率的过程,以及它如何向用户提供选择列表。这似乎高度依赖于视频卡制造商和驱动程序。

我在不同的系统上观察到截然不同的行为:

  • 似乎 vanilla Windows XP 除了在启动时不会查询 EDID,但是笔记本电脑和自定义视频驱动程序有时似乎会随意查询 EDID(插入不重新启动的计算机,点击演示模式,然后显示设备名称)
  • 有些 PC 似乎可以毫无问题地生成 848x480 或 800x480,但有些似乎只是忽略了详细的时序并退回到 VESA 640x480。如果您指定自定义时序模式,任何给定的视频驱动程序/卡将能够生成正确的 VGA 信号的机会有多大?
  • 很多时候,EDID 信息会传输到系统,但是如果您打开 Windows 显示属性,并在设置选项卡中选择设备,可用模式的滑块不会显示 848x480 或 800x480。它通常只在其他标准模式列表中显示 640x480(但不是提供的自定义模式)。
  • 如果发生这种情况,您通常可以通过在显示属性 -> 设置 -> 高级 -> 适配器 -> 列出所有模式下的所有模式列表中选择设备来让设备以 848x480 或 800x480 显示。当您选择此项时,它会切换到正确的分辨率。
  • 但是,如果您返回显示属性 -> 设置,您将在滑块中看到您选择的模式,但滑块只有一种分辨率。它应该(至少)也显示 640x480。在处理 Windows XP 和非标准视频时序时,这只是现实吗?很高兴确切地知道 Windows 如何填充该滑块。

我将非常感谢任何讨论与所有这些相关的细节的资源。我知道这不是严格意义上的编程问题,但它与我遇到的编程问题密切相关,而且我很难找到有关此主题的任何信息。

4

3 回答 3

2

啊,我感受到了你的痛苦。以前去过那里。您是否也在编写显示驱动程序?显示驱动程序也可以修剪模式,但通常只有在某些原因它无法物理处理它时才会这样做。此外,许多显示驱动程序将添加一定的默认模式列表(如 640x480),而不管 EDID 中的内容是什么。

我知道 Windows 会对 EDID 中指定的监视器范围限制进行一些检查。而且它们也不是直观的检查,因此您可以使用它。此外,刷新率也会影响 Windows 修整逻辑。

关于何时读取 EDID,我通常会在启动后第二次打开显示属性时看到 EDID 被读取,此后每次都被读取。

于 2009-04-02T21:39:36.233 回答
2

我正在研究类似的问题。第一步是将所需的分辨率设置为 EDID 中的详细时序。

也就是说,而不是标准时序。如果您有 EDID 规范,请参阅第 3.10 节。根据规范,第一个详细时序将是最高优先级分辨率,其次是第二个详细时序,即标准时序,然后是已建立时序。

此外,您应该尝试不支持所有其他时间和分辨率。

于 2010-01-21T02:33:31.610 回答
1

根据我的经验,您需要一个带有足够大胆驱动程序的图形适配器,以便您也可以在驱动程序中配置时序。据我所知,在 Windows 中,您目前唯一的选择是购买带有集成英特尔显卡的 PC。而且您必须注意驱动程序:对于任何高达 3x/4x 系列的 Extreme Graphics,请获取 Intel IEGD(并且您必须在安装之前滚动 IEGD 的自定义构建),或者只是库存台式机/笔记本电脑Nehalem+ 的高清显卡驱动程序。

我似乎记得也许 Nvidia 还允许您手动指定视频模式时间。

我似乎记得 Matrox 驱动程序确实允许进行一些调整,但如果没有记错的话,不要让您输入低级分辨率和时序值。

而且,说到 EDID/DDC,你最好的办法是通过切断 SDA/SCL 线(实际上只切断 SCL 也可以)来完全摆脱它,这将允许你强制驱动程序使用特定的解析度。

有许多漂亮、漂亮、低功耗的芯片组和 SoC(Geode、Vortex、Via Nano)——不幸的是,它们都不允许您在 Windows 中指定时间。因此,您必须使用耗电的 Atom 或更高版本来掌握时间:-(

请注意,任何半体面的 SVGA+ 硬件本质上完全能够在您能想到的任何像素时钟下产生几乎任何可以想象的分辨率(可能是模 8)(受合成器和 DAC 的带宽限制,现在通常为 200-400 MHz)。是 Windows 驱动程序强加了一个愚蠢的限制——它们倾向于坚持标准的典型 DMT/CVT 屏幕格式集。Linux + Xwindows 允许您在几乎任何 VGA 硬件上设置任何分辨率和时间。我曾经认为将 CRT 输出端口用作快速的三通道任意信号发生器,在 8 位分辨率下具有高达 400 MHz 的采样率,以及超过一百万个样本的缓冲空间 :-)

于 2011-11-16T14:12:55.043 回答