一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

减少带宽曲面细分因子的制作方法

2022-07-11 16:22:16 来源:中国专利 TAG:

减少带宽曲面细分因子


背景技术:

1.图形处理单元(gpu)使用由一系列可编程着色器和固定功能硬件块形成的图形管线来处理三维(3-d)图形。例如,在帧中可见的对象的3-d模型可以由一组三角形、其他多边形或面片表示,所述三角形、其他多边形或面片在图形管线中进行处理以产生像素值以显示给用户。三角形、其他多边形或面片统称为图元。所述过程包括将曲面细分因子映射到图元以表示由曲面细分因子指示的更精细的细节水平,所述曲面细分因子指定由曲面细分过程产生的图元的粒度。gpu包括专用存储器,所述专用存储器用于存储曲面细分因子使得曲面细分因子可用于映射到图形管线中正在处理的图元。存储在专用gpu存储器中的曲面细分因子通过以程序生成数据来填充。专用gpu存储器通常是相对较小的存储器,这限制了可以存储在专用gpu存储器中的曲面细分因子的数量。此外,将曲面细分因子写入存储器和从存储器中读取曲面细分因子所需的开销可能很大。
附图说明
2.通过参考附图,更好地理解本公开,并且本公开的众多特征和优点对于本领域技术人员而言是显而易见的。在不同附图中使用相同的附图标记指示类似或相同的项目。
3.图1是根据一些实施方案的包括图形处理单元(gpu)的处理系统的框图,所述gpu用于创建旨在输出到显示器的视觉图像。
4.图2描绘了根据一些实施方案的能够处理高阶几何图元以生成三维(3d)场景的光栅化图像同时存储和从存储器中检索减少量的曲面细分因子的图形管线。
5.图3描绘了根据一些实施方案的图2的图形管线的外壳着色器响应于检测到线程组的至少阈值百分比的曲面细分因子具有指示要剔除线程组的面片的值而绕过将曲面细分因子写入存储器并向图形管线的面片提取器发送指示。
6.图4描绘了根据一些实施方案的图2的图形管线的外壳着色器响应于检测到线程组的至少阈值百分比的曲面细分因子具有指示线程组的面片将被传递到图形管线的曲面细分器阶段的值而绕过将曲面细分因子写入存储器并向图形管线的面片提取器发送指示。
7.图5描绘了根据一些实施方案的图2的图形管线的外壳着色器将曲面细分因子的单个实例写入存储器并向图形管线的面片提取器发送对单个曲面细分因子适用于面片的所有曲面细分因子的指示。
8.图6描绘了根据一些实施方案的用于打包在单个字中的面片的多个曲面细分因子。
9.图7是示出根据一些实施方案的用于绕过将曲面细分因子的至少一个子集写入存储器的方法的流程图。
具体实施方式
10.用于处理三维(3-d)图形的图形管线由通过可编程着色器和存储器支持的一系列固定功能硬件块布置形成。这些布置通常由诸如在direct 3d 11、microsoft dx 11/12或
khronos group opengl/vulkan api的规范中指定的图形应用程序编程接口(api)处理顺序指定。图形管线的一个示例包括使用顶点着色器和外壳着色器实施的几何前端,所述顶点着色器和外壳着色器作用于高阶图元(诸如表示场景的3-d模型的面片)。
11.几何前端向在一些实施方案中实施为固定功能硬件块的曲面细分器提供高阶图元,如由外壳着色器生成的曲面面片和曲面细分因子。曲面细分允许基于控制参数从3d多边形网格中动态添加和减少细节。曲面细分器基于控制3d多边形网格的精细程度的曲面细分参数(在本文中也称为曲面细分因子)从输入的高阶图元生成低阶图元(诸如三角形、线和点)。曲面细分允许产生比由原始3d多边形网格生成的表面更平滑的表面。诸如多边形等低阶图元由相互连接的顶点形成。例如,常见对象(如网格)包括由三个顶点形成的多个三角形。低阶图元被提供给包括几何着色器的几何后端,以对低阶图元进行复制、着色或细分。例如,可以经由几何着色器的功能性提供大量毛发生成。
12.由处理对象空间中的几何工作负载的图形管线的部分生成的图元的顶点然后例如经由图元、顶点和索引缓冲区以及高速缓存存储器缓冲区被提供给处理图像空间中的像素工作负载的部分。像素部分包括与可编程像素着色器相结合的固定功能硬件的布置,以对图元执行剔除、光栅化、深度测试、颜色混合等以从输入几何图元生成片段或像素。在一些情况下,片段是各个像素或子像素。然后,可编程像素着色器对片段进行着色以与场景帧图像合并以进行显示。
13.图1至图7公开了用于提高图形处理管线的效率和带宽的系统和技术。在一些实施方案中,一种绕过将曲面细分因子写入图形存储器和从图形存储器中读取曲面细分因子的方法包括:在图形处理单元(gpu)的图形处理管线的外壳着色器处检测面片的所有曲面细分因子或者线程组中的所有面片的至少阈值百分比的曲面细分因子是否具有相同的值,以及至少阈值百分比的曲面细分因子是指示要剔除线程组的面片还是线程组的面片将被传递给曲面细分器。如果线程组的至少阈值百分比的曲面细分因子指示要剔除线程组的面片(在本文中称为具有值零的曲面细分因子),则外壳着色器绕过将曲面细分因子写入图形存储器并向面片提取器发送指示将丢弃线程组的曲面细分因子的消息。响应于接收到所述消息,面片提取器绕过从图形存储器中读取线程组的曲面细分因子并丢弃线程组的面片。
14.如果外壳着色器确定线程组的至少阈值百分比的曲面细分因子指示线程组的面片(在本文中称为具有值一的曲面细分因子)将被传递到曲面细分器阶段,则外壳着色器将线程组的曲面细分因子写入图形存储器并向面片提取器发送指示线程组的所有曲面细分因子指示线程组的面片将被传递到曲面细分器阶段的消息。响应于接收到消息,面片提取器绕过从图形存储器中读取曲面细分因子并将线程组的面片提供给曲面细分器阶段。
15.在一些实施方案中,如果外壳着色器确定线程组的至少阈值百分比的曲面细分因子具有彼此相等但既不是零也不是一的值,则外壳着色器将曲面细分因子的值的单个实例写入存储器并向面片提取器发送指示存储在图形存储器处的曲面细分因子的单个值应用于线程组的面片的所有曲面细分因子的消息。响应于接收到消息,面片提取器从图形存储器中读取单个曲面细分因子并将单个曲面细分因子应用于线程组中的面片中的每一者,然后将面片提供给曲面细分器。
16.如果线程组的面片的曲面细分因子不具有彼此相等的值,则在一些实施方案中,外壳提取器执行整数压缩以将单个字中的面片的一个以上的压缩曲面细分因子写入图形
存储器。例如,等值线面片与两个曲面细分因子相关联。因此,在一些实施方案中,外壳提取器将用于单个字中的等值线面片的两个曲面细分因子写入图形存储器。类似地,三角形面片与四个曲面细分因子相关联。在一些实施方案中,外壳提取器将与单个字中的三角形面片相关联的所有四个曲面细分因子写入图形存储器。四边形面片与六个曲面细分因子相关联。在一些实施方案中,外壳提取器将与第一单个字中的四边形面片相关联的前三个曲面细分因子写入图形存储器,并将与第二单个字中的四边形面片相关联的其余三个曲面细分因子写入图形存储器。
17.每个面片图元类型(例如,等值线、三角形和四边形)与两个、四个或六个曲面细分因子相关联。特别是对于等于零或一的曲面细分因子,将曲面细分因子写入图形存储器和从图形存储器中读取曲面细分因子所消耗的带宽可能比使用曲面细分因子产生的曲面细分图元的粒度的任何减少所节省的带宽更多。通过减少写入图形存储器和从图形存储器中读取的数据量,图形处理管线提高了gpu的带宽和效率。
18.图1是根据一些实施方案的用于实施带宽曲面细分因子的减少的处理系统100的框图。处理系统100包括通过系统数据总线112可通信地耦合在一起的中央处理单元(cpu)102、系统存储器104、包括图形处理单元(gpu)108的图形处理子系统106,以及显示装置110。如图所示,系统数据总线112连接cpu 102、系统存储器104和图形处理子系统106。在其他实施方案中,系统存储器104直接连接到cpu102。在一些实施方案中,cpu 102、图形处理子系统106的各部分、系统数据总线112或其任何组合被集成到单个处理单元中。此外,在一些实施方案中,图形处理子系统106的功能性包括在芯片组或一些其他类型的专用处理单元或协处理器中。
19.cpu 102执行存储在系统存储器104中的编程指令,作用于存储在系统存储器104中的数据,向图形处理单元108发送要完成的指令和/或数据(例如,要完成的工作或任务),并配置图形处理子系统106的各部分以供gpu 108完成工作。在一些实施方案中,系统存储器104包括动态随机存取存储器(dram),以用于存储编程指令和数据以供cpu 102和图形处理子系统106处理。
20.在各种实施方案中,cpu 102向命令缓冲区发送旨在用于在gpu108中处理的指令。在一些实施方案中,命令缓冲区位于例如耦合到系统数据总线112的系统存储器104处。在其他实施方案中,cpu 102向可通信地耦合到系统数据总线112的单独存储器发送用于gpu 108的图形命令。命令缓冲区临时存储图形命令流,其包括对gpu 108的输入。图形命令流包括例如一个或多个命令分组和/或一个或多个状态更新分组。在一些实施方案中,命令分组包括指示gpu 108对要输出的图像数据执行处理以供显示的绘图命令(也可互换地称为“绘图调用”)。例如,绘制命令指示gpu 108渲染由存储在存储器中的一组一个或多个顶点(例如,定义在顶点缓冲区中)定义的像素。在一些实施方案中,由该组一个或多个顶点定义的几何图形对应于要渲染的多个图元。
21.gpu 108接收并处理从cpu 102传输的工作。例如,在各种实施方案中,gpu 108诸如通过使用一个或多个图形管线114处理工作以在显示装置110上渲染和显示图形图像。图形管线114包括固定功能阶段和可编程着色器阶段。固定功能阶段包括gpu的固定功能管线中所包括的典型硬件阶段。可编程着色器阶段包括流式多处理器。流式多处理器中的每一者能够同时执行相对大量的线程。此外,流式多处理器中的每一者可编程以执行与多种应
用相关的处理任务,包括但不限于线性和非线性数据变换、视频和/或音频数据的滤波、建模操作(例如,应用物理学以确定对象的位置、速度和其他属性)等。在其他实施方案中,图形处理子系统106用于非图形处理。
22.而且如图所示,系统存储器104包括应用程序116(例如,操作系统或其他应用程序)、应用程序编程接口(api)118和gpu驱动器120。应用程序116生成对api 118的调用以产生通常呈图形图像序列的形式的期望的结果集。图形处理子系统106包括gpu数据总线122,其将gpu 108可通信地耦合到图形存储器124。在各种实施方案中,gpu以任意组合将图形存储器124和系统存储器104用于存储器操作。cpu 102分配这些存储器的各部分以供gpu 108执行工作。例如,在各种实施方案中,gpu 108从cpu 102接收指令,处理指令以渲染图形数据和图像,并将图像存储在图形存储器124中。随后,gpu 108在显示装置110上显示存储在图形存储器124中的图形图像。图形存储器124存储由gpu 108使用的数据和编程。如图1所示,图形存储器124包括帧缓冲区126,其存储用于驱动显示装置110的数据。
23.在各种实施方案中,gpu 108包括一个或多个计算单元,诸如一个或多个处理核心128,其包括一个或多个处理单元130,所述一个或多个处理单元诸如根据单指令多数据(simd)执行模型执行线程同时在波前中执行其他线程。处理单元130也可互换地称为simd单元。simd执行模型是其中多个处理元件共享单个程序控制流单元和程序计数器并且因此执行相同程序但是能够用不同数据执行所述程序的执行模型。gpu 108的处理核心128也可互换地称为着色器核心或流式多处理器(smx)。在gpu 108中实施的处理核心128的数量是设计选项的问题。
24.一个或多个处理核128中的每一者执行特定工作项的相应实例化以处理传入数据,其中一个或多个处理核128中的基本执行单元是工作项(例如,线程)。每个工作项表示例如由要并行执行的命令在装置上调用的内核的并行执行集合的单个实例化。工作项由一个或多个处理元件作为在处理核心128处执行的线程组(例如,工作组)的一部分来执行。在各种实施方案中,gpu 108发出并执行单个处理单元130。多个波前包括在“线程组”中,所述线程组包括被指定来执行同一程序的工作项集合。通过执行构成线程组的波前中的每一者来执行线程组。在一些实施方案中,波前在单个处理单元130上循序执行,或者在不同的simd单元上部分地或完全地并行执行。在其他实施方案中,来自线程组的所有波前在同一处理核心128处进行处理。波前也可互换地称为线程束(warp)、矢量或线程。在一些实施方案中,波前包括着色器程序的并行执行的实例,其中每个波前包括多个工作项,所述工作项根据simd范例在单个处理单元130上同时执行(例如,一个指令控制单元执行具有多个数据的同一指令流)。调度器132对不同的处理核心128和处理单元130执行与调度各种波前相关的操作,以及对图形处理子系统106执行用于编排各种任务的其他操作。
25.由一个或多个处理核心128提供的并行性适用于图形相关操作,诸如像素值计算、顶点变换、曲面细分、几何着色操作和其他图形操作。图形管线114接受来自cpu 102的图形处理命令,并且因此将计算任务提供给一个或多个处理核心128以供并行执行。一些图形管线操作(诸如像素处理和其他并行计算操作)要求对输入数据元素流或集合执行相同的命令流或计算内核。同一计算内核的相应实例化在一个或多个处理内核128中的多个处理单元130上同时执行,以便并行处理此类数据元素。如本文所指,例如,计算内核是包含在程序中声明并在处理核心128上执行的指令的功能。该功能也被称为内核、着色器、着色器程序
或程序。
26.如下文关于图2更详细描述的,gpu 108包括图形管线114,其减少写入图形存储器124和从图形存储器中读取的曲面细分因子的数量。抽象面片类型包括等值线、三角形和四边形。等值线面片是由两个曲面细分因子定义的水平线。三角形面片是由三个外部曲面细分因子和一个内部曲面细分因子定义的三角形,总共有四个曲面细分因子。四边形面片是由四个外部曲面细分因子和两个内部曲面细分因子定义的正方形,总共六个曲面细分因子。在一些实施方案中,每个曲面细分因子包括32位。因此,将线程组的所有面片的所有曲面细分因子写入图形存储器124并从图形存储器124中读取线程组的面片的所有曲面细分因子消耗大量带宽。图形管线114检测面片的线程组的至少阈值百分比的曲面细分因子是否相同,并且在一些实施方案中,检测面片的线程组的至少阈值百分比的曲面细分因子是零(即,指示要剔除面片)还是一(即,指示面片将被传递到图形管线114的曲面细分器阶段)。在一些实施方案中,阈值是可编程的并且被设置为相对较高的值,诸如98%。响应于检测到线程组的阈值百分比的曲面细分因子相同(或者,另外在一些实施方案中,阈值百分比的曲面细分因子为零或一),图形管线114绕过将面片的线程组的曲面细分因子的子集写入图形存储器124和从所述图形存储器中读取面片的线程组的曲面细分因子的子集,因此减少带宽并提高图形管线114的效率。
27.图2描绘了根据一些实施方案的能够处理高阶几何图元以生成三维(3d)场景的光栅化图像同时存储和从存储器中检索减少量的曲面细分因子的图形管线。图2示出了与gpu相关联的各种元素和管线阶段。在一些实施方案中,图形管线包括图2中未示出的其他元件和阶段。还应注意,图2仅是示意性的,并且例如,在一些实施方案中,实际上所示的功能单元和管线阶段共享硬件电路,即使它们在图2中被示意性地示出为单独的阶段。还应理解,图形处理管线200的阶段、元件和单元中的每一者都根据需要来实施并且因此包括例如用于执行相关联的操作和功能的适当电路和/或处理逻辑。
28.在各种实施方案中,图形处理管线200被配置为将图形渲染为描绘在虚拟空间(有时在本文中称为“世界空间”)中具有三维几何但潜在地是二维几何的场景的图像。图形处理管线200通常接收三维场景的表示,处理所述表示,并输出二维光栅图像。图形处理管线200的这些阶段处理最初作为几何图元端点(或顶点)处的属性的数据,其中图元提供关于正在渲染的对象的信息。三维图形中的典型图元包括三角形和线,其中这些几何图元的顶点提供关于例如x-y-z坐标、纹理和反射率的信息。
29.在整个图形处理管线200中,数据从一个或多个存储器单元中读取和写入一个或多个存储器单元,所述一个或多个存储器单元通常在图2中表示为图形存储器210。图形存储器210包括用于实施缓冲区并存储曲面细分因子、顶点数据、纹理数据等的一个或多个存储器或高速缓存的层次结构。使用图1所示的系统存储器104的一些实施方案来实施图形存储器210。
30.图形存储器210包含视频存储器和/或硬件状态存储器,其包括在渲染管线中利用的各种缓冲区和/或图形资源。在各种实施方案中,图形存储器210的一个或多个单独的存储器单元被体现为一个或多个视频随机存取存储器单元、一个或多个高速缓存、一个或多个处理器寄存器等,这取决于特定的渲染阶段中的数据的本质。因此,应理解,图形存储器210是指在图形处理管线200中利用的任何处理器可访问存储器。诸如专用gpu等处理单元
被配置为执行管线中的各种操作并相应地读/写到图形存储器210。
31.图形处理管线200的早期阶段包括在场景被光栅化并转换为屏幕空间作为适合于在像素显示装置上输出的一组离散图片元素之前在世界空间中执行的操作。在整个图形处理管线200中,包含在图形存储器210中的各种资源在管线阶段处利用,并且在确定图像的最终值之前对阶段的输入和输出临时存储在图形存储器210中所包含的缓冲区中。
32.输入组装器阶段220被配置为访问来自图形存储器210的信息,所述信息用于定义表示场景模型的各部分的对象。例如,在各种实施方案中,输入组装器阶段220从用户填充的缓冲区读取图元数据(例如,点、线和/或三角形)并将数据组装成将由图形处理管线200的其他管线阶段使用的图元。如本文中所使用,术语“用户”是指应用程序116或提供着色器代码和三维对象以用于渲染到图形处理管线200的其他实体。输入组装器阶段220基于用户填充的缓冲区中包括的图元数据将顶点组装成几种不同的图元类型(诸如线列表、三角形条带或具有相邻度的图元),并格式化经组装的图元以供图形处理管线200的其余部分使用。
33.在各种实施方案中,图形处理管线200作用于一个或多个虚拟对象,所述一个或多个虚拟对象由设置在世界空间中的一组顶点定义并具有相对于场景中的坐标定义的几何。例如,在图形处理管线200中利用的输入数据包括场景几何的多边形网格模型,所述场景几何的顶点对应于根据本公开的各方面在渲染管线中处理的图元,并且在由cpu实施的应用阶段期间在图形存储器中设置初始顶点几何。
34.顶点处理阶段230包括各种计算以处理世界空间几何中的对象的顶点。在一些实施方案中,顶点处理级230包括顶点着色器级232以执行顶点着色器计算,其操纵场景中的顶点的各种参数值,诸如位置值(例如,x-y坐标和z-深度值)、颜色值、光照值、纹理坐标等。优选地,顶点着色器计算由一个或多个可编程顶点着色器232执行。顶点着色器计算是针对与对象重叠的每个区域唯一地执行的,并且在顶点着色期间利用对象区域索引来确定对象使用哪些渲染上下文和相关联的参数,以及因此应如何操纵顶点值用于后续光栅化。在各种实施方案中,顶点着色器级232以软件实施,在逻辑上接收图元的单个顶点作为输入,并输出单个顶点。顶点着色器的一些实施方案实施单指令多数据(simd)处理,使得同时处理多个顶点。
35.顶点处理阶段230还任选地包括附加的顶点处理计算,其细分图元并在世界空间中生成新的顶点和新的几何。在所描绘的实施方案中,顶点处理阶段230包括顶点着色器阶段232、外壳着色器阶段233、面片提取器234、曲面细分器阶段235、域着色器阶段236和几何着色器阶段237。外壳着色器阶段233作用于输入高阶面片或用于定义输入面片的控制点。外壳着色器级233输出曲面细分因子和其他面片数据。由外壳着色器阶段233生成的图元可以由面片提取器234提供给曲面细分器阶段235。曲面细分器阶段235从外壳着色器阶段233接收对象(诸如面片)并例如通过基于由外壳着色器阶段233提供给曲面细分器阶段235的曲面细分因子来对输入对象进行曲面细分而生成识别与输入对象相对应的图元的信息。曲面细分将输入的高阶图元(诸如面片)细分为一组低阶输出图元,其表示更精细的细节水平,例如,由指定由曲面细分过程产生的图元的粒度的曲面细分因子所指示。因此,场景模型可以由较少数量的高阶图元表示(以节省存储器或带宽),并且可以通过对高阶图元进行曲面细分来添加附加细节。
36.域着色器阶段236输入域位置,并且在一些实现方式中,输入其他面片数据。域着色器阶段236作用于所提供的信息并基于输入域位置和其他信息生成单个顶点用于输出。几何着色器阶段237接收输入面片并输出多达由几何着色器阶段237基于输入图元生成的四个图元。在一些实施方案中,几何着色器阶段237从图形存储器210中检索顶点数据并从图形存储器210中的顶点数据生成新的图形图元,诸如线和三角形。具体地,几何着色器阶段237作为整体检索图元的顶点数据,并生成零个或多个图元。例如,几何着色器阶段237可以作用于具有三个顶点的三角形图元。
37.一旦顶点处理阶段230完成,场景就由一组顶点定义,每个顶点具有存储在图形存储器210中的一组顶点参数值。在某些实现方式中,从顶点处理阶段230输出的顶点参数值包括用针对不同区域的不同齐次坐标定义的位置。
38.图形处理管线200然后进行到光栅化处理阶段240。光栅化处理阶段240执行着色操作和其他操作,诸如裁剪、透视分割、剪裁和视口选择等。在各种实施方案中,光栅化处理阶段240将场景几何形转换为屏幕空间和一组离散的图片元素(例如,在图形处理管线期间使用的像素,但是注意术语像素不一定意味着像素对应于最终显示缓冲区图像中的显示像素值)。虚拟空间几何通过计算对象和顶点从世界空间到由通过光栅化器采样的多个离散的屏幕空间像素构成的场景的视窗(或“视口”)的投影的操作而变换为屏幕空间几何。根据本公开的各方面,屏幕区域包括具有不同渲染参数的多个不同区域,所述渲染参数包括用于不同区域的不同光栅化参数。
39.在图中描绘的光栅化处理阶段240包括图元组装阶段242,其设置由场景中的每组顶点定义的图元。每个顶点由顶点索引定义,并且每个图元相对于这些顶点索引定义并存储在图形存储器210的索引缓冲区中。图元应至少包括各自由三个顶点定义的三角形,而且还包括点图元、线图元和其他多边形形状。在图元组装阶段242期间,剔除某些图元。例如,顶点索引和齐次坐标空间位置指示某个环绕顺序的那些图元被认为是背面的,因此从场景中剔除。图元组装阶段242还包括图元顶点的屏幕空间变换,其可以包括针对屏幕区域的不同区域的不同屏幕空间变换参数。
40.光栅化处理阶段240执行裁剪、透视分割以将点变换到齐次空间并将顶点映射到视口。光栅数据被捕捉到整数位置,然后被剔除和裁剪(以绘制最小数量的像素),并且每像素属性(从每顶点属性)进行插值。通过这种方式,光栅化处理阶段240确定哪些像素图元重叠,裁剪图元并为像素着色器准备图元,并确定如何调用像素着色器阶段250。
41.在传统的几何管线中,外壳着色器阶段233将所有面片的所有曲面细分因子写入图形存储器210,并且面片提取器234从图形存储器210中读取所有面片的所有曲面细分因子,这可能浪费计算资源并形成处理瓶颈。例如,经常存在所有或大比例的曲面细分因子相同的大量轮次。外壳着色器阶段233检测面片的线程组的至少阈值百分比的曲面细分因子是否相同。如果线程组的至少阈值百分比的曲面细分因子相同,则在一些实施方案中,外壳着色器阶段233进一步检测线程组的至少阈值百分比的曲面细分因子是指示要剔除线程组的面片(例如,具有值零)还是指示线程组的面片将被传递到曲面细分器阶段235(例如,具有值一)。响应于检测到线程组的至少阈值百分比的曲面细分因子相同,外壳着色器阶段233绕过将曲面细分因子的至少一个子集写入图形存储器210。例如,响应于检测到面片的线程组的至少阈值百分比的曲面细分因子全部具有相同值零或一,外壳着色器阶段233向
面片提取器234发送消息。外壳着色器阶段233绕过将曲面细分因子写入图形存储器210,并且面片提取器234响应于接收到消息而绕过从图形存储器210中读取曲面细分因子。响应于检测到线程组的至少阈值百分比的曲面细分因子相同,但是不等于零或一,外壳着色器阶段233将大多数曲面细分因子的值的单个实例写入图形存储器210并向面片提取器234发送指示存储在图形存储器210处的曲面细分因子的单个值应用于线程组的所有面片的消息。
42.图3描绘了根据一些实施方案的图2的图形管线的外壳着色器233绕过将曲面细分因子写入图形存储器210并向图形管线的面片提取器234发送对线程组的所有曲面细分因子都具有指示要剔除线程组的面片的值的指示。响应于外壳着色器阶段233检测到线程组的面片的至少阈值百分比的曲面细分因子具有指示要剔除线程组的面片的值(例如,具有值零),外壳着色器阶段233绕过将线程组的曲面细分因子写入图形存储器210。外壳着色器阶段233还向面片提取器234发送指示线程组的所有面片的所有曲面细分因子都具有指示要剔除线程组的面片(例如,等于零)的值的消息302。响应于接收到消息302,面片提取器234绕过从图形存储器210中读取线程组的曲面细分因子。因为曲面细分因子零剔除面片,所以面片提取器234另外丢弃线程组的面片而不是将它们传递到曲面细分器阶段(未示出)。
43.图4描绘了根据一些实施方案的图2的图形管线的外壳着色器阶段233响应于检测到线程组的至少阈值百分比的曲面细分因子具有指示线程组的面片将被传递到曲面细分器阶段的值而绕过将曲面细分因子写入图形存储器210并向图形管线的面片提取器234发送指示。响应于外壳着色器阶段233检测到线程组的面片的至少阈值百分比的曲面细分因子具有指示线程组的面片将被传递到曲面细分器阶段的值(例如,具有值一),外壳着色器阶段233绕过将线程组的曲面细分因子写入图形存储器210。外壳着色器阶段233还向面片提取器234发送指示线程组的面片的曲面细分因子具有指示线程组的面片将被传递到曲面细分器阶段(例如,等于零)的值的消息402。响应于接收到消息402,面片提取器234绕过从图形存储器210中读取线程组的曲面细分因子。面片提取器234另外展开线程组的面片并将它们传递给曲面细分器(未示出)。
44.图5描绘了根据一些实施方案的图2的图形管线的外壳着色器阶段233将曲面细分因子的值的单个实例写入图形存储器210并向图形管线的面片提取器234发送对单个曲面细分因子值适用于面片的所有曲面细分因子的指示。响应于检测到与面片506相关联的所有曲面细分因子都具有相同的值,外壳着色器阶段233绕过将面片的所有曲面细分因子写入图形存储器210。相反,外壳着色器阶段233将曲面细分因子502的单个实例写入图形存储器210并向面片提取器234发送指示曲面细分因子值的单个实例应用于与面片506相对应的所有曲面细分因子的标志504。响应于接收到标志504,面片提取器234从图形存储器210中读取面片506和曲面细分因子502的单个实例。面片提取器234将曲面细分因子502应用于与面片506相对应的所有曲面细分因子,并将面片506和曲面细分因子502提供给曲面细分器阶段235,所述曲面细分器阶段使用曲面细分因子来生成最终图元。
45.图6描绘了根据一些实施方案的用于打包在单个字中的面片的多个曲面细分因子。在一些实施方案中,外壳着色器阶段以32位字将曲面细分因子写入图形存储器。每个曲面细分因子的值介于0至64之间。因此,可以使用8位写入每个曲面细分因子。为了减少写入图形存储器210和从图形存储器中读取的字的数量,在一些实施方案中,外壳着色器阶段
(未示出)将多个曲面细分因子打包在单个字中。例如,等值线面片具有两个曲面细分因子。外壳着色器阶段将单个字601写入图形存储器(未示出),所述字包括与等值线面片相对应的第一曲面细分因子tf-1 602和第二曲面细分因子tf-2 604。作为另一个示例,三角形面片具有四个曲面细分因子。外壳着色器阶段将单个字611写入图形存储器,所述字包括与三角形面片相对应的第一曲面细分因子tf-1 612、第二曲面细分因子tf-2 614、第三曲面细分因子tf-3 616和第四曲面细分因子tf-4 618。类似地,四边形面片具有六个曲面细分因子。因为所有六个8位曲面细分因子无法配合在单个32位字中,所以外壳着色器阶段将与四边形面片相对应的六个曲面细分因子打包为两个字。例如,外壳着色器阶段将第一字621和第二字627写入图形存储器,所述第一字包括与四边形面片相对应的第一曲面细分因子tf-1 622、第二曲面细分因子tf-2 624和第三曲面细分因子tf-3 626,所述第二字包括与四边形面片相对应的第四曲面细分因子tf-4 628、第五曲面细分因子tf-5 630和第六曲面细分因子tf-6 632。因此,外壳着色器阶段将写入图形存储器和从图形存储器中读取的曲面细分因子的字的数量从二减少到一(在等值线面片的情况下),从四减少到一(在三角形面片的情况下),以及从六减少到二(在四边形面片的情况下)。
46.图7是示出根据一些实施方案的用于绕过将曲面细分因子的至少一个子集写入存储器的方法700的流程图。在一些实施方案中,所述方法由图1的图形管线114或图2的图形处理管线200来实施。
47.在框702处,外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子是否具有相等的值。如果在框702处,外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子不具有相等的值,则所述方法流程继续进行到框704。在框704处,外壳着色器阶段233确定线程组的面片的所有曲面细分因子是否都具有相等的值。如果在框704处,外壳着色器阶段233确定面片的所有曲面细分因子不具有相等的值,则所述方法流程继续进行到框706。在框706处,外壳着色器阶段233将面片的曲面细分因子写入图形存储器210。在一些实施方案中,外壳着色器阶段233将与面片相对应的多个曲面细分因子写入单个字中。例如,对于具有两个曲面细分因子的等值线面片,外壳着色器阶段233将等值线面片的两个曲面细分因子写入单个字中。对于具有四个曲面细分因子的三角形面片,外壳着色器阶段233将三角形的所有四个曲面细分因子都写入单个字中。对于具有六个曲面细分因子的四边形面片,外壳着色器阶段233例如将四边形面片的前三个曲面细分因子写入第一字中并将四边形面片的后三个曲面细分因子写入第二字中。
48.如果在框704处,外壳着色器阶段233确定面片的至少阈值百分比的曲面细分因子具有相等的值,则所述方法流程继续进行到框708。在框708处,外壳着色器阶段233将曲面细分因子的单个实例写入图形存储器210并向面片提取器发送指示曲面细分因子的单个实例适用于与面片相对应的所有曲面细分因子的标志504。
49.如果在框702处,外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子具有相等的值,则所述方法流程继续进行到框710。在框710处,外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子是否具有指示要剔除线程组的面片的值。如果在框710处,外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子具有指示要剔除线程组的面片的值,则所述方法流程继续进行到框712。在框712处,外壳着色器阶段233绕过将线程组的曲面细分因子写入图形存储器210并
向面片提取器234发送指示线程组的曲面细分因子具有指示要剔除线程组的面片的值的消息302。响应于接收到消息302,面片提取器234绕过从图形存储器210中读取线程组的曲面细分因子并剔除(丢弃)线程组的面片。
50.在框710处,如果外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子不具有指示要剔除线程组的面片的值,则所述方法流程继续进行到框714。在框714处,外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子是否具有指示线程组的面片将被传递到曲面细分器阶段235的值。如果在框714处,外壳着色器阶段确定线程组的所有面片的至少阈值百分比的曲面细分因子具有指示线程组的面片将被传递到曲面细分器阶段235的值,则所述方法流程继续进行到框716。在框716处,外壳着色器阶段233绕过将线程组的面片的曲面细分因子写入图形存储器210并向面片提取器234发送指示线程组的所有面片的所有曲面细分因子具有指示线程组的面片将被传递到曲面细分器阶段235的值的消息402。响应于接收到消息402,面片提取器234从图形存储器210展开面片并将面片提供给曲面细分器阶段235。如果在框714处,外壳着色器阶段233确定线程组的所有面片的至少阈值百分比的曲面细分因子不具有指示线程组的面片将被传递到曲面细分器阶段235的值,则所述方法流程继续进行到框708。在这种情况下,因为外壳着色器阶段已经确定线程组的所有面片的至少阈值百分比的曲面细分因子具有相等的值,所以在框706处,外壳着色器将最常见的曲面细分器因子值的单个实例写入图形存储器210并向面片提取器发送指示存储在图形存储器210处的单个曲面细分器因子适用于线程组的所有面片的所有曲面细分因子的标志504。
51.计算机可读存储介质包括在使用期间可由计算机系统访问以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或者非暂时性存储介质的组合。此类存储介质可包括但不限于光学介质(例如,压缩光盘(cd)、数字通用光盘(dvd)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘)、易失性存储器(例如,随机存取存储器(ram)或高速缓存)、非易失性存储器(例如,只读存储器(rom)或闪存存储器)或基于微机电系统(mems)的存储介质。在一些实施方案中,计算机可读存储介质嵌入在计算系统中(例如,系统ram或rom)、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的闪存存储器),或者经由有线或无线网络耦合到计算机系统(例如,网络可存取存储装置(nas))。
52.在一些实施方案中,上文所描述的技术的某些方面由执行软件的处理系统的一个或多个处理器来实施。软件包括被存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件可以包括在由一个或多个处理器执行时操纵一个或多个处理器以执行上文所描述的技术的一个或多个方面的指令和某些数据。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储装置、固态存储装置,诸如闪存存储器、高速缓存、随机存取存储器(ram)或一个或多个其他非易失性存储器装置等。被存储在非暂时性计算机可读存储介质上的可执行指令是源代码、汇编语言代码、目标代码或可由一个或多个处理器解译或执行的其他指令格式。
53.应注意,并非需要上文在一般描述中所描述的所有活动或元件,不一定需要特定活动或装置的一部分,并且除了所描述的活动或元件之外,还可以执行一个或多个另外的活动或包括一个或多个另外的元件。更进一步地,列出活动的顺序不一定是执行所述活动
的顺序。另外,已经参考具体实施方案描述了概念。然而,本领域普通技术人员应理解,在不脱离所附权利要求书中阐述的本公开的范围的情况下,可以做出各种修改和改变。因此,本说明书和附图将被视为说明性而非限制性的,并且所有此类修改都意图被包括在本公开的范围内。
54.上面已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,这些益处、优点、问题的解决方案以及可能导致任何益处、优点或解决方案发生或变得更明显的任何功能均不应被解释为任何或所有权利要求的关键、必需或基本特征。此外,上文所公开的特定实施方案仅是说明性的,因为所公开的主题可以通过对于受益于本文教导的本领域技术人员显而易见的不同但等效的方式来修改和实践。除了如所附权利要求中所描述的之外,并不意图限于本文所示的构造或设计的细节。因此,明显的是以上所公开的特定实施方案可进行更改或修改,并且所有此类变化形式都被认为在所公开的主题的范围内。因此,本文所寻求的保护如所附权利要求中所阐述。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献