对于象素着色器硬件的传统处理的制作方法

文档序号:6656426阅读:227来源:国知局
专利名称:对于象素着色器硬件的传统处理的制作方法
背景所要求保护的本发明的实现一般涉及处理图形图像,尤其涉及处理有关传统纹理单元的图形图像。
在图形处理中,纹理已经被应用于或“映射至”图像中的几何图元(例如,三角形)。在过去,这些纹理映射涉及通过硬件纹理单元的各种组合确定的所谓“固定功能”。例如,固定功能可以涉及使用或不使用用于色彩求和、雾效果添加、点描法等附件硬件单元来实现各种纹理环境的一个或多个纹理单元。以此方式,各种固定的处理功能被内嵌到图形硬件中,并且图形软件应用程序依赖这些固定功能的存在。
近来,图形硬件已经能在运行中编程以实现特别是由先前的不可编程图形硬件实现的固定功能。这些可编程硬件可以仿真有助于传统固定功能的纹理单元(例如,现在被称为“传统”纹理单元)(或者实现其功能)。图形处理器可以在需要新的固定功能(例如,象素着色器)时对这些功能进行编译。然而,图形软件应用程序仍然使用与传统固定功能相对应的传统应用程序编程接口(API)。这些软件应用程序也可以相对频繁地改变纹理环境,从而强制为每次改变重新计算固定功能(例如,象素着色器)。
附图简述并入本说明书且构成其一部分的附图示出了符合本发明原理的一个或多个实现,并且连同该描述一起解释这些实现。附图无需按比例绘出,而是着重于示出本发明的原理。在附图中

图1示出了一个示例性系统;以及图2是示出了图形数据处理的流程图。
详细描述随后的详细描述参考附图。在不同附图中可以使用相同标号来标识相同或类似的元素。在随后的描述中,出于解释而非限制的目的,将阐述诸如特定结构、架构、接口、技术等的具体细节以提供对所要求保护的本发明的各方面的全面理解。然而,从本公开内容中获益的本领域普通技术人员显而易见的是可以在脱离这些具体细节的其他示例中实践所要求保护的本发明的各个方面。在某些情况中,将省略对公知设备、电路和方法的描述,以免用不必要的细节淡化对本发明主题的描述。
图1示出了示例性系统100。系统100可以包括处理器110、图形处理器120、图形存储器130、可编程硬件140和帧缓冲器150。在某些实现中,一个或多个元件120至150可以包括在经由数据总线连接至处理器110的物理上有差别的图形卡中。在某些实现中,元件120至150可以位于带有元件110的公共电路板(例如,主板、子卡等)上。在某些实现中,元件120至150中的一个或多个可以是某设备部分(例如,核心)的部分,并且处理器110可被包括在同一设备的另一部分(例如,另一核心)内。
处理器110可以包括通用处理器、专用处理器和/或为特定目的配置的逻辑。处理器110可被安排成经由数据总线向图形处理器120分发图形数据(例如,状态向量)。处理器110可以在诸如渲染、游戏、图形创建或者其他类型的图形相关程序等程序的控制下发送图形数据。在某些实现中,处理器110可以使用诸如传统图形应用程序编程接口(API)等API来发送图形信息。图形信息例如可以包括纹理环境、几何数据等等。
图形处理器120可以包括通用处理器、专用处理器和/或为特定目的配置的逻辑。安排图形处理器120可被安排成接收来自处理器110的图形数据,并将该图形数据转换成待由可编程硬件140执行的程序(例如,象素着色器)。在某些情况下,图形处理器120可以主要使用从处理器110接收的图形数据来编译该程序。
在某些情况下,图形处理器120可以使用接收到的图形信息来查找并重复使用存储在图形存储器130内的预编译程序(例如,象素着色器)。在此情况下,图形处理器120可以从接收到的图形数据中生成签名或其他索引,以辅助在存储器130中快速找出这些预编译程序。如下将在生成新程序或使用已生成的程序的上下文中进一步描述图形处理器120的操作。
图形存储器130可以包括用于存储图形数据的存储设备。图形存储器130可以包括随机存取存储器(RAM)设备,诸如动态RAM(DRAM)、双倍数据速率RAM(DDR RAM)等。虽然图形存储器130被示为连接至图形处理器,但是在某些实现中,图形存储器130也可连接至处理器110和可编程硬件140中的一个或多个(或者至少可以进行直接的读/写)。
图形存储器130可以接收并存储来自处理器110和图形处理器120的图形数据和/或程序。除了存储图形数据之外,图形存储器130还存储与这些图形数据和/或程序相关联的索引和/或签名列表以便能够快速检查特定信息(例如,特定的象素着色器程序)的存在与否。
可编程硬件140可被安排成基于接收到的程序(例如,象素着色器)来对图形数据执行某些图形渲染操作。这些操作可以对光栅化的图形数据执行,并且可以包括纹理化、色彩求和、雾效果添加、点描等的某一组合。可编程硬件140可以从图形处理器120中接收这些程序以执行例如传统固定功能。在某些实现中,可编程硬件140可以接收存储器130中的程序的地址,并且可以直接从存储器130中读取该程序。
帧缓冲器150可被安排成接收来自可编程硬件140的经处理的数据并在需要时在显示之前缓冲这些数据。帧缓冲器150还可以在或许是图形处理器120的控制下将数据输出至显示器或显示接口。相关联的显示器(未示出)可以包括电视机、监视器、投影仪或适用于显示诸如视频和/或图形等图形信息的其他设备。这一显示器可以利用多种技术来进行这一显示,包括阴极射线管(CRT)、液晶显示器(LCD)、等离子和/或投影型技术。
图2是示出图形数据处理的流程图200。虽然为了便于解释可以参考系统100来描述过程200,但是所要求保护的本发明不必限于这一方面。在某些实现中,可以仅在当前纹理环境的某些方面改变时执行过程200。在某些实现中,可以仅在使用传统API并且当前纹理化方案的某些方面变化时执行过程200。
处理可以从图形处理器120接收来自处理器110的图形数据(在某些实现中是状态向量)开始。图形处理器120可以生成为所接收的状态向量生成签名[动作210]。在某些实现中,该签名可以是包括例如纹理环境、影像模糊、色彩和信息等的状态向量的缩短和/或压缩形式。该压缩的状态向量签名对每个纹理单元可以只包括几个字节来代替对状态向量的每个纹理有几十个字节。在某些实现中,签名可以是能够为给定的图像数据相对快速地生成的散列、校验和或其他已知的标识方案。这一散列可由图形处理器120对状态向量或其压缩形式执行。
处理可以在图形处理器120在存储器130中检查与在动作210中生成的签名相匹配的现有签名[动作220]中继续。存储器130中现有签名的存在可以指示对应于该接收到的状态向量的预编译程序(例如,象素着色器)在存储器130中可用。
在未找到匹配签名(因此就没有预编译着色器)的情况下[动作230],图形处理器120可以编译与该接收到的状态向量相对应的象素着色器程序[动作240]。这一新的象素着色器可以对应于先前在给定图形应用程序中并未出现的传统固定功能。
因而,图形处理器120可以在图形存储器130中存储新的象素着色器以备稍后可能发生的重复使用[动作250]。在动作250中,图形处理器还可以存储在动作210中生成的相关联的签名以便在稍后的动作220中能够找到该新的象素着色器。
处理在图形处理器120把象素着色器返回给可编程硬件140以供进一步处理[动作260]中结束。在某些实现中(例如,如果动作250已被执行),处理器120可以将着色器在存储器130中的地址发送给可编程硬件140。可编程硬件140随后可以在恰当的时候在该地址处执行程序。在某些实现中,处理器120可以将象素着色器程序直接发送给可编程硬件140,从而或许可允许动作250和260的同时执行。
返回到动作220,在存储器130中找到匹配签名(以及适当的预编译着色器)的情况下[动作230],图形处理器120可将预编译的象素着色器返回给可编程硬件140以供进一步处理[动作260]。这一预编译象素着色器可以对应于先前在给定的图形应用程序中已出现并且可以被重复使用的传统固定功能。对象素着色器的这一重复使用可以避免在纹理环境每一次改变时都要重新编译先前遇到过的象素着色器的资源使用。
以上对一个或多个实现的描述提供了示意和描述,但不旨在穷举本发明或将其范围限制在所公开的精确形式。各种修改和变化可以根据以上教导做出,并能从对本发明各种实现的实践中获得。
例如,虽然此处着色器重复使用方案主要是参考传统API来描述的,但是这一方案也可与任何数量和组合的图形API结合使用以避免不必要的重新编译。
此外,无需以示出的顺序执行图2中的动作;也无需执行所有的动作。同样地,那些不依赖于其他动作的动作可以与其他动作并行执行。此外,该图中的至少部分动作可以被实现为能在机器可读介质中实现的指令或指令组。
除非明确指出,否则在本申请的描述中使用的元件、动作或指令都不应该被解释为对本发明至关重要或必不可少。同样地,在此使用的冠词“一个”旨在包括一个或多个项目。可以对所要求保护的本发明的上述实现做出各种变化和修改而不背离本发明的精神和原理。所有这些修改和变化都应包括在公开的范围内并受到所附权利要求书的保护。
权利要求
1.一种方法,包括接收纹理信息;确定对应于所述纹理信息的预编译着色器是否存在;如果对应于所述纹理信息的所述预编译着色器不存在,则基于所述纹理信息编译新的着色器;以及如果对应于所述纹理信息的所述预编译着色器存在,则使用所述预编译着色器。
2.如权利要求1所述的方法,其特征在于,所述确定包括生成与所述纹理信息相关联的签名,以及检查所述签名是否已经被存储在存储器内。
3.如权利要求2所述的方法,其特征在于,还包括如果所述检查确定所述签名尚未被存储在所述存储器内,则存储所述签名和所述新的着色器。
4.如权利要求2所述的方法,其特征在于,所述生成包括压缩所述纹理信息以生成所述签名。
5.如权利要求1所述的方法,其特征在于,所述纹理信息被包括在应用程序编程接口(API)内。
6.一种系统,包括用于存储纹理化程序的存储器;用于执行纹理化程序的可编程硬件;以及处理器,用于接收纹理信息、在所述存储器中检查对应于所述纹理信息的纹理程序、以及如果在所述存储器中找到对应于所述纹理信息的纹理程序就将所述可编程硬件定向到对应于所述纹理信息的所述纹理化程序。
7.如权利要求6所述的系统,其特征在于,所述处理器被安排成在所述存储器中未找到对应于所述纹理信息的纹理化程序的情况下将所述纹理信息编译成新的纹理化程序。
8.如权利要求7所述的系统,其特征在于,所述处理器还被安排成在所述存储器中存储所述新的纹理化程序并将所述可编程硬件定向到所述新的纹理化程序。
9.如权利要求8所述的系统,其特征在于,所述处理器还被安排成生成对应于所述新的纹理化程序的签名并在所述存储器中存储所述签名。
10.如权利要求6所述的系统,其特征在于,所述处理器被安排成从所述纹理信息中生成签名并使用所述签名以在所述存储器中检查对应于所述纹理信息的所述纹理化程序。
11.如权利要求6所述的系统,其特征在于,还包括用于把应用程序编程接口(API)内的所述纹理信息发送给所述处理器的另一个处理器。
12.一种包括指令的机器可访问介质,当所述指令被执行时使得机器从接收到的应用程序编程接口(API)中生成签名;基于所述签名确定存储器是否含有对应于所述图形API的象素着色器程序;如果所述存储器含有所述象素着色器程序,则指令可编程硬件执行对应于所述图形API的所述象素着色器程序;以及如果所述存储器不含有对应于所述图形API的所述象素着色器程序,则基于所述图形API编译新的象素着色器程序。
13.如权利要求12所述的机器可访问介质,其特征在于,还包括在被执行时使得所述机器执行以下动作的指令在所述存储器中存储所述新的象素着色器程序。
14.如权利要求12所述的机器可访问介质,其特征在于,还包括在被执行时使得所述机器执行以下动作的指令如果所述存储器不含有对应于所述图形API的所述象素着色器程序,则指令所述可编程硬件执行所述新的象素着色器程序。
15.一种方法,包括接收新的纹理环境;生成对应于所述新的纹理环境的新的签名;在存储器中检查对应于所述新签名的已存储的签名;如果所述存储器含有所述已存储的签名,则用对应于所述已存储签名的已存储象素着色器来对硬件编程。
16.如权利要求15所述的方法,其特征在于,还包括如果所述存储器不含有所述已存储的签名,则生成对应于所述新的纹理环境的新的象素着色器。
17.如权利要求16所述的方法,其特征在于,还包括在所述存储器中存储所述新的象素着色器和所述新的签名。
18.如权利要求16所述的方法,其特征在于,还包括用所述新的象素着色器对所述硬件编程。
全文摘要
一种方法包括接收纹理信息并确定对应于该纹理信息的预编译着色器是否存在。如果对应于纹理信息的预编译着色器不存在,则基于该纹理信息编译新的着色器。如果对应于纹理信息的预编译着色器存在,则使用该预编译的着色器。
文档编号G06T15/50GK1985278SQ200580023788
公开日2007年6月20日 申请日期2005年7月8日 优先权日2004年7月15日
发明者A·西塔拉玛亚, E·伊尔玛兹 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1