<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Accelerated_Graphic_Cards</id>
	<title>Accelerated Graphic Cards - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Accelerated_Graphic_Cards"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Accelerated_Graphic_Cards&amp;action=history"/>
	<updated>2026-04-04T00:34:00Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Accelerated_Graphic_Cards&amp;diff=261&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“在屏幕上出现一些图形很好，但让视频卡完成肮脏的工作会更好。 但是要当心，事情并不总是像看起来那样容易。 替代 VESA BIOS Extension/Accelerator Functions  == 带文档的图形卡 ==  === 3Dfx === 对于3dfx卡 (带有Voodoo芯片组的卡) 来说，这是一个好消息。 这些卡可能是唯一具有相对快速的3D支持 (Glide/OpenGL) 和 [http:// darwin-3dfx.sourceforge.net/ open规格] 的卡。 巫毒…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Accelerated_Graphic_Cards&amp;diff=261&amp;oldid=prev"/>
		<updated>2022-01-20T08:39:12Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“在屏幕上出现一些图形很好，但让视频卡完成肮脏的工作会更好。 但是要当心，事情并不总是像看起来那样容易。 替代 &lt;a href=&quot;/index.php?title=VESA_BIOS_Extension/Accelerator_Functions&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;VESA BIOS Extension/Accelerator Functions（页面不存在）&quot;&gt;VESA BIOS Extension/Accelerator Functions&lt;/a&gt;  == 带文档的图形卡 ==  === 3Dfx === 对于3dfx卡 (带有Voodoo芯片组的卡) 来说，这是一个好消息。 这些卡可能是唯一具有相对快速的3D支持 (Glide/OpenGL) 和 [http:// darwin-3dfx.sourceforge.net/ open规格] 的卡。 巫毒…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;在屏幕上出现一些图形很好，但让视频卡完成肮脏的工作会更好。 但是要当心，事情并不总是像看起来那样容易。&lt;br /&gt;
替代 [[VESA BIOS Extension/Accelerator Functions]]&lt;br /&gt;
&lt;br /&gt;
== 带文档的图形卡 ==&lt;br /&gt;
&lt;br /&gt;
=== 3Dfx ===&lt;br /&gt;
对于3dfx卡 (带有Voodoo芯片组的卡) 来说，这是一个好消息。 这些卡可能是唯一具有相对快速的3D支持 (Glide/OpenGL) 和 [http:// darwin-3dfx.sourceforge.net/ open规格] 的卡。 巫毒卡仍然可以从eBay等来源获得。&lt;br /&gt;
&lt;br /&gt;
=== 英特尔集成显卡 ===&lt;br /&gt;
英特尔视频芯片组也有开放标准 (请参阅 [http://www.intel.com www.intel.com])。一些有用的链接:&lt;br /&gt;
* [ftp://download.intel.com/support/graphics/intel740/29061902.pdf Intel 740 Graphics Accelerator]&lt;br /&gt;
* [http://www.x.org/docs/intel/ Intel Graphics Documentations on X.org]&lt;br /&gt;
* [https://01.org/linuxgraphics/documentation/ Intel Graphics Documentation on the 01.org]&lt;br /&gt;
&lt;br /&gt;
推荐在01.org页面上提到的intel-gpu-tools软件包，因为它可用于转储当前寄存器值以进行检查。&lt;br /&gt;
&lt;br /&gt;
=== ATI / AMD ===&lt;br /&gt;
AMD [[topic:14887|started in September 2007]] 为他们最近的视频卡打开规格。&lt;br /&gt;
关于R630或M56芯片的可以从 [https://www.x.org/docs/AMD/old/ X.org] 下载。&lt;br /&gt;
自2014年以来，AMD为所有gpu维护最新的开放编程指南，包括支持的特定电子邮件地址。&lt;br /&gt;
&lt;br /&gt;
在X.org，请参阅 [https://www.x.org/wiki/RadeonFeature/ Feature Matrix for Free Radeon Drivers]，特别是 [https://www.x.org/wiki/RadeonFeature/#index13h2 Documentation] 部分。&lt;br /&gt;
&lt;br /&gt;
另请参阅 [https://developer.amd.com/resources/developer-guides-manuals/#open_gpu 开放GPU文档] 和Linux发行版的实现，[https://github.com/GPUOpen-Drivers/AMDVLK AMD开源驱动程序®Github存储库]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
适用于Vulkan的AMD开源驱动程序旨在支持以下AMD gpu:&lt;br /&gt;
* Radeon™ HD 7000 Series&lt;br /&gt;
* Radeon™ HD 8000M Series&lt;br /&gt;
* Radeon™ R5/R7/R9 200/300 Series&lt;br /&gt;
* Radeon™ RX 400/500 Series&lt;br /&gt;
* Radeon™ M200/M300/M400 Series&lt;br /&gt;
* Radeon™ RX Vega Series&lt;br /&gt;
* AMD FirePro™ Workstation Wx000/Wx100/Wx300 Series&lt;br /&gt;
* Radeon™ Pro WX x100 Series&lt;br /&gt;
* Radeon™ Pro 400/500 Series&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 英伟达 NVIDIA ===&lt;br /&gt;
NVidia不提供官方规范，但在 [http://nouveau.freedesktop.org/wiki/ nouveau] 项目中花费了大量的社区努力，尽管这种逆向工程规范不完整，也不保证准确，但它可以作为示例和文档的来源。Marcin ko ś cielnicki一直在他的 [http:// 0x04.net/cgit.cgi/envytools/tree/ envytools] 存储库中写下非官方规范 (链接已死，但是envytools在GitHub上https://github.com/envytools/envytools可用)。 &lt;br /&gt;
尽管到处都缺少位，但它们无疑是了解这些图形卡内部的有趣资源。 这些文档涵盖了从第一张卡到最新卡的整个NVIDIA硬件范围，并且可能足以编写本机驱动程序。&lt;br /&gt;
&lt;br /&gt;
=== VMware SVGA-II ===&lt;br /&gt;
不完全是实体图形卡，但是svga-ii设备是一个不错的虚拟机设备，可以进行3D加速。 它在VMware和QEMU上都可用。 根据MIT许可，VMware还提供了文档详细且易于移植的参考驱动程序。 尽管已弃用，但该设备在QEMU下可以正常工作，并且使用起来相对简单，因此为图形加速提供了一个很好的起点。 参考驱动程序可在 [http:// vmware-svga.sourceforge.net/index.old.html sourceforge上的旧vmware-svga页面上找到]。&lt;br /&gt;
&lt;br /&gt;
== 在哪里可以找到有关nVidia/Matrox/ATI/... 3D图形卡的底层信息？==&lt;br /&gt;
&lt;br /&gt;
问得好。除非您找到其他信息，否则几乎没有关于当前3D图形卡内部工作的公开信息 (免费或其他方式)。 只有一小部分与游戏程序员相关，但操作系统开发人员无法使用。&lt;br /&gt;
&lt;br /&gt;
现在，如果您有VIA图形芯片，情况可能会更好，因为他们最近发布了用于2D和3D操作的 [http://linux.via.com.tw/ 开源驱动程序]。&lt;br /&gt;
&lt;br /&gt;
几乎没有关于2D加速功能的教程或数据表，但至少我们有它们的开源代码。 在其他来源中，Xfree驱动器，[https://github.com/haiku/haiku/tree/master/src/ 附加组件/加速器Haiku (被打开BeOS) 加速器] 和 [http://www.shawnhargreaves.com/freebe/ FreeBE/AF]。 它们可能会提供足够的信息来进行逆向工程，并找出可用于为您的环境编程/移植的模型。 [https://pdos.csail.mit.edu/6.828/2018/读数/硬件/vgadoc/ VGADoc] ([https://pdos.csail.mit.edu/6.828/2018/读数/硬件/vgadoc4b.zip]，也在 [https://github.com/achernya/ iap-6.828-website/树/主/读数/硬件/vgadoc Github] 上)。&lt;br /&gt;
&lt;br /&gt;
欢迎任何希望花时间进行此类研究的人在此处发布其结果。&lt;br /&gt;
&lt;br /&gt;
= = 2D加速能为我做什么？= =&lt;br /&gt;
&lt;br /&gt;
* 硬件鼠标光标，绘制和管理 (例如，您提供坐标，其余的卡负责)&lt;br /&gt;
* Bitblt (用于 “位块传输”) 可用于屏幕到屏幕的内存复制，例如windows移动，滚动等。 你提供来来回回的盒子，剩下的工作就交给图形卡。 有些人可能会将其称为 “rasterop”，或者记住Amiga计算机中的硬件 “blitter”。&lt;br /&gt;
* 贴片。 您输入一个小的NxN数据集 (通常是8x8和32x32之间的位图)，前景色和混合样式加上一些坐标，卡片用给定的图案 “绘制” 该区域。 这可以方便地渲染Win95-like背景 (平铺的)，甚至快速绘制字体。&lt;br /&gt;
&lt;br /&gt;
== 3d加速程序如何与3d加速硬件对话？==&lt;br /&gt;
&lt;br /&gt;
我假设您对OpenGL等有很强的了解，并且不需要在此处进行介绍。 如果你以nVidia的linux 3D驱动程序为例 (如果你有一个正确配置的nVidia卡，你可以通过一个简单的 “strace” 在linux中的3D程序上看到几乎所有这些)，事情就是这样组织的:&lt;br /&gt;
&lt;br /&gt;
* 两个库libGL.so和libGLcore.so将由任何希望进行加速3D操作的程序加载。 启动时，这些库打开 “/dev/nvidiactl” 和 “/dev/nvidia0”。&lt;br /&gt;
* 内核模块由 “obscure” 文件nv-kernel.o组成，该文件仅包含 “匿名” 符号和 “开源” 部分，主要将nv内核 (实际上几乎是系统透明的) 粘合到linux内核。&lt;br /&gt;
* 库和驱动程序之间的实际 “对话” 无法通过常规方式进行跟踪: /dev/nvidia * 仅允许 “ioctl” 操作和mmap。 在3D程序运行时，您可以在 “/proc/XXXXX/maps” 中观察到的值让我相信驱动程序实际上会直接向库公开硬件资源 (例如纹理空间，顶点空间等)。 但是，可以使用mmiotrace选项编译当前的linux内核，然后可以将其用于记录对mapped空间的所有单独访问。&lt;br /&gt;
&lt;br /&gt;
 l /proc/pci&lt;br /&gt;
 Bus  0, device   0, function  0:&lt;br /&gt;
     Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev 196).&lt;br /&gt;
       Prefetchable 32 bit memory at 0xfc000000 [0xfdffffff].&lt;br /&gt;
 &lt;br /&gt;
 Bus  1, device   0, function  0:&lt;br /&gt;
     VGA compatible controller: nVidia Corporation RIVA TNT2 Model 64 (rev 21).&lt;br /&gt;
       IRQ 11.&lt;br /&gt;
       Master Capable.  Latency=248.  Min Gnt=5.Max Lat=1.&lt;br /&gt;
       Non-prefetchable 32 bit memory at 0xf7000000 [0xf7ffffff].&lt;br /&gt;
       Prefetchable 32 bit memory at 0xfa000000 [0xfbffffff].&lt;br /&gt;
&lt;br /&gt;
 cat /proc/XXXXX/maps&lt;br /&gt;
 ...&lt;br /&gt;
 40019000-40029000 rw-s f7810000 03:06 54934      /dev/nvidia0&lt;br /&gt;
 40029000-4002a000 rw-s 0ba98000 03:06 54934      /dev/nvidia0&lt;br /&gt;
 ...&lt;br /&gt;
 40a9b000-42a9b000 rw-s fa000000 03:06 54934      /dev/nvidia0&lt;br /&gt;
 42a9b000-42b79000 rw-p 00000000 00:00 0&lt;br /&gt;
 42b79000-42c7a000 rw-s fc010000 03:06 54934      /dev/nvidia0&lt;br /&gt;
 42c7a000-42d7c000 rw-p 00000000 00:00 0&lt;br /&gt;
 42d7c000-42dfc000 rw-s fc111000 03:06 54934      /dev/nvidia0&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
*[[topic:23548|A topic on duplicating/reverse engineering existing driver code]]&lt;br /&gt;
[[Category:Video]]&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>