具有虚线模式的路径的gpu加速再现的制作方法_4

文档序号:8207776阅读:来源:国知局
] 图2是进一步详细说明图1中的计算装置2的CPU 6、GPU 12和存储器10的框图。 如图2中所示,CPU 6通信地耦合到GPU 12和存储器10,且GPU 12通信地耦合到CPU6和 存储器10。在一些实例中,GPU 12可与CPU 6集成到母板上。在额外实例中,GPU12可实 施在安装于包含CPU 6的母板的端口中的图形卡上。在其它实例中,GPU 12可并入在经配 置以与CPU 6交互操作的外围装置内。在额外实例中,GPU 12可与CPU 6位于同一微芯片 上从而形成芯片上系统(SoC)。
[0093] CPU 6经配置以执行软件应用程序24、图形API 26、GPU驱动器28和操作系统30。 软件应用程序24可包含致使显示图形图像的一或多个指令和/或致使在GPU 12上执行非 图形任务(例如,通用计算任务)的一或多个指令。软件应用程序24可将指令发出到图形 API 26。图形API 26可为将从软件应用程序24接收的指令转译为可由GPU驱动器28消 耗的格式的运行时间服务。GPU驱动器28经由图形API 26从软件应用程序24接收指令, 且控制GPU 12的操作以服务所述指令。举例来说,GPU驱动器28可调配一或多个命令38, 将命令38放置到存储器10中,且指示GPU 12执行命令38。在一些实例中,GPU驱动器28 可将命令38放置到存储器10中且经由操作系统30、例如经由一或多个系统调用与GPU 12 通信。
[0094] GPU 12包含命令引擎32和一或多个处理单元34。在一些实例中,所述一或多个 处理单元34可形成和/或实施3D图形再现管线,例如DX 11图形再现管线(即,与DX 11 图形API顺应的3D图形管线)。在根据本发明的一个实例中可包含GPU中支持的新基元类 型(线、二次/三次贝塞尔曲线、椭圆形弧)。不同类型的基元应能够封装到同一顶点缓冲 器中,因此在单个绘制调用中再现其全部。虚线模式可原样使用,新棋盘形布置器逻辑可用 以处置预处理所述虚线模式。具有新基元类型且能够将不同类型的基元封装到单个绘制调 用中将减少GPU输入大小,且由于顶点再使用而显著增加性能。在IA阶段产生接点/盖可 需要一些硬件修改。所得接合点基元可由于潜在重复的结而使用许多索引。这还可需要作 为不同着色器级中可用的系统产生值的基元类型。
[0095] 命令引擎32经配置以从CPU 6 (例如,经由存储器10)接收命令且致使GPU 12执 行命令。响应于接收到状态命令,命令引擎32可经配置以基于所述状态命令将GPU中的一 或多个状态寄存器设定到特定值,和/或基于所述状态命令配置固定功能处理单元34中的 一或多者。响应于接收到绘制调用命令,命令引擎32可经配置以致使处理单元34基于指 示待再现路径的类型的数据而再现存储器10中由顶点36表示的几何形状,所述数据可包 含在待再现顶点缓冲器的顶点数据结构中。命令引擎32还可接收着色器程序绑定命令,且 基于着色器程序绑定命令将特定着色器程序加载到可编程处理单元34中的一或多者中。
[0096] 处理单元34可包含一或多个处理单元,其中的每一者可为可编程处理单元或固 定功能处理单元。可编程处理单元可包含(例如)可编程着色器单元,其经配置以执行从 CPU6下载到GPU 12上的一或多个着色器程序。在一些实例中,着色器程序可为以高级着 色语言编写的程序的经编译版本,例如OpenGL着色语言(GLSL)、高级着色语言(HLSL)、用 于图形的C(Cg)着色语言等。在一些实例中,可编程着色器单元可包含经配置以并行操作 的多个处理单元,例如SMD管线。可编程着色器单元可具有存储着色器程序指令的程序存 储器和执行状态寄存器,例如指示程序存储器中正执行的当前指令或待提取的下一指令的 程序计数器寄存器。处理单元34中的可编程着色器单元可包含(例如)顶点着色器单元、 像素着色器单元、几何形状着色器单元、壳着色器单元、域着色器单元、计算着色器单元和/ 或统一着色器单元。
[0097] 固定功能处理单元可包含经硬连线以执行某些功能的硬件。虽然固定功能硬件可 经由举例来说一或多个控制信号而配置以执行不同功能,但所述固定功能硬件通常并不包 含能够接收用户编译程序的程序存储器。在一些实例中,处理单元34中的固定功能处理单 元可包含(例如)执行光栅操作的处理单元,例如深度测试、剪刀测试、α掺合等。
[0098] 在一些实例中,模板缓冲器40可添加到(例如)实施DirectXll架构的GPU 12。 在实例中,输出合并器级60可经配置以根据一或多个模板缓冲器填充技术填入模板缓冲 器40以使得模板缓冲器40存储指示用于路径片段的填充区域的值。
[0099] 在其它实例中,可使用含有x*y单元的单元缓冲器。单元缓冲器可添加到(例如) 实施DirectXll架构的GPU 12。单元缓冲器可为十六乘十六子像素栅格,例如X = y = 16。 一个单元可表示最终图像中的一个像素,但单元名称可用以区分单元和像素,因为它们存 储不同信息。在实例中,单元缓冲器中的每一单元存储十六字节的卷绕计数器信息。单元 缓冲器可为帧缓冲器的大小,但通常单元缓冲器的存储器要求将变为太大。因此帧缓冲器 可分裂为x*y像素(和单元)的瓦片。此允许一次一个瓦片地绘制基元。
[0100] 存储器1〇可存储路径数据36和一或多个命令38。在一些实例中,路径数据36可 作为多个顶点(或控制点)存储在存储器10中分配的一或多个顶点缓冲器中。在一些实 例中,路径数据可存储于片列表数据结构(例如,四个控制点片列表)中。命令38可存储 于一或多个命令缓冲器(例如,环缓冲器)中。CPU 6 (例如,经由操作系统30的GPU驱动 器28)可将路径数据36和命令38放置到存储器10中用于由GPU 12消耗。GPU 12 (例如, 命令引擎32)可检索且执行存储于存储器10中的命令38。
[0101] 在其中路径数据36存储为顶点的实例中,所述顶点可包含几何学上界定待再现 的路径的一或多个属性。举例来说,对于线,片控制列表中的顶点可包含指示所述线的端点 的坐标(例如,(x〇,y〇)和(xl,yl))的数据。对于三次贝塞尔曲线,片控制列表中的顶点 可包含指示界定所述曲线的四个控制点的坐标(例如,(x〇, y〇)、(xl,yl)、(x2, y2)、(x3, y3))的数据。对于二次贝塞尔曲线,片控制列表中的顶点可包含指示三个控制点而非四个 控制点的坐标的数据。对于椭圆形弧,片控制列表中的顶点可包含指示椭圆形弧的端点参 数化的数据或指示椭圆形弧的中心参数化的数据。
[0102] CPU 6还可将指示待再现路径的类型的数据(即,"路径类型数据")放置到顶点缓 冲器中的一或多个原本未使用的顶点坐标中。在一些实例中,不同路径类型可对应于由向 量图形API界定且可用于由软件应用程序24使用的一组路径类型。在一些实例中,不同路 径类型可对应于由OpenVG API界定的一组路径类型。
[0103] 在某些情况下,几何学上界定待再现路径的一或多个属性可为分辨率独立的。换 句话说,几何学上界定所述路径的属性可独立于将执行以再现路径片段的棋盘形布置的量 和/或将产生以再现路径片段的顶点的量。
[0104] 命令38可包含一或多个状态命令和/或一或多个绘制调用命令。状态命令可指 示GPU 12改变GPU 12中的状态变量中的一或多者,例如绘制颜色、填充颜色、来回划线颜 色等。在一些实例中,状态命令可包含路径再现状态命令,其经配置以设定与再现路径相关 联的一或多个状态变量。举例来说,状态命令可包含图画模式命令,其经配置以指示待再现 路径是否将填充、来回划线或两者。作为另一实例,状态命令可包含指定将用于填充操作的 颜色的填充颜色命令,和/或指定用于来回划动操作的颜色的来回划线颜色命令。作为另 一实例,状态命令可指定用于来回划线操作的一或多个参数,例如来回划线宽度、末端盖样 式(例如,对接、圆形、正方形)、线接合样式(例如,斜接、圆形、斜边)、斜接限制等。在一些 实例中,除使用状态命令设定一或多个状态参数之外或代替于使用状态命令设定一或多个 状态参数,所述状态参数中的一或多者可使用绘制调用命令中的一或多个参数值来设定。
[0105] 绘制调用命令可指示GPU 12再现由存储于存储器10中的一或多个顶点(例如, 在顶点缓冲器中界定)的群组界定的几何形状。在一些实例中,绘制调用命令可调用GPU 12以再现存储于存储器10的经界定区段(例如,缓冲器)中的顶点36的全部。换句话说, 一旦GPU 12接收到绘制调用命令,便将控制传递到GPU 12以用于再现由存储器10的经界 定区段(例如,缓冲器)中的顶点表示的几何形状和基元。
[0106] 绘制调用命令可包含3D绘制调用命令和路径再现绘制调用命令中的一者或两 者。对于3D再现绘制调用命令,由顶点缓冲器中的一或多个顶点的群组界定的几何形状可 对应于待再现的一或多个3D图形基元(例如,点、线、三角形、四边形、三角形条带、片等), 且3D再现绘制调用命令可指示GPU 12再现所述一或多个3D图形基元。对于路径再现绘 制调用命令,由顶点缓冲器中的一或多个顶点的群组界定的几何形状可对应于待再现的一 或多个路径基元(例如,线段、椭圆形弧、二次贝塞尔曲线和三次贝塞尔曲线等),且路径再 现绘制调用命令可指示GPU 12再现所述一或多个路径基元。
[0107] 在一些实例中,本发明中描述的路径再现技术可在图2中图解说明的组件中的任 一者中实施,包含例如图形API 26、GPU驱动器28、命令引擎32和处理单元34。在一些实 例中,路径再现技术中的全部或几乎全部可在GPU 12中由处理单元34形成的图形管线中 实施。在额外实例中,CPU 6的软件应用程序24、图形API 26和/或GPU驱动器28可实施 用于配置图形管线的状态且将着色器程序绑定到图形管线以在GPU 12中实施执行本发明 的路径再现技术的路径再现管线的技术。在其它实例中,CPU 6的软件应用程序24、图形 API 26和/或GPU驱动器28可经配置以将指示待再现路径的数据放置到可由GPU 12存取 以再现一或多个路径的一或多个缓冲器(例如,一或多个顶点缓冲器)中。在一些实例中, GPU 12可经配置以用于(1)将路径棋盘形布置为线段,(2)使用单元缓冲器进行光栅化和 扫描填充,以及(3)使用来自单元缓冲器的填充颜色和模板绘制路径的限界框。
[0108] 图3是说明可执行本发明的路径再现技术的实例图形管线的概念图。在一些实例 中,所述图形管线可对应于Microsoft? DirectX(DX)Il图形管线。如图3中所示,所述实 例图形管线包含资源块42和多个处理级。所述多个处理级包含输入组装器(IA)级44、顶 点着色器(VS)级46、壳着色器(HS)级48、棋盘形布置器级50、域着色器(DS)级52、几何 形状着色器(GS)级54、光栅化器级56、像素着色器(PS)级58和输出合并器级60。HS级 48、棋盘形布置器级50和域着色器级52可形成图形管线的棋盘形布置级62。
[0109] 如图3中所示,所述管线级中的许多也可以通信地耦合到资源块。资源块可包含 例如缓冲器和纹理等存储器资源。剩余块指示管线级。具有笔直拐角的块表示固定功能管 线级,且具有圆形拐角的块表示可编程级。可编程级中的每一者可经配置以执行特定类型 的着色器程序。举例来说,顶点着色器46可经配置以执行顶点着色器程序,壳着色器48可 经配置以执行壳着色器程序等。不同类型的着色器程序中的每一者可在GPU的共同着色器 单元上或在专用于执行一或多个特定类型的着色器程序的一或多个专用着色器单元上执 行。壳着色器48级、棋盘形布置器50和域着色器52级可统称为棋盘形布置级62。
[0110] 关于DirectX 11图形管线的大体操作的额外背景信息可参见http ://msdn. microsoft. com/en-us/library
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1