简易版  登录 注册

聊下845G集显的问题 Graphics Adapter Issue

hikari_calyx 1/28/2017 12:02:57 #1

(注:标题后面的Graphics Adapter Issue是为了优化帖子链接添加的)
Windows XP普及之初的这几年,845G芯片组的电脑成了当时大多数人都承担的起的家用电脑的标配。
不过有些问题,不知道你们注意到了没有。

绝大多数845集显的电脑通过常规手段安装Windows XP/Server 2003,在只有基本显示适配器驱动的前提下,你看到的画面将会是强行640X480X4位。安装显卡驱动之后就可以正常使用了,但是安全模式下依然640X480X4位。
同一台电脑,同样是只有基本显示适配器驱动,安装Vista/Win7就没这个问题。

据说是因为VBIOS的原因?反正我观察到某些同样搭载845G集显的联想品牌机就没这个问题。求解这个问题的依据。

ZephRay 1/28/2017 13:32:10 #2

845G我倒是没什么印象,但是我记得在我的865G电脑上确实存在这个问题。第一次拿到,进PE,那个色深把我吓到了。对于这个问题我当时是没研究过,我现在手头也没有845/865的电脑,我也不是从业人员,只能作下简单的猜测。

首先的话,最初的PC中(CGA),操作系统或者软件需要调节分辨率(显示模式)是要通过BIOS中断进行设置的,也就是INT 10h。这个方法一直从CGA沿用到了VGA,随后就没有新的标准出现,所以如果使用BIOS中断来设置分辨率,所能达到的最大分辨率和色深就只有6404804bit。

那么更高的分辨率怎么达到呢?一方面是靠显卡驱动来接管,另一方面,其实存在后续的标准,也就是VBE。VBE是通过VBIOS实现的。VBIOS在启动时会被作为BIOS扩展映射,成为BIOS一部分。这样操作系统就可以通过传统的BIOS中断方法来访问VBE功能。需要注意的是,虽然VBE定义了一系列加速功能,但是VBE几乎没有被用来编写过显卡驱动,因为效率问题大家都使用自有协议。扯远了,VBE 1.0规范的目的就是增加更多的显示模式,比如640480256。但是到了VBE 2.0开始,这种把显示模式写进规范的事情就被废除了。取而代之的是VBE Function 00h,操作系统直接从显卡获得所有支持的显示模式列表,随后找到需要的模式设定过去就好。(不然如果每种新模式都要写进规范的话,不知道VBE现在版本号都飙到多少了2333)顺便,VBE 1.0要求在实模式下运行,如果要在保护模式下使用就必须先切换回实模式,用完再切换回来。VBE 2.0则加入了Protected Mode Banking,允许直接在保护模式下访问VBE的功能(不完全准确,大概是这样)。

所以说回答问题的话,我认为部分845G/865G的VBIOS(这个锅很有可能得让Intel来背)不能够支持VBE2.0或者支持存在bug,以至于Windows XP/Server 2003下只能使用到INT 10h定义的模式。(VBE1.0是仅实模式的,估计Windows XP这种纯保护模式的系统应该是会直接无视VBE1.0)至于Vista/Win7,出现比845G/865G要晚,自然可以在基本显示驱动里加入对845G/865G的特殊照顾。以上。

hikari_calyx 1/28/2017 13:39:18 #3

回复给ZephRay: 感谢回答。怪不得在当年同样是Ghost,XP/2003内核PE下运行Ghost32显示效果比DOS下运行Ghost惨多了。
另外,正如我前面所说的,联想是不是考虑到了这个问题就专门自己定制了一套VBIOS解决了这个问题还是怎么的

Designed by @ZephRay. Made by @ntzyz.
Copyright (c) 2016-2019 cnVintage Team.