CN104025030A - 减少域着色器/镶嵌器调用 - Google Patents
减少域着色器/镶嵌器调用 Download PDFInfo
- Publication number
- CN104025030A CN104025030A CN201180076157.7A CN201180076157A CN104025030A CN 104025030 A CN104025030 A CN 104025030A CN 201180076157 A CN201180076157 A CN 201180076157A CN 104025030 A CN104025030 A CN 104025030A
- Authority
- CN
- China
- Prior art keywords
- dough sheet
- angle
- painted
- territory
- edge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
根据一些实施例,当域着色器和/或镶嵌器操作冗余时,可消除域着色器和/或镶嵌器操作。通过使用角高速缓存,检查可确定作为顶点或四边形角的给定角在域着色器和/或镶嵌器内是否已经被估算,且如果是的话,则可再次使用之前操作的结果而不是执行可增加功耗或减少速度的不必要的调用。
Description
背景技术
本申请大体上涉及图形处理。
在图像处理中实现流水线,在所谓顶点或角上以该流水线执行一系列步骤。可使用图元来表示正被图形渲染的表面。
镶嵌(曲面细分)是把要被图形描绘的表面细分为较小的形状的过程。镶嵌将对象的表面分解为可管理的三角形。
域着色器计算被细分的输出面片的每一个顶点的性质。域着色器接收外壳着色器输出控制点和镶嵌器级输出域定位,并输出顶点位置。
对每一个面片调用一次外壳着色器,且将输入控制点转换为构成面片的输出控制点。进行逐个面片的数项计算来为镶嵌级和域着色器提供数据。
术语“域着色器”一般与DirectX流水线相关联。在用于图像处理的包括OpenGL在内的其他应用程序接口中执行基本相同的功能,OpenGL通常引用DirectX域着色器作为镶嵌器估算着色器。在OpenGL中,经常将外壳(hull)着色器称为镶嵌器控制着色器。
附图简述
图1是根据一个实施例的图形流水线的示意图;
图2根据一个实施例在左侧示出外壳着色器输入控制笼且在右侧示出外壳着色器输出控制笼;
图3在左侧示出与图2中所示相同的输入控制笼但是示出不同的输出控制笼;
图4是根据一个实施例的基于处理器的示意描述;和
图5是根据一个实施例的手持式设备的前立面视图。
详细描述
根据一些实施例,可消除域着色器和/或镶嵌器冗余操作。通过使用角缓存,检查可确定在域着色器和/或镶嵌器内是否已经估算了给定角(其为三角形或四边形角)。如果是的话,则可再次使用之前操作的结果,而不是做出可增加功耗和/或减少速度的不必要的操作。
在接下来的讨论中,一般使用DirectX应用程序接口(API)术语。在所有的情况下,可在包括OpenGL在内的其他应用程序接口中找到对应的结构。特定地,对于域着色器的引用适用于OpenGL中的镶嵌器估算着色器,并且对于外壳着色器的引用具有对于OpenGL中的镶嵌器控制着色器的适用性。因此,接下来的讨论可应用于被用于图形处理的任何应用程序接口。
控制笼(control cage)是由美工人员用来生成平滑表面的低分辨率模型。通过提供更高程度的曲面细分(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)查找、在标量值位移的情况沿法线来位移点、以及在矢量值位移的情况下沿着可从其他纹理释放(texture ease)潜在读取的方向来移位点。
图元装配器28组装所得图元并将装配好的图元给流水线的随后级,这些随后级进而提供固定函数目标渲染、混合、深度、以及模板(stencil)操作。
在一些实施例中,外壳着色器16连续地输出三个或四个附加32-位标识符打包来形成阵列。在三角形的情况下可使用三个输出,且在四边形的情况下可需要四个输出。该阵列唯一地标识输出面片的输出角。在开始角的域着色器调用前,流水线使用相应的角标识符来询问角高速缓存22。如果流水线没有找到与该角对应的条目,则该角的域着色器进行估算。在该域着色器的估算完成后,该系统高速缓存该角的域着色器的输出并使用相应的角标识符来对其作标签。
反之,如果系统找到了特定角标识符的条目,它使用所高速缓存的值而不是估算该角的域着色器调用。因此,对于每一个三角形或四边形面片,对应于三个或四个角可创建高达三个或四个条目。
可在绘制调用之间清空角高速缓存。在激进的实现中,当要清空高速缓存时可将控制交给用户,且由此用户可高速缓存所有绘制调用中的值。在其中单个网孔(mesh)具有多个类型的面片,诸如规则和特别的面片,且为了最大化单指令多数据(SIMD)利用,存在对应于每个类型的面片的一个绘制调用的情况下,该情形是有帮助的。
在一些实施例中,可在框22中分离地提供边缘高速缓存和角高速缓存。边缘高速缓存可与角高速缓存做一样的事,即对于之前已经估算过的边缘,避免对于域着色器和/或镶嵌器的不必要的调用。
然而,具有分离的角和边缘高速缓存可以是有利的,因为角和边缘的清空(flushing)周期是不同的。例如,一个边缘可仅使用两次,因为仅两个相邻面片会有一个共用边缘。然而,在三角形面片的情况下一个角一般可被使用多达六次,且因此对于角和边缘而言清空次数可显著不同,且在一些实施例中清空操作可需要分离的编程。
可一次为一个面片循环流水线10。对于每一个面片,估算三个或四个角或顶点且可估算高达四个边缘。因此,在一个实施例中,可从边缘高速缓存询问/角高速缓存询问20向边缘高速缓存/角高速缓存22做出八个并行询问。可为输出控制笼的四个角的每一个询问角高速缓存,且同时为输出控制笼的四个边缘询问边缘高速缓存。
如果在边缘高速缓存/角高速缓存22内找到给定边缘或角,在菱形框24处检测到高速缓存命中。在这个情况下,可避免域着色器调用,这样节省周期,且在一些实施例中可能改进速度和/或功耗。如果不存在高速缓存命中,则进行域着色器调用,并且如箭头B所示,看情况向角或边缘高速缓存添加缺失的边缘或角条目。
可在高速缓存22内部完成边缘高速缓存/角高速缓存的清空。每次发现边缘已经被再次使用,边缘可被清空。清空条目的一个方式在于仅将条目标记为可供再次使用以维持其他数据。然而,在角高速缓存的情况下,每次角被使用,角将不被清空。而是,可仅在角已经被使用了可能的次数后角才被清空。因此,在具有矩形面片和矩形邻域的情况下,每个角可在被再次使用三次后清空。在三角形领域内的三角形面片情况下,可在再次使用五次后发生清空。通过模拟实际工作负荷可经验性地调整允许再次使用的次数,而不是将其设置为某个固定数字。
图2中示出输入面片及其单环形邻域的示例。由角14、16、47、和18来定义该面片。它的环形邻域由围绕给定面片的所有面片构成。因此,在随后的面片14、18、72,在面片14、74、73,在面片14、15、12、74,和在面片14、15、17、和16中可再次使用角14。然后由外壳着色器将在图2左侧示出的输入控制面片转换为在右侧示出的输出控制面片。
在图2的情况下,没有生成新的顶点或角。然而在图3中,示出相同的输入面片,但是形成不同的输出面片,其由具有标记为N的新角的四个三角形构成。
使用与现有角号不重复的合适的编号方案,新的角可被给予唯一标识符。必须对于构成具有公共角N的输出面片的四个三角形的四次连续生成的每一次使用相同的号。所以最左边的由四个点14、16、47、和18构成的面片被提交四次。它每次被提交时,生成四个三角形之一,但是对于每个三角形的中心角使用相同的标识符。
上文所述的关联于域着色器的操作也可对镶嵌器18做出。换言之,在镶嵌器18级之前,可通过询问20来简单地询问高速缓存22,以使得在合适的核内,可绕过镶嵌器18级来节省周期。
图4示出系统700的实施例。在各实施例中,系统700可以是媒体系统,虽然系统700不仅限于此上下文。例如,系统700可集成到个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息接发设备、数据通信设备等等。
在各实施例中,系统700包括耦合到显示器720的平台702。平台702可以从诸如内容服务设备(多个)730、或内容递送设备(多个)740之类的内容设备或其他类似的内容源接收内容。包括一个或多个导航特征的导航控制器750可被用来与例如平台702和/或显示器720交互。在下文中更详细地描述这些组件中的每一个。
在各实施例中,平台702可包括芯片组705、处理器710、存储器712、存储714、图形子系统715、应用716和/无线电718的或任何组合。芯片组705可以在处理器710、存储器712、存储714、图形子系统715、应用程序716、和/或无线电718之间提供相互通信。例如,芯片组705可以包括能够提供与存储714的相互通信的存储器适配器(未描绘)。
处理器710可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容的处理器、多核,或任何其他微处理器或中央处理单元(CPU)。在各实施例中,处理器710可包括双核处理器(多个)、双核移动处理器(多个)等等。
存储器712可实现为易失性存储设备,例如但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储设备714可以实现为非易失性存储器设备,诸如,但不仅限于,磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池供电的SDRAM(同步DRAM),和/或网络可访问的存储设备。在各实施例中,存储714可包括用于在例如包括多个硬盘驱动器时提高有价值数字媒体的存储性能改善保护的技术。
图形子系统715可以对诸如静止图像或视频之类的图像执行处理以供显示。图形子系统715可以例如是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以被用来可通信地耦合图形子系统715和显示器720。例如,接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDMI,和/或无线HD兼容技术中的任何一个。图形子系统715可被集成至处理器710或芯片组705中。图形子系统715可以是可通信地耦合到芯片组705的独立卡。
此处所描述的图形和/或视频处理技术可以以各种硬件体系结构来实现。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用单独的图形和/或视频处理器。作为又一实施例,图形和/或视频功能可由包括多核处理器的通用处理器实现。在又一实施例中,这些功能可实现在消费者电子设备中。
无线电718可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络以及卫星网络。在跨这样的网络的通信中,无线电718可以根据任何版本的一个或多个适用的标准来操作。
在各实施例中,显示器720可包括任何电视机型监视器或显示器。显示器720可包括例如计算机显示屏、触摸屏显示器、视频监视器、电视机类设备和/或电视机。显示器720可以是数字和/或模拟的。在各实施例中,显示器720可以是全息显示器。此外,显示器720还可以是可接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像,和/或对象。例如,这样的投影可以是用于移动增强的现实(MAR)应用程序的视觉覆盖。在一个或多个软件应用程序716的控制下,平台702可以在显示器720上显示用户界面722。
在各实施例中,内容服务设备730可由任何国内、国际和/或独立服务所主控,并因此可经由例如因特网对平台702访问。内容服务设备(多个)730可以耦合到平台702和/或显示器720。平台702和/或内容服务设备(多个)730可以耦合到网络760,以往返于网络760地通信(例如,发送和/或接收)媒体信息。内容递送设备740还可以耦合到平台702和/或显示器720。
在各实施例中,内容服务设备(多个)730可包括有线电视机顶盒、个人计算机、网络、电话、互联网启用设备或能够传递数字信息和/或内容的设施,以及能够经由网络760或直接地在内容提供者和平台702和/显示器720之间单向或双向地交换内容的任何其它类似设备。可以理解,内容可以通过网络760单向地和/或双向地传递往返于系统700中的组件中的任何一个和内容提供商。内容的示例可以包括任何媒体信息,包括,例如,视频、音乐、医学和游戏信息等等。
内容服务设备(多个)730接收内容,诸如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可以包括任何有线或卫星电视或电台或因特网内容提供商。给出的例子不旨在对本发明的实施例构成限制。
在各实施例中,平台702可从具有一个或多个导航特征的导航控制器750接收控制信号。控制器750的导航特征可以被用来,例如,与用户界面722进行交互。在一些实施例中,导航控制器750可以是定点设备,它可以是允许用户将空间(例如连续的和多维的)数据输入到计算机中的计算机硬件组件(具体地说是人机接口设备)。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统可使用户使用物理手势控制并向计算机或电视机提供数据。
控制器750的导航特征的移动可以通过指针、光标、焦点环,或显示在显示器上的其他可视指示器,反映到显示器(例如,显示器720)上。例如,在软件应用716的控制下,位于导航控制器750上的导航特征可以被映射到例如用户界面722上显示的虚拟导航特征。在各实施例中,控制器750可以不是单独组件,而是集成到平台702和/或显示器720中。然而,各实施例并不限于这些元件或本文中示出或描述的背景。
在各实施例中,驱动器(未示出)可包括技术,该技术例如当被启用时用于允许用户在最初引导之后通过触摸按钮立刻接通和切断类似电视机的平台702。在平台被“关闭”时,程序逻辑可以允许平台702将内容流传输到媒体适配器或其他内容服务设备(多个)730或内容递送设备(多个)740。另外,芯片组705可包括对例如5.1环绕声和/或高清7.1环绕声的硬件和/或软件支持。驱动程序可以包括集成的图形平台的图形驱动程序。在各实施例中,图形驱动器可包括外围组件互连(PCI)快速(Express)图形卡。
在各实施例中,系统700中所示组件中的任意一个或多个可以是集成的。例如,可以集成平台702和内容服务设备(多个)730,或者也可以集成平台702和内容递送设备(多个)740,或者,例如,也可以集成平台702、内容服务设备(多个)730,以及内容递送设备(多个)740。在各实施例中,平台702和显示器720可以是集成单元。例如,可以集成显示器720和内容服务设备(多个)730,或者也可以集成显示器720和内容递送设备(多个)740。这些例子不旨在对本发明构成限制。
在各实施例中,系统700可实现为无线系统、有线系统或两者的组合。当实现为无线系统时,系统700可以包括适用于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发机、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括诸如RF频谱之类的无线范围的某些部分等等。当实现为有线系统时,系统700可以包括适用于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括,线路、电缆、金属导线、印刷电路板(PCB)、后面板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台702可以建立一个或多个逻辑或物理信道以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示旨在给用户的内容的任何数据。例如,内容示例可包括来自语音会话、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音会话的数据可以是,例如,言语信息、静默时间长度、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用来通过系统路由媒体信息,或指示节点以预先确定的方式处理媒体信息。然而,这些实施例不仅限于图4所示或描述的元件或背景。
如上文所描述的,系统700可以以不同的物理样式或形状因子来体现。图5示出其中可实现系统700的小形状因数设备800的实施例。在实施例中,例如,设备800可被实现为具有无线能力的移动计算设备的一部分。移动计算设备可以是指具有处理系统和移动电源(诸如,例如,一个或多个电池)的任何设备。
如上文所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息传送设备、数据通信设备等等。
移动计算设备的示例还可以包括被配置为由人佩带的计算机,诸如腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带计算机、臂带计算机、鞋计算机、衣服计算机,及其他可佩带的计算机。在各实施例中,例如移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管已经以实现为智能电话的移动计算设备为例描述了一些实施例,但可理解其他实施例也可利用其他无线移动计算设备来实现。这些实施例不限于这种背景。
在一些实施例中,处理器710可与相机722和全球定位系统传感器720通信。耦合至处理器710的存储器712可存储用于实现以软件和/或固件实施例示出于图4、图5和图6中的序列的计算机可读指令。
此处所描述的图形和/或视频处理技术可以以各种硬件体系结构来实现。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用单独的图形和/或视频处理器。作为又一实施例,图形和/或视频功能可由包括多核处理器的通用处理器实现。在又一实施例中,这些功能可实现在消费者电子设备中。
无线电718可以包括能够使用各种合适的无线通信技术传输和接收信号的一个或多个无线电。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络以及卫星网络。在跨这样的网络的通信中,无线电718可以根据任何版本的一个或多个适用的标准来操作。
在各实施例中,显示器720可包括任何电视机型监视器或显示器。显示器720可包括例如计算机显示屏、触摸屏显示器、视频监视器、电视机类设备和/或电视机。显示器720可以是数字和/或模拟的。在各实施例中,显示器720可以是全息显示器。此外,显示器720还可以是可接收视觉投影的透明表面。这样的投影可以传达各种形式的信息、图像,和/或对象。例如,这样的投影可以是用于移动增强的现实(MAR)应用程序的视觉覆盖。在一个或多个软件应用程序716的控制下,平台702可以在显示器722上显示用户界面720。
在各实施例中,内容服务设备730可由任何国内、国际和/或独立服务所主控,并因此可经由例如因特网对平台702访问。内容服务设备(多个)730可以耦合到平台702和/或显示器720。平台702和/或内容服务设备(多个)730可以耦合到网络760,以往返于网络760地通信(例如,发送和/或接收)媒体信息。内容递送设备740还可以耦合到平台702和/或显示器720。
在各实施例中,内容服务设备(多个)730可包括有线电视机顶盒、个人计算机、网络、电话、互联网启用设备或能够传递数字信息和/或内容的设施,以及能够经由网络760或直接地在内容提供者和平台702和/显示器720之间单向或双向地交换内容的任何其它类似设备。可以理解,内容可以通过网络760单向地和/或双向地传递往返于系统700中的组件中的任何一个和内容提供商。内容的示例可以包括任何媒体信息,包括,例如,视频、音乐、医疗和游戏信息等等。
内容服务设备(多个)730接收内容,诸如有线电视节目,包括媒体信息、数字信息和/或其他内容。内容提供商的示例可以包括任何有线或卫星电视或电台或因特网内容提供商。给出的例子不旨在对本发明的实施例构成限制。
在各实施例中,平台702可从具有一个或多个导航特征的导航控制器750接收控制信号。控制器750的导航特征可以被用来,例如,与用户界面722进行交互。在一些实施例中,导航控制器750可以是定点设备,它可以是允许用户将空间(例如连续和多维)数据输入到计算机中的计算机硬件组件(具体地说是人机接口设备)。诸如图形用户界面(GUI)、电视机和监视器之类的许多系统可使用户使用物理手势控制并向计算机或电视机提供数据。
控制器750的导航特征的移动可以通过指针、光标、焦点环,或显示在显示器上的其他可视指示器,反映到显示器(例如,显示器720)上。例如,在软件应用716的控制下,位于导航控制器750上的导航特征可以被映射到例如用户界面722上显示的虚拟导航特征。在各实施例中,控制器750可以不是单独组件,而是集成到平台702和/或显示器720上。然而,各实施例并不限于这些元件或本文中示出或描述的背景。
在各实施例中,驱动器(未示出)可包括技术,该技术例如当被启用时用于允许用户在最初引导之后通过触摸按钮立刻接通和切断类似电视机的平台702(例如当被启用时)。在平台被“关闭”时,程序逻辑可以允许平台702将内容流传输到媒体适配器或其他内容服务设备(多个)730或内容递送设备(多个)740。另外,芯片组705可包括对例如5.1环绕声和/或高清7.1环绕声的硬件和/或软件支持。驱动程序可以包括集成的图形平台的图形驱动程序。在各实施例中,图形驱动器可包括外围组件互连(PCI)快速(Express)图形卡。
在各实施例中,系统700中所示组件中的任意一个或多个可以是集成的。例如,可以集成平台702和内容服务设备(多个)730,或者也可以集成平台702和内容递送设备(多个)740,或者,例如,也可以集成平台702、内容服务设备(多个)730,以及内容递送设备(多个)740。在各实施例中,平台702和显示器720可以是集成单元。例如,可以集成显示器720和内容服务设备(多个)730,或者也可以集成显示器720和内容递送设备(多个)740。这些例子不旨在对本发明构成限制。
在各实施例中,系统700可实现为无线系统、有线系统或两者的组合。当实现为无线系统时,系统700可包括适于在无线共享介质上通信的组件和接口,例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等。无线共享介质的例子可包括无线频谱的多个部分,例如RF频谱等。当实现为有线系统时,系统700可以包括适用于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器、将I/O适配器与相应的有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可包括,线路、电缆、金属导线、印刷电路板(PCB)、后面板、交换机结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台702可以建立一个或多个逻辑或物理信道以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示给用户的内容的任何数据。例如,内容示例可包括来自语音会话、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音会话的数据可以是,例如,言语信息、静默时间长度、背景噪声、舒适噪声、音调等等。控制信息可以是指表示用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用来通过系统路由媒体信息,或指示节点以预先确定的方式处理媒体信息。然而,这些实施例不仅限于图4所示或描述的元件或背景。
如上文所描述的,系统700可以以不同的物理样式或形状因子来体现。图5示出其中可实现系统700的小形状因数设备800的实施例。在实施例中,例如设备800可被实现为具有无线能力的移动计算设备的一部分。移动计算设备可以是指具有处理系统和移动电源(诸如,例如,一个或多个电池)的任何设备。
如上文所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板电脑、触摸板、便携式计算机、手持式计算机、掌上电脑、个人数字助理(PDA)、蜂窝电话、蜂窝电话/PDA的组合、电视机、智能设备(例如,智能电话、智能平板电脑或智能电视机)、移动因特网设备(MID)、消息传送设备、数据通信设备等等。
移动计算设备的示例还可以包括被配置为由人佩带的计算机,诸如腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带计算机、臂带计算机、鞋计算机、衣服计算机,及其他可佩带的计算机。在各实施例中,例如移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管已经以实现为智能电话的移动计算设备为例描述了一些实施例,但可理解其他实施例也可利用其他无线移动计算设备来实现。这些实施例不限于这种背景。
如图5所示,设备800可包括外壳802、显示器804、输入/输出(I/O)设备806和天线808。设备800还可包括导航特征812。显示器804可包括用于显示适于移动计算设备的信息的任何合适的显示单元。I/O设备806可包括任何适当I/O设备,用以将信息输入到移动计算设备中。I/O设备806的示例可以包括字母数字键盘、数字小键盘、触摸板、输入键、按钮、开关、往复式开关、麦克风、扬声器、语音识别设备以及软件等等。信息还可以通过麦克风输入到设备800中。该信息可通过语音识别设备数字化。实施例不限于这种背景。
各个实施例可利用硬件部件、软件部件或两者的组合来实现。硬件部件的例子可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。确定实施例是否利用硬件部件和/或软件部件来实现可根据任意数量的因素变化,这些因素比如所期望的计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
各个实施例可利用硬件部件、软件部件或两者的组合来实现。硬件部件的例子可包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件的示例可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任意组合。确定实施例是否利用硬件部件和/或软件部件来实现可根据任意数量的因素变化,这些因素比如所期望的计算速率、功率电平、热容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。
在本说明书通篇中对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明包含的至少一个实现中。因此,短语“一个实施例”或“在一实施例中”的出现不一定指代同一实施例。此外,特定特征、结构或特性可按照与所说明的特定实施例不同的其他适当形式来创立,而且所有此类形式可涵盖在本申请的权利要求中。
虽然已经针对有限个实施例描述了本发明,但本领域技术人员将会理解从中得出的多种修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围中的所有这些修改和变化。
Claims (30)
1.一种方法,包括:
域着色对于第一面片的第一角;且
仅在第二面片的角并非所述第一角时域着色所述第二面片的所述角。
2.如权利要求1所述的方法,其特征在于,包括对于面片的每一个角提供唯一标识符。
3.如权利要求2所述的方法,其特征在于,包括使用标识符来确定角是否已经被域着色。
4.如权利要求3所述的方法,其特征在于,包括在高速缓存中存储哪些角已经被域着色的指示。
5.如权利要求1所述的方法,其特征在于,包括确定边缘和面片是否已经被域着色。
6.如权利要求5所述的方法,其特征在于,包括,如果边缘已经被域着色,则跳过对于接下来的面片内的所述边缘的域着色。
7.如权利要求6所述的方法,其特征在于,包括使用一个高速缓存来存储已经被域着色的边缘和角,并一次分析面片的所有角和边缘。
8.如权利要求1所述的方法,其特征在于,包括通过向给定面片添加新的角来外壳着色给定面片。
9.如权利要求8所述的方法,其特征在于,包括在面片的中心形成新的角,且定义各自在所述面片内具有相同角的一组四个三角形。
10.如权利要求9所述的方法,其特征在于,包括自动确定所述新角的唯一标识符。
11.一种存储指令的非瞬态计算机可读介质,所述指令使处理器能执行一种方法,所述方法包括:
域着色第一面片的第一角;且
仅在第二面片的角并非所述第一角时域着色所述第二面片的所述角。
12.如权利要求11所述的介质,其特征在于,包括对于面片的每一个角提供唯一标识符。
13.如权利要求12所述的介质,其特征在于,包括使用标识符来确定角是否已经被域着色。
14.如权利要求13所述的介质,其特征在于,包括在高速缓存中存储哪些角已经被域着色的指示。
15.如权利要求11所述的介质,其特征在于,包括确定边缘和面片是否已经被域着色。
16.如权利要求15所述的介质,其特征在于,如果边缘已经被域着色,则跳过对于接下来的面片内的所述边缘的域着色。
17.如权利要求16所述的介质,其特征在于,包括使用一个高速缓存来存储已经被域着色的边缘和角,并一次分析面片的所有角和边缘。
18.如权利要求11所述的介质,其特征在于,包括通过向给定面片添加新的角来外壳着色给定面片。
19.如权利要求18所述的介质,其特征在于,包括在面片的中心形成新的角,且定义各自在所述面片内具有相同角的一组四个三角形。
20.如权利要求19所述的介质,其特征在于,包括自动确定所述新角的唯一标识符。
21.一种装置,包括:
处理器,用于域着色第一面片的第一角,且仅在第二面片的角并非所述第一角时域着色所述第二面片的所述角;和
符合所述处理器的存储器。
22.如权利要求21所述的装置,其特征在于,所述处理器用于对于面片的每一个角提供唯一标识符。
23.如权利要求22所述的装置,其特征在于,所述处理器用于使用标识符来确定角是否已经被域着色。
24.如权利要求23所述的装置,其特征在于,所述处理器用于在高速缓存中存储哪些角已经被域着色的指示。
25.如权利要求21所述的装置,其特征在于,所述处理器用于确定边缘和面片是否已经被域着色。
26.如权利要求25所述的装置,其特征在于,所述处理器用于,如果边缘已经被域着色,则跳过对于接下来的面片内的所述边缘的域着色。
27.如权利要求26所述的装置,其特征在于,所述处理器用于使用一个高速缓存来存储已经被域着色边缘和角,并一次分析面片的所有角和边缘。
28.如权利要求21所述的装置,其特征在于,所述处理器用于通过向给定面片添加新的角来外壳着色给定面片。
29.如权利要求28所述的装置,其特征在于,所述处理器用于在面片的中心形成新的角,且定义各自在所述面片内具有相同角的一组四个三角形。
30.如权利要求29所述的装置,其特征在于,所述处理器用于自动确定所述新角的唯一标识符。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/068076 WO2013101177A1 (en) | 2011-12-30 | 2011-12-30 | Reducing the domain shader/tessellatorinvocations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104025030A true CN104025030A (zh) | 2014-09-03 |
CN104025030B CN104025030B (zh) | 2017-08-29 |
Family
ID=48698411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180076157.7A Expired - Fee Related CN104025030B (zh) | 2011-12-30 | 2011-12-30 | 减少域着色器/镶嵌器调用的方法、装置及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9449420B2 (zh) |
CN (1) | CN104025030B (zh) |
TW (2) | TWI556191B (zh) |
WO (1) | WO2013101177A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160093102A1 (en) * | 2014-09-25 | 2016-03-31 | Peter L. Doyle | Efficient tessellation cache |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08194702A (ja) * | 1995-01-19 | 1996-07-30 | Canon Inc | 情報処理装置及びその文字キャッシュ方法 |
US6707452B1 (en) * | 2000-07-19 | 2004-03-16 | Pixar | Method and apparatus for surface approximation without cracks |
CN101963953A (zh) * | 2010-09-08 | 2011-02-02 | 东莞电子科技大学电子信息工程研究院 | 一种移动富媒体播放器的缓存优化方法 |
CN102201108A (zh) * | 2010-03-08 | 2011-09-28 | 英特尔公司 | 边缘处理技术 |
US20110267346A1 (en) * | 2010-04-30 | 2011-11-03 | John William Howson | Tessellation of patches of surfaces in a tile based rendering system |
CN102272798A (zh) * | 2008-12-31 | 2011-12-07 | 英特尔公司 | 曲面细分时间随曲面细分量线性增长的镶嵌器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7038692B1 (en) * | 1998-04-07 | 2006-05-02 | Nvidia Corporation | Method and apparatus for providing a vertex cache |
US7895036B2 (en) | 2003-02-21 | 2011-02-22 | Qnx Software Systems Co. | System for suppressing wind noise |
US8490065B2 (en) * | 2005-10-13 | 2013-07-16 | International Business Machines Corporation | Method and apparatus for software-assisted data cache and prefetch control |
US8482560B2 (en) * | 2008-12-31 | 2013-07-09 | Intel Corporation | Image forming techniques |
US8384715B2 (en) * | 2009-04-13 | 2013-02-26 | Microsoft Corporation | View-dependent rendering of parametric surfaces |
US8698802B2 (en) | 2009-10-07 | 2014-04-15 | Nvidia Corporation | Hermite gregory patch for watertight tessellation |
US8144147B2 (en) * | 2010-04-07 | 2012-03-27 | Intel Corporation | Hierarchical bounding of displaced parametric surfaces |
-
2011
- 2011-12-30 US US13/992,966 patent/US9449420B2/en not_active Expired - Fee Related
- 2011-12-30 WO PCT/US2011/068076 patent/WO2013101177A1/en active Application Filing
- 2011-12-30 CN CN201180076157.7A patent/CN104025030B/zh not_active Expired - Fee Related
-
2012
- 2012-12-26 TW TW104114061A patent/TWI556191B/zh not_active IP Right Cessation
- 2012-12-26 TW TW101150124A patent/TWI489412B/zh not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08194702A (ja) * | 1995-01-19 | 1996-07-30 | Canon Inc | 情報処理装置及びその文字キャッシュ方法 |
US6707452B1 (en) * | 2000-07-19 | 2004-03-16 | Pixar | Method and apparatus for surface approximation without cracks |
CN102272798A (zh) * | 2008-12-31 | 2011-12-07 | 英特尔公司 | 曲面细分时间随曲面细分量线性增长的镶嵌器 |
CN102201108A (zh) * | 2010-03-08 | 2011-09-28 | 英特尔公司 | 边缘处理技术 |
US20110267346A1 (en) * | 2010-04-30 | 2011-11-03 | John William Howson | Tessellation of patches of surfaces in a tile based rendering system |
CN101963953A (zh) * | 2010-09-08 | 2011-02-02 | 东莞电子科技大学电子信息工程研究院 | 一种移动富媒体播放器的缓存优化方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201535313A (zh) | 2015-09-16 |
US9449420B2 (en) | 2016-09-20 |
TW201344624A (zh) | 2013-11-01 |
WO2013101177A1 (en) | 2013-07-04 |
CN104025030B (zh) | 2017-08-29 |
TWI556191B (zh) | 2016-11-01 |
US20140198120A1 (en) | 2014-07-17 |
TWI489412B (zh) | 2015-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104951263B (zh) | 避免向显示器发送未改变的区域 | |
CN104715501B (zh) | 解耦的着色流水线 | |
CN103546158B (zh) | 用于图形处理的方法、系统和装置 | |
WO2018035505A1 (en) | Operations using sparse volumetric data | |
US20130187947A1 (en) | Graphics Tiling Architecture With Bounding Volume Hierarchies | |
US9582924B2 (en) | Facilitating dynamic real-time volumetric rendering in graphics images on computing devices | |
WO2017105607A1 (en) | Compressed bounding volume hierarchy | |
CN104704469B (zh) | 动态地重新平衡图形处理器资源 | |
CN105051792A (zh) | 用于使用深度映射和光源合成增强3d图像的设备 | |
TWI595439B (zh) | 鑲嵌後邊緣快取 | |
CN104050634B (zh) | 丢弃过滤器抽头的纹理地址模式 | |
TWI517086B (zh) | 用於去耦取樣為主描繪管線之低功率質心決定及紋理覆蓋區最佳化 | |
US10593095B2 (en) | Facilitating increased precision in mip-mapped stitched textures for graphics computing devices | |
CN104756150A (zh) | 深度缓冲 | |
CN105229695A (zh) | 图形数据的基于子集的压缩和解压缩 | |
CN104067318A (zh) | 使用三维光栅化的时间连续碰撞检测 | |
CN104035540A (zh) | 在图形渲染期间降低功耗 | |
CN103518227A (zh) | 用于随机运动模糊栅格化的深度缓冲器压缩 | |
CN104584544A (zh) | 使用一般化平面编码的随机深度缓冲器压缩 | |
CN103632337A (zh) | 实时的顺序无关透明渲染 | |
CN104025031A (zh) | 减少应用中对共享存储器单元执行的顺序操作的数量 | |
CN104737198A (zh) | 在输入几何对象粒度上记录可见度测试的结果 | |
CN104603844A (zh) | 减小的位计数多边形光栅化 | |
CN104040589A (zh) | 使用随机光栅化生成随机采样分布 | |
CN105103512A (zh) | 分布式图形处理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170829 Termination date: 20211230 |