当前位置: 首页 > 专利查询>英特尔公司专利>正文

减少域着色器/镶嵌器调用的方法、装置及设备制造方法及图纸

技术编号:10386266 阅读:120 留言:0更新日期:2014-09-05 12:28
根据一些实施例,当域着色器和/或镶嵌器操作冗余时,可消除域着色器和/或镶嵌器操作。通过使用角高速缓存,检查可确定作为顶点或四边形角的给定角在域着色器和/或镶嵌器内是否已经被估算,且如果是的话,则可再次使用之前操作的结果而不是执行可增加功耗或减少速度的不必要的调用。

【技术实现步骤摘要】
【国外来华专利技术】减少域着色器/镶嵌器调用的方法、装置及设备
技术介绍
本申请大体上涉及图形处理。在图像处理中实现流水线,在所谓顶点或角上以该流水线执行一系列步骤。可使用图元来表示正被图形渲染的表面。镶嵌(曲面细分)是把要被图形描绘的表面细分为较小的形状的过程。镶嵌将对象的表面分解为可管理的三角形。域着色器计算被细分的输出面片的每一个顶点的性质。域着色器接收外壳着色器输出控制点和镶嵌器级输出域定位,并输出顶点位置。对每一个面片调用一次外壳着色器,且将输入控制点转换为构成面片的输出控制点。进行逐个面片的数项计算来为镶嵌级和域着色器提供数据。术语“域着色器”一般与DirectX流水线相关联。在用于图像处理的包括OpenGL在内的其他应用程序接口中执行基本相同的功能,OpenGL通常引用DirectX域着色器作为镶嵌器估算着色器。在OpenGL中,经常将外壳(hull)着色器称为镶嵌器控制着色器。附图简述图1是根据一个实施例的图形流水线的示意图;图2根据一个实施例在左侧示出外壳着色器输入控制笼且在右侧示出外壳着色器输出控制笼;图3在左侧示出与图2中所示相同的输入控制笼但是示出不同的输出控制笼;图4是根据一个实施例的基于处理器的示意描述;和图5是根据一个实施例的手持式设备的前立面视图。详细描述根据一些实施例,可消除域着色器和/或镶嵌器冗余操作。通过使用角缓存,检查可确定在域着色器和/或镶嵌器内是否已经估算了给定角(其为三角形或四边形角)。如果是的话,则可再次使用之前操作的结果,而不是做出可增加功耗和/或减少速度的不必要的操作。在接下来的讨论中,一般使用DirectX应用程序接口(API)术语。在所有的情况下,可在包括OpenGL在内的其他应用程序接口中找到对应的结构。特定地,对于域着色器的引用适用于OpenGL中的镶嵌器估算着色器,并且对于外壳着色器的引用具有对于OpenGL中的镶嵌器控制着色器的适用性。因此,接下来的讨论可应用于被用于图形处理的任何应用程序接口。控制笼(controlcage)是由美工人员用来生成平滑表面的低分辨率模型。通过提供更高程度的曲面细分(tesselation),可被描绘的图形细节水平更高。然而,更高程度的曲面细分可不利地影响处理速度。面片(patch)是描述用于表面的控制笼的粗糙水平的基本单元。表面可以是可被描述为参数化函数的任何表面。图1所示的图形流水线10可以在作为独立、专用集成电路的图形处理器中实现、或在软件中实现、通过软件实现的通用处理器来实现、或者通过软硬件组合来实现。在一些实施例中,在图1中所示具有直角边缘的元件可实现为硬件,且图1中所示具有圆形边缘的元件可以是软件。例如,可在无线电话、结合了有线或无线通信通信设备的移动手持式计算设备、或任何计算机中实现图形流水线。图形流水线可向显示设备提供图像或视频用于显示。可使用各种技术来处理提供给显示器的图像。输入装配器12使用固定函数操作从存储器读出顶点、形成几何结构、并创建流水线工作项目。自动生成的标识符启用标识符专用的处理。顶点标识符和实例标识符从顶点着色器14开始往后可用。图元标识符从外壳着色器16开始往后可用。控制点标识符在外壳着色器16中可用。顶点着色器执行诸如变换、蒙皮、或照明之类的操作。其可输入一个顶点并输出一个顶点。逐个输出控制点地调用控制点阶段,且由控制点标识符标识每一个控制点阶段。外壳着色器16控制点阶段在每一次调用时输出一个控制点。聚集输出是下一外壳着色器阶段以及域着色器26的共享输入。可采用所有输入和输出控制点的共享读取输入,逐个面片地调用面片常数阶段一次。外壳着色器16输出边缘曲面细分因子和其它面片常数数据。如本文所使用的,图元(primitive)域的边缘曲面细分因子和边缘细节水平(采用每个边缘的间隔数量)可以互换使用。分割代码以使得独立工作可并行完成,且在结束处采用结合步骤。镶嵌器18可在硬件或软件中实现。在某些有益实施例中,镶嵌器可以是软件实现的镶嵌器。镶嵌器18检索经编码的域点或(u,v,w)值。镶嵌器18可从外壳着色器接收定义曲面细分到何种程度的数量。镶嵌器18生成拓扑,诸如点、线、或三角形。镶嵌器18可输出域定位。域着色器24是可编程的级,其使用由镶嵌器18提供的域点的(u,v,w)值来在面片上生成真实三维顶点。域着色器26估算顶点位置和属性且任选地通过查找位移图来移位点。域着色器26可使用来自镶嵌器18的(u,v,w)值来估算顶点的法线和其他属性。可使用位移图来添加面片的高频细节。在一些实施例中,可用软件实现域着色器26。域着色器26可使用标量位移图来移位点,或计算其他顶点属性。在一些情况下,顶点估算可涉及确定位置的双三次多项式(或一般地更高阶的多项式)、计算部分导数或使用辅助切线或双切线控制笼估算切线和双切线并获得它们的交叉乘积、使用诸如线性滤波之类的某种滤波来执行纹理(textured)查找、在标量值位移的情况沿法线来位移点、以及在矢量值位移的情况下沿着可从其他纹理释放(textureease)潜在读取的方向来移位点。图元装配器28组装所得图元并将装配好的图元给流水线的随后级,这些随后级进而提供固定函数目标渲染、混合、深度、以及模板(stencil)操作。在一些实施例中,外壳着色器16连续地输出三个或四个附加32-位标识符打包来形成阵列。在三角形的情况下可使用三个输出,且在四边形的情况下可需要四个输出。该阵列唯一地标识输出面片的输出角。在开始角的域着色器调用前,流水线使用相应的角标识符来询问角高速缓存22。如果流水线没有找到与该角对应的条目,则该角的域着色器进行估算。在该域着色器的估算完成后,该系统高速缓存该角的域着色器的输出并使用相应的角标识符来对其作标签。反之,如果系统找到了特定角标识符的条目,它使用所高速缓存的值而不是估算该角的域着色器调用。因此,对于每一个三角形或四边形面片,对应于三个或四个角可创建高达三个或四个条目。可在绘制调用之间清空角高速缓存。在激进的实现中,当要清空高速缓存时可将控制交给用户,且由此用户可高速缓存所有绘制调用中的值。在其中单个网孔(mesh)具有多个类型的面片,诸如规则和特别的面片,且为了最大化单指令多数据(SIMD)利用,存在对应于每个类型的面片的一个绘制调用的情况下,该情形是有帮助的。在一些实施例中,可在框22中分离地提供边缘高速缓存和角高速缓存。边缘高速缓存可与角高速缓存做一样的事,即对于之前已经估算过的边缘,避免对于域着色器和/或镶嵌器的不必要的调用。然而,具有分离的角和边缘高速缓存可以是有利的,因为角和边缘的清空(flushing)周期是不同的。例如,一个边缘可仅使用两次,因为仅两个相邻面片会有一个共用边缘。然而,在三角形面片的情况下一个角一般可被使用多达六次,且因此对于角和边缘而言清空次数可显著不同,且在一些实施例中清空操作可需要分离的编程。可一次为一个面片循环流水线10。对于每一个面片,估算三个或四个角或顶点且可估算高达四个边缘。因此,在一个实施例中,可从边缘高速缓存询问/角高速缓存询问20向边缘高速缓存/角高速缓存22做出八个并行询问。可为输出控制笼的四个角的每一个询问角高速缓存,且同时为输出控制笼的四个边缘询问边缘高速缓存。如果在边缘高速缓本文档来自技高网...
减少域着色器/镶嵌器调用的方法、装置及设备

【技术保护点】
一种方法,包括:域着色对于第一面片的第一角;且仅在第二面片的角并非所述第一角时域着色所述第二面片的所述角。

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:域着色第一面片的第一角;以及仅在第二面片的角并非所述第一角时,域着色所述第二面片的所述角,其中,在所述第一角被再次使用预定的次数之后,从用于角的高速缓存中清除所述第一角。2.如权利要求1所述的方法,其特征在于,包括对于面片的每一个角提供唯一标识符。3.如权利要求2所述的方法,其特征在于,包括使用标识符来确定角是否已经被域着色。4.如权利要求3所述的方法,其特征在于,包括在高速缓存中存储哪些角已经被域着色的指示。5.如权利要求1所述的方法,其特征在于,包括确定边缘和面片是否已经被域着色。6.如权利要求5所述的方法,其特征在于,包括,如果边缘已经被域着色,则跳过对于接下来的面片内的所述边缘的域着色。7.如权利要求6所述的方法,其特征在于,包括使用一个高速缓存来存储已经被域着色的边缘和角,并一次分析面片的所有角和边缘。8.一种设备,包括:用于域着色第一面片的第一角的装置;以及用于仅在第二面片的角并非所述第一角时域着色所述第二面片的所述角的装置,其中,在所述第一角被再次使用预定的次数之后,从用于角的高速缓存中清除所述第一角。9.如权利要求8所述的设备,其特征在于,包括用于对于面片的每一个角提供唯一标识符的装置。10.如权利要求9所述的设备,其特征在于,包括用于使用标识符来确定角是否已经被域着色的装置。11.如权利要求10所...

【专利技术属性】
技术研发人员:R·P·萨特T·福莱
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1