执行指令的图形处理设备和方法与流程

文档序号:14187022阅读:253来源:国知局

本申请要求于2016年10月5日提交到韩国知识产权局的申请号为10-2016-0128566的韩国专利申请的权益,所述申请的全部公开通过引用合并于此以用于各种目的。

本公开涉及一种执行指令的图形处理设备和方法。



背景技术:

三维图形应用程序接口(api)标准的示例包括:opengl、opengles、khronos的vulkan和微软的direct3d。api标准包括针对每帧执行渲染并显示图像的方法。当执行针对每帧的渲染时,执行了大量计算并且消耗了大量的计算能力。需要在执行渲染时降低计算量以及存储器访问的次数。



技术实现要素:

提供本发明内容来以简要形式介绍将在以下的具体实施方式中被进一步描述的概念的选择。本发明内容并不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用作帮助确定所要求保护的主题的范围。

在一个总体方面,提供了一种执行指令的方法,所述方法包括:接收指令;产生表示作为渲染的结果被输出的分量的输出掩码;确定包括在指令掩码和输出掩码中的共有分量;执行指令之中包括所述共有分量的指令,其中,指令掩码表示受每个指令影响的分量。

产生输出掩码的步骤可包括:根据应用于显示装置的每个像素的分量,产生针对每个像素的输出掩码。

产生输出掩码的步骤可包括:产生表示显示装置的应用了红色分量与绿色分量的像素和显示装置的应用了绿色分量与蓝色分量的像素的输出掩码。

产生输出掩码的步骤可包括:当使用子像素渲染方法渲染像素时,基于像素的覆盖范围,产生表示在像素的分量之中的将被渲染的分量的输出掩码。

执行指令的步骤可包括:响应于对包括所述共有分量的另一指令有影响的指令不包括所述共有分量,执行所述对包括所述共有分量的另一指令有影响的指令。

执行指令的步骤可包括:执行包括所述共有分量的指令,并且跳过不包括所述共有分量的指令。

产生输出掩码的步骤可包括:产生针对在相同的绘图背景(drawcontext)内的每个像素的输出掩码。

分量可包括:红色分量、蓝色分量、绿色分量、透明度分量和深度分量。

在另一总体方面,提供了一种用于执行指令的图形处理单元(gpu),所述gpu包括:存储器;处理器,被配置为接收指令,产生表示作为渲染的结果被输出的分量的输出掩码,确定包括在指令掩码和输出掩码中的共有分量,执行指令之中包括所述共有分量的指令,其中,指令掩码表示受每个指令影响的分量。

处理器可被配置为:根据应用于显示装置的每个像素的分量,产生针对每个像素的输出掩码。

处理器可被配置为:产生表示显示装置的应用了红色分量与绿色分量的像素和显示装置的应用了绿色分量与蓝色分量的像素的输出掩码。

处理器可被配置为:当使用子像素渲染方法渲染像素时,基于像素的覆盖范围,产生表示在像素的分量之中的将被渲染的分量的输出掩码。

处理器可被配置为:响应于对包括所述共有分量的另一指令有影响的指令不包括所述共有分量,执行所述对包括所述共有分量的另一指令有影响的指令。

处理器可被配置为:执行包括所述共有分量的指令并且跳过不包括所述共有分量的指令。

处理器可被配置为:产生针对在相同的绘图背景内的每个像素的输出掩码。

输出掩码可与帧缓冲器中的像素的有效分量相应。

在另一总体方面,提供了一种数字装置,包括:显示器;存储器,被配置为存储指令和将被显示在显示器上的数据;以及处理器,被配置为接收指令,产生表示作为渲染的结果被输出在显示器上的分量的输出掩码,确定包括在指令掩码和输出掩码中的共有分量,并执行指令之中包括所述共有分量的指令,其中,指令掩码表示受每个指令影响的分量。

其它特征和方面从以下详细描述、附图和权利要求将是清楚的。

附图说明

图1是示出处理三维(3d)图像的示例的示图。

图2是示出计算设备的示例的示图。

图3是示出图形处理单元(gpu)执行指令的方法的示例的示图。

图4是示出基于显示装置执行指令的方法的示例的示图。

图5是示出被应用于pentile显示装置的输出掩码的示例的示图。

图6是示出pentile显示装置的示例的示图。

图7是示出基于指令掩码和输出掩码来确定指令是否被执行的方法的示例的示图。

图8是示出确定不被执行的指令的方法的示例的示图。

图9是示出确定不被执行的指令的方法的示例的示图。

图10是示出基于渲染方法执行指令的方法的示例的示图。

图11是示出根据子像素渲染产生输出掩码的方法的示例的示图。

图12是示出gpu执行指令的方法的示例的示图。

贯穿附图和详细描述,除非被另外描述或提供,否则相同的参考标号将被理解为是指相同的元件、特征和结构。附图可不按比例,并且为了清晰、说明和便利,可夸大附图中的元件的相对大小、比例和描述。

具体实施方式

下面的详细描述被提供以帮助读者全面地理解这里描述的方法、设备和/或系统。然而,在理解本申请的公开后,此处描述的方法、设备和/或系统的各种改变、修改和等同形式将是清楚的。例如,此处描述的操作的顺序仅是示例,并且不局限于这里所阐述的,而是除了必须按一定顺序发生的操作以外,可在理解本申请的公开后如所清楚的那样被改变。此外,为了更加清楚和简洁,可省略本领域公知的特征的描述。

此处描述的特征可以以不同的形式实现,并且不应被解释为限于此处描述的示例。相反地,此处描述的示例仅被提供以说明在理解了本申请的公开后将清楚的实施此处描述的方法、设备和/或系统的许多可能方式中的一些方式。

图1是示出处理三维(3d)图像的处理的示例的示图。参照图1,处理3d图像的处理包括操作11到操作17。操作11到操作13是几何处理操作,操作14到操作17是像素处理操作。

操作11是产生指示图像的顶点的操作。产生顶点以指示图像中包括的对象。

操作12是对产生的顶点进行着色的操作。顶点着色器可通过对操作11中产生的顶点的颜色进行定义来执行顶点着色。

操作13是产生基元(primitive)的操作。基元表示由顶点形成的点、线或多边形。例如,基元可表示通过连接顶点而形成的三角形。

操作14是对基元进行光栅化的操作。对基元进行光栅化表示将基元划分为多个片段。片段是构成基元的单位,并且可以是用于执行图像处理的基本单元。基元仅包括关于顶点的信息。因此,当在对基元进行光栅化的操作中在顶点之间产生片段时执行内插。

操作15是对像素进行着色的操作。在图1中,按照像素单元执行着色。然而,也可按照片段单元执行着色。例如,对像素或片段进行着色表示定义像素或片段的颜色。

操作16是对像素或片段进行纹理化的操作。纹理化操作是当对像素或片段的颜色进行定义时使用先前产生的图像的操作。例如,着色操作通过计算来执行是否对片段指定任何颜色,但是纹理化操作是对与先前产生的图像相应的片段指定与先前产生的图像的颜色相同的颜色的操作

在操作15或操作16,需要许多计算来对每个像素或片段进行着色或纹理化。因此,通过有效地执行着色操作或纹理化操作来降低计算量是有益的。隐藏表面去除(hsr)方法是一种在着色处理中降低计算量的代表性方法。hsr方法是一种不对下述对象执行着色的方法:该对象被置于该对象前面的另一对象所覆盖。

操作17是测试和混合操作。

操作18是对存储在帧缓冲器中的帧进行显示的操作。通过操作11至操作17产生的帧被存储在帧缓冲器中。存储在帧缓冲器中的帧通过显示装置被显示。

图2是示出计算设备1的示例的示图。

参照图2,在示例中,计算设备1包括:图形处理单元(gpu)10、中央处理器(cpu)20、存储器30、显示装置40和总线50。虽然与本示例相关的组件在图2的计算设备1中被示出,但是本领域技术人员理解还可包括其他常见组件。

仅作为非穷举的例证,计算设备1可被嵌入在各种数字装置或与各种数字装置(诸如,例如智能代理、移动电话、手机、智能电话、可穿戴智能装置(诸如,例如戒指、手表、一副眼镜、眼镜式装置、手镯、脚踝支架(anklebracket)、腰带、项链、耳环、头巾、头盔、嵌入织物中的装置)、个人计算机(pc)、膝上型计算机、笔记本电脑、小型笔记本电脑、上网本、或超移动pc(umpc)、平板个人计算机(平板)、平板手机、移动互联网装置(mid)、个人数字助理(pda)、企业数字助理(eda)、数码相机、数码摄像机、便携式游戏机、mp3播放器、便携式/个人多媒体播放器(pmp)、头戴式显示器(hmd)装置、手持电子书、超移动个人计算机(umpc)、便携式膝上型pc、全球定位系统(gps)导航仪、个人导航装置或便携式导航装置(pnd)、手持游戏机、电子书、以及诸如高清电视(hdtv)、光盘播放器、dvd播放器、蓝光播放器、机顶盒、机器人吸尘器、家用电器、内容播放器、通信系统、图像处理系统、图形处理系统、其他消费电子/信息技术(ce/it)装置的装置,或与此处公开一致的能够进行无线通信或网络通信的任何其他装置)进行互操作。在另一示例中,计算设备1可被实现在智能家电、智能汽车、用于自动驾驶的设备、智能家居环境、智能建筑环境、智能办公环境、办公自动化、智能电子秘书系统或通过网络控制的各种其他物联网(iot)装置中。也就是说,计算设备1是具有用于显示内容的图形处理功能的装置,并且计算设备1中还可包括各种装置或者计算设备1可被包括在各种其他装置中。

在示例中,cpu20是控制计算设备1的总体操作和功能的硬件。例如,cpu20可驱动操作系统(os),为gpu10调用图形应用编程接口(api),并运行gpu10的驱动器。此外,cpu20可执行存储于存储器30中的各种应用,诸如网页浏览应用、游戏应用和视频应用。

此外,cpu20可执行存储于存储器30中的编译程序。编译程序可将从应用接收的命令转换为由gpu10执行的指令。编译程序向gpu10输出指令。编译程序可为每个指令产生指令掩码。指令掩码表示受指令影响的分量。产生的指令掩码被输出到gpu10。指令掩码可由cpu20、编译程序、gpu10和光栅化器产生。在示例中,光栅化器可用执行固定功能的硬件来实现。

gpu10是执行图形流水线100的装置,并且可对应于专用图形处理器。gpu10可以是被配置为执行3维(3d)图形流水线以将3d图像中的3d对象渲染为用于显示的2d图像的硬件。例如,gpu10可执行各种功能(诸如着色、混合和照明),并可执行用于产生将被显示的像素的像素值的各种功能。gpu10也可执行针对基于单元块(tile)的渲染(tbr)的基于单元块的图形流水线。

gpu10可包括至少一个处理器。处理器可根据程序执行各种操作。gpu10还可包括执行具体操作的硬件(诸如,例如光栅化器或着色器)。

参照图2,由gpu10处理的图形流水线100可对应于由图形api(诸如,各种版本的directx或openglapi)中的任意一个api定义的图形流水线。换言之,图形流水线100不限于一个版本或一种类型的api,并且可被应用于各种api。

存储器30是存储由计算设备1处理的各种类型的数据的硬件,并可存储由gpu10和cpu20处理或将被gpu10和cpu20处理的数据。此外,存储器30可存储将被gpu10和cpu20驱动的应用和驱动器。在示例中,存储器30包括:随机存取存储器(ram)(诸如动态随机存取存储器(dram)或静态随机存取存储器(sram))、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、cd-rom、蓝光或另一光盘存储器、硬盘驱动器(hdd)、固态驱动器(ssd)或闪存。在示例中,存储器30包括可由计算设备1访问的外部存储器装置。下面描述了存储器30的其他非穷举示例。

存储器30可包括帧缓冲器,帧缓冲器可存储将被输出到显示装置40的图像。

显示装置40是显示由gpu10处理的图像的硬件。显示装置40包括具有预定分辨率的屏幕像素,并且gpu10对与所述预定分辨率对应的图像进行渲染。显示装置40用各种类型的显示面板(诸如,例如液晶显示器(lcd)、薄膜晶体管(tft-lcd)显示器、发光二极管(led)显示器、有源矩阵oled(amoled)显示器、有机发光二极管(oled)、柔性显示器或等离子显示面板(pdp))实现。例如,显示装置40可以是pentile显示装置。pentile显示装置的一个像素可仅包括所有分量中的一些。分量的示例可包括r、g、b和a。r是红色分量(或红色通道),g是绿色分量(或绿色通道),b是蓝色分量(或蓝色通道),a是alpha分量(或alpha通道)。r、g和b表示颜色,a表示透明度。例如,pentile显示装置的第一像素可包括红色分量和绿色分量,pentile显示装置的第二像素可包括绿色分量和蓝色分量。深度分量也可以是分量的示例。

总线50是连接计算设备1中的其他硬件的硬件,诸如,例如外围组件互连(pci)总线或pciexpress总线。总线50确保其他硬件可对彼此发送或接收数据。

图3是示出根据实施例的gpu10执行指令的方法的示例的示图。图3中的操作可以以如所示的顺序和方式被执行,但在不脱离所描述的示出性示例的精神和范围的情况下,可改变一些操作的顺序或者省略一些操作。图3中示出的许多操作可被并行执行或同时执行。图3的一个或更多个框以及框的组合可由执行特定功能的基于特定用途的硬件的计算机实现,或由特定用途的硬件和计算机指令的组合实现。除了以下图3的描述之外,以上图1至图2的描述也可应用于图3,并且通过引用合并于此。因此,以上描述可不在这里重复。

参照图3,gpu10可仅执行包括共有分量的指令。共有分量是包括在指令掩码和输出掩码中的分量。在310,gpu10产生针对每个像素的线程。例如,gpu可产生像素着色线程。针对一个像素产生一个线程。每个线程可执行针对每个像素的指令。

在320,gpu10产生针对每个像素的输出掩码。输出掩码表示被应用于将被显示的图像的分量。换言之,输出掩码表示针对帧缓冲器中的像素的有效分量。可针对每个像素产生输出掩码。可通过光栅化器或像素着色器产生输出掩码。

可根据显示装置40的特征产生输出掩码。在示例实施例中,在pentile显示装置中,针对每个像素指定颜色分量。gpu10产生包括针对每个像素指定的颜色分量的输出掩码。

在另一示例中,根据显示图像的方法产生输出掩码。在示例中,gpu10使用子像素渲染方法产生图像。gpu10在对曲线进行光栅化时产生关于包括所述曲线的像素的覆盖,并可指定存在覆盖的颜色分量作为输出掩码。覆盖表示占据一个像素的颜色分量之中的曲线所穿过的颜色分量。

在330,gpu10确定是否存在被包括在指令掩码和输出掩码中的分量。gpu10可将被共同包括在指令掩码和输出掩码中的分量确定为共有分量。例如,当指令掩码是rxxx并且输出掩码是rgxx时,gpu10将r确定为共有分量。

在340,gpu10跳过不包括共有分量的指令。跳过指令表示gup10不执行指令。

在350,gpu10执行包括共有分量的指令。如果不包括共有分量的指令的执行结果对包括共有分量的另一指令有影响,则gpu10还执行该不包括共有分量的指令。因此,gpu10可执行包括共有分量的指令和对包括共有分量的指令有影响的指令。

在360,gpu10确定当前被处理的指令是否是最后的指令。如果当前被处理的指令是最后的指令,则gpu10结束操作。如果当前被处理的指令不是最后的指令,则gpu10进入操作370。

在370,gpu处理下一指令。

图4是示出基于显示装置执行指令的方法的示例的示图。图4中的操作可以以如所示的顺序和方式被执行,但在不脱离所描述的示出性示例的精神和范围的情况下,可改变一些操作的顺序或者省略一些操作。图4中示出的许多操作可被并行执行或同时执行。图4的一个或更多个框以及框的组合可通过执行特定功能的基于特定用途的硬件的计算机实现,或通过特定用途的硬件和计算机指令的组合实现。除了以下图4的描述之外,以上图1至图3的描述也可应用于图4,并可通过引用合并于此。因此,以上描述可不在这里重复。

在410,gpu10产生指令掩码。在示例中,被应用于指令的分量彼此不同。gpu10产生仅包括针对指令所需的分量的指令掩码。gpu10可产生针对每个指令的指令掩码。

在420,gpu10产生针对每个像素的线程。

在430,gpu10产生表示被应用于显示装置40的每个像素的分量的输出掩码。被应用于像素的颜色分量可根据显示装置40而彼此不同。例如,当显示装置40是pentile显示装置时,第一像素可使用红色分量和绿色分量,第二像素可使用绿色分量合蓝色分量。因此,当gpu10产生针对每个像素的输出掩码时,gpu10产生与针对第一像素的rgxx对应的输出掩码,并且产生与针对第二像素的xgbx对应的输出掩码。第一像素是与第二像素邻近的像素。

在440,gpu10执行包括被包括在指令掩码和输出掩码中的共有分量的指令。gpu10跳过并且不执行不包括共有分量的指令。当产生了指令掩码和输出掩码时,gpu10将指令分类为将被执行的指令和将不执行的指令。

图5是示出被应用于pentile显示装置530的输出掩码的示例的示图。参照图5,像素着色器510可仅执行针对被应用于pentile显示装置530的每个像素的分量指令。

像素着色器510对每个像素进行渲染。像素着色器510可产生针对每个像素的线程,并且线程可对每个像素进行渲染。

像素着色器510基于应用于pentile显示装置510的每个像素的颜色分量来产生输出掩码。由于并非对pentile显示装置510的每个像素应用所有的颜色分量,因此像素着色器510不执行针对所有颜色分量的指令。因此,像素着色器510可在向帧缓冲器520存储渲染的结果时存储所需的颜色分量的结果值。

例如,pentile显示装置530可包括仅应用了r分量与g分量的像素以及仅应用了b分量与g分量的像素。像素着色器510根据应用了指令的像素,仅执行对r分量与g分量有影响的指令或仅执行对b分量与g分量有影响的指令。当仅r分量与g分量被应用于第一像素时,像素着色器510仅执行针对第一像素的指令之中的对r分量和g分量有影响的指令,并将结果值存储到帧缓冲器520。

在示例中,在将像素着色器510的输出值存储到帧缓冲器520中之前执行混合以及深度/模板(stencil)测试。然而,为了方便,不描述混合和深度/模板测试。

图6是示出pentile显示装置600的示例的示图。

参照图6,pentile显示装置600包括两种类型的像素。第一像素610仅包括g分量与b分量。因此,针对第一像素610的输出掩码是xgbx。第二像素620仅包括g分量与r分量。因此,针对第二像素620的输出掩码是rgxx。

pentile显示装置600按照第一像素610和第二像素620交替重复的形式被构造。因此,r分量、g分量、b分量和g分量以这里陈述的顺序重复。然而,g分量相比r分量和b分量占据相对小的区域。

像素着色器510基于构成第一像素610和第二像素620的颜色分量,产生针对第一像素610和第二像素620中的每一个的输出掩码。像素着色器510在对第一像素610进行渲染时使用针对第一像素610的输出掩码xgbx,并且在对第二像素620进行渲染时使用针对第二像素620的输出掩码rgxx。

图7是示出基于指令掩码和输出掩码来确定指令是否被执行的方法的示例的示图。作为示例,图7示出第一指令到十指令是否被执行。

指令掩码710表示针对第一指令到第十指令中的每个指令的分量。例如,第一指令的指令掩码是rgba,第十指令的指令掩码是rxxx。此处,x表示对指令没有影响的分量。因此,第十指令对r分量有影响。

输出掩码720表示根据显示装置40所应用的分量。例如,输出掩码可以是rgxx或xgbx。

表730是基于指令掩码710和输出掩码720而产生的。表730表示指令是否被执行。“e”表示指令被执行,“-”表示指令不被执行并且被跳过。

例如,第一指令关于输出掩码720的rgxx和xgbx而被执行。当应用了输出掩码720的rgxx时执行第六指令,但是当应用了输出掩码720的xgbx时不执行第六指令。第八指令关于输出掩码720的rgxx和xgbx不被执行。

图8是示出确定不被执行的指令的方法的示例的示图。参照图8,第一线程800可跳过由x指示的指令而不执行由x指示的指令。属性表示输入变量。属性0包括x、y和z作为输入变量,属性1包括x和y作为输入变量,属性2包括x、y、z和w作为输入变量。

第一线程800中的四边形表示指令。像素着色器的输出分量可以是r分量、g分量、b分量或a分量。第一线程800是根据通过对基元进行光栅化而获取的结果所产生的。图8的第一线程800可渲染第一像素,图9的第二线900程可渲染第二像素。

在图8中,pentile显示装置的分量是r分量或g分量。在图9中,pentile显示装置的分量是g分量或b分量。

如图8中所示,当显示装置40是pentile显示装置时,pentile显示装置的分量可以是r分量或g分量。在这种情况下,b分量和a分量是不必要的分量,并且像素着色器不需要渲染b分量和a分量。因此,第一线程800识别仅包括b分量或a分量的指令,并且不执行仅包括b分量或a分量的指令。

在示例中,第一线程800反过来搜索仅包括b分量或a分量的指令,并在仅包括b分量或a分量的指令之中确定不必要的指令。第一线程800不包括第四级的指令之中的仅包括b分量或a分量的两个指令(第四级中由x指示的四边形)。此外,第一线程800不包括第三级的指令之中的仅包括b分量或a分量的两个指令。由于第二级中的两个指令中的一个指令包括r分量和g分量,并且所述两个指令中的另一个指令包括r分量、g分量、b分量和a分量,因此不排除第二级的所述两个指令。在第一级,在针对属性2的指令之中,仅排除了仅包括b分量的指令。因此,在图8的实施例中,第一线程800可跳过五个指令。

即使指令不包括共有分量,但如果该指令是对另一指令有影响的指令,则第一线程800不跳过该指令并且执行该指令。例如,尽管属性0的第一级的第三指令(阴影的四边形)是仅包括b分量的指令,但是由于第三指令是对第二级的第二指令有影响的指令,因此第三指令不被跳过。

图9是示出确定不被执行的指令的方法的示例的示图。

在图9中,pentile显示装置的分量是g分量或b分量。换言之,只有g分量和b分量被应用于第二像素。因此,不需要r分量和a分量,并且像素着色器不需渲染r分量和a分量。因此,第二线程900识别仅包括r分量或a分量的指令,并且不执行仅包括r分量或a分量的指令。

在示例中,第二线程900反过来搜索仅包括r分量或a分量的指令,并在仅包括r分量或a分量的指令之中确定不必要的指令。第二线程900不包括第四级的指令之中的仅包括r分量或a分量的两条指令(第四级中由x表示的四边形)。此外,第二线程900不包括第三级的指令之中的仅包括r分量或a分量的两个指令。由于第二层的两个指令中的一个指令包括r分量和g分量,并且所述两个指令中的另一个指令包括r分量、g分量、b分量和a分量,因此不排除第二级的所述两个指令。在第一级,在针对属性2的指令中,仅排除了仅包括r分量的指令。因此,在图9的实施例中,第二线900可跳过五个指令。

图10是示出基于渲染方法执行指令的方法的示例的示图。图10中的操作可以以如所示的顺序和方式被执行,但在不脱离所描述的示出性示例的精神和范围的情况下,可改变一些操作的顺序或者省略一些操作。图10中示出的许多操作可被并行执行或同时执行。图10的一个或更多个框以及框的组合可通过执行特定功能的基于特定用途的硬件的计算机实现,或通过特定用途的硬件和计算机指令的组合实现。除了以下图10的描述之外,以上图1至图9的描述也可应用于图10,并可通过引用合并于此。因此,以上描述可不在这里重复。当gpu10根据子像素渲染方法执行渲染时,gpu10可根据像素中所包括的每个分量是否被包括在曲线中而执行指令。

在1010,当对曲线进行光栅化时,gpu10产生针对包括曲线的像素的输出掩码。gpu10对包括曲线的像素中的被包括在曲线中的分量和未被包括在曲线中的分量进行区分。gpu10产生仅包括曲线中所包括的分量的输出掩码。例如,当一个像素包括r分量、g分量和b分量,并且曲线仅穿过r分量、g分量和b分量的区域之中的r分量的区域时,gpu10产生仅包括r分量的输出掩码。gpu10可针对像素产生不同的输出掩码。

在1020,gpu10产生针对每个像素的线程。所述线程可使用在操作1010中产生的输出掩码来针对每个像素执行渲染。

在1030,由gpu10产生的线程仅执行包括被包括在指令掩码和输出掩码中的共有分量的指令。指令掩码是根据指令产生的。例如,当指令掩码是rgxx并且输出掩码是rxxx时,线程执行指令。然而,当指令掩码是xgxx并且输出掩码是rxxx时,线程跳过指令。

图11是示出根据子像素渲染产生输出掩码的方法的示例的示图。参照图11,gpu10可产生包括曲线穿过的分量的输出掩码。

图像1110包括字符s。放大的图像1120是图像1110的一部分被放大的图像。曲线1140穿过多个像素。然而,由于曲线1140仅穿过像素1130的一部分,因此当渲染像素1130时,gpu10可仅渲染像素1130的一些分量。如图11中所示,曲线1140仅穿过b分量的一部分。因此,当渲染像素1130时,gpu10仅渲染b分量。gpu10产生xxbx作为针对像素1130的输出掩码,并且当执行着色时应用xxbx作为针对像素1130的输出掩码。

图12是示出gpu执行指令的方法的示例的示图。图12中的操作可以以如所示的顺序和方式被执行,但在不脱离所描述的示出性示例的精神和范围的情况下,可改变一些操作的顺序或者省略一些操作。图12中示出的许多操作可被并行执行或同时执行。图12的一个或更多个框以及框的组合可通过执行特定功能的基于特定用途的硬件的计算机实现,或通过特定用途的硬件和计算机指令的组合实现。除了以下图12的描述之外,以上图1至图11的描述也可应用于图12,并可通过引用合并于此。因此,以上描述可不在这里重复。

在1210,gpu10接收指令。编译器产生指令并将指令输出到gpu10。

在1220,gpu10产生表示作为渲染的结果被输出的分量的输出掩码。在示例中,gpu10根据显示装置40的属性或渲染方法产生输出掩码。

在1230,gpu10确定被包括在指令掩码和输出掩码中的共有分量。gpu10识别针对每个指令所应用的指令掩码。gpu10识别针对每个像素所应用的输出掩码。多个指令可针对一个像素而被执行。指令掩码表示受每个指令影响的分量。

在1240,gpu10执行指令之中包括共有分量的指令。gpu10不执行不包括共有分量的指令。然而,gpu10不跳过对另一指令有影响的指令,即使该指令是不包括共有分量的指令也是如此。gpu10仅输出针对共有分量的结果作为指令执行的结果。在相同的绘图背景中产生的线程可基于不同的共有分量执行指令,并且所述线程可输出针对不同分量的结果。换言之,像素着色器510可对根据线程选择性地输出的分量的类型和数量进行调整。例如,第一线程可输出针对r分量和g分量的结果,并且第二线程可输出针对g分量、b分量和a分量的结果。绘图背景是当渲染一帧时使用的格式的示例。

在本申请中描述的执行操作的设备、单元、模块、装置和其他组件由硬件组件实现。硬件组件的示例包括控制器、传感器、产生器、驱动器和本领域的普通技术人员所熟知的任何其他电子组件。在一个示例中,硬件组件由一个或更多个处理器或计算机实现。可适合用于执行本申请中描述的操作的硬件组件的示例包括控制器、传感器、产生器、驱动器、存储器以及被配置为执行本申请中描述的操作的任何其他电子组件。在其他示例中,执行本申请中描述的操作的一个或更多个硬件组件由计算硬件实现,例如,由一个或更多个处理器或计算机实现。处理器或计算机可由一个或更多个处理元件(诸如逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以定义的方式响应和执行指令来获得期望的结果的任何其他装置或装置的组合)实现。在一个示例中,处理器或计算机包括或被连接到存储由处理器或计算机执行的指令或软件的一个或更多个存储器。由处理器或计算机实现的硬件组件可执行指令或软件(诸如,操作系统(os)以及运行在os上的一个或更多个软件应用)以执行本申请中描述的操作。硬件组件还可响应于指令或软件的执行而访问、操纵、处理、创建和存储数据。为了简便,单数的术语“处理器”或“计算机”可在对这里描述的示例的描述中使用,但是在其他示例中,多个处理器或计算机被使用,或者处理器或计算机包括多个处理元件或多种类型的处理元件或者包括两者。在一个示例中,硬件组件包括多个处理器,在另一示例中,硬件组件包括处理器和控制器。硬件组件具有一个或更多个不同的处理配置,其示例包括单处理器、独立处理器、并行处理器、单指令单数据(sisd)多处理、单指令多数据(simd)多处理、多指令单数据(misd)多处理和多指令多数据(mimd)多处理。

图3、图4、图10和图12中示出的执行本申请中描述的操作的方法可由被如上所述实现为执行指令或软件以执行在本申请中所描述的由所述方法执行的操作的计算硬件(例如,一个或更多个处理器或计算机)执行。例如,可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行单个操作或者两个或更多个操作。可由一个或更多个处理器或者处理器和控制器执行一个或更多个操作,并且可由一个或更多个其他处理器或者另一处理器和另一控制器执行一个或更多个其他操作。一个或更多个处理器或者处理器和控制器可执行单个操作或者两个或更多个操作。

用于控制计算硬件(例如,一个或更多个处理器或计算机)来实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任意组合,从而单独地或共同地指示或配置所述一个或更多个处理器或计算机作为机器或特定用途的计算机进行操作来执行由如上所述的硬件组件和方法所执行的操作。在一个示例中,指令或软件包括由一个或更多个处理器或计算机直接执行的机械代码,诸如由编译器产生的机器代码。在另一示例中,指令或软件包括由一个或更多个处理器或计算机使用翻译器执行的高级代码。可基于附图中示出的框图和流程图以及说明书中的相应描述使用任何编程语言来编写指令或软件,其中,说明书的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。

用于控制处理器或计算机来实现硬件组件并执行如上所述的方法的指令或软件以及任何关联数据、数据文件和数据结构被记录、存储或固定在一个或更多个非暂时性计算机可读存储介质中或被记录、存储或固定在一个或更多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括只读存储器(rom)、随机存取可编程只读存储器(prom)、电可擦除可编程只读存储器(eeprom)、随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、闪存、非易失性存储器、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-rlth、bd-re、蓝光或光盘存储器、硬盘驱动器(hdd)、固态驱动器(ssd)、闪存、诸如多媒体微缩卡或卡片的卡片式存储器(例如,安全数字(sd)或极速数字(xd))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及被配置为以非暂时性方式存储指令或软件以及任何关联数据、数据文件和数据结构并且向处理器或计算机提供指令或软件以及任何关联数据、数据文件和数据结构使得处理器或计算机能够执行指令的任何其他装置。在一个示例中,指令或软件以及任何关联数据、数据文件和数据结构分布在网络连接的计算机系统上,使得指令或软件以及任何关联数据、数据文件和数据结构由处理器或计算机以分布式方式存储、访问和执行。

为了说明书的简明,可省略相关领域的电子配置、控制系统、软件和其他功能方面的描述。此外,附图中描述的构成元件之间的线的连接和连接构件是功能性连接和/或物理或电路连接的示例,并且因此,在实际的装置中,可被表示为可替换或另外的功能性连接、物理性连接或电路连接。

在说明书和权利要求中,描述相对空间关系的词语(诸如“下面”、“下方”、“在…之下”、“低于”、“底部”、“上面”、“上方”、“在…之上”、“顶部”、“左”和“右”)可被用来方便地描述一个装置或元件与其他装置或元件的空间关系。应理解的是,空间相对术语除了包括附图中描述的方向以外,还意图包括装置在使用或操作中的不同方向。例如,如果附图中的装置被反过来,则被描述为在其他元件“上面”或“之上”的元件应被描述为在所述其他元件或特征的“下面”或“低于”所述其他元件或特征。因此,术语“上面”根据附图的具体方向能够包括“上面”和“下面”两个方向。所述装置可被另外定向(旋转90度或其他方向)并且此处使用的空间相对描述可被相应地解释。

尽管本公开包括具体的示例,但本领域的普通技术人员将清楚的是,可在不脱离权利要求及其等同物的精神和范围的情况下在这些示例中做出形式和细节上的各种改变。此处描述的示例仅被视为描述性的意义,而不是出于限制的目的。每个示例中的多个特征或方面的描述应被视为可用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式结合和/或被其他组件或其等同物替换或补充,则可实现合适的结果。因此,本公开的范围不由详细描述所限定,而是由权利要求及其等同物所限定,并且在权利要求及其等同物的范围内的所有变型将被解释为包括在本公开中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1