图形处理单元及其方法技术

技术编号:13959108 阅读:52 留言:0更新日期:2016-11-02 21:10
本发明专利技术提供一种图形处理单元及其方法。该图形处理单元包括可编程着色器硬件和分群硬件。分群硬件接收从一组图元收集的像素,其中,每一图元的像素位置已经通过光栅化该图元的一组顶点而获得。分群硬件还将像素分为具有贯序的一组群。在显示器上,每一群中的像素均不相互重叠,而重叠的像素属于不同的群。可编程着色器硬件根据指令集的第一子集对群执行对顺序不敏感的着色器操作,其中,指令集为可编程着色器定义,且两群或更多群并行处理。可编程着色器还根据指令集的第二子集对每一群执行对顺序敏感的着色器操作,其中,指令集为可编程着色器定义。本发明专利技术所提供的图形处理单元及其方法,可优化处理混合有对顺序敏感的和不敏感的着色器操作。

【技术实现步骤摘要】

本专利技术涉及一种图形处理系统,更具体地,涉及一种用于图形处理的可编程着色器。
技术介绍
在计算机图形学中,渲染即为从若干图形对象或模型的描述中,在显示装置上产生图像的过程。图形处理单元(graphics processing unit,以下简称为GPU)对3D图形对象进行渲染,其通常表述为将若干图元(如点、线、多边形及高阶表面)的组合渲染至图像元素(即像素)。图形处理单元通常包括用于执行上述渲染操作的渲染管线。渲染管线包括以下主要级段:(1)顶点处理,即对顶点进行处理并将其变换至投射空间,其中,图元通过顶点进行描述,(2)光栅化,即将每一图元转换为一组3D像素,3D像素同显示装置的像素栅格对齐,并具有若干属性,如:3D位置、颜色、法线(normal)及纹理,(3)片段处理,即对每一组的3D像素进行处理,和(4)输出处理,即将所有图元的3D像素组合至2D空间进行显示。当图形对象不是完全非透明时,其背景可透过该图形对象显示并混合进入该图形对象。在混合操作中,对每一像素位置的像素值,如:红、绿、蓝(RGB)颜色值进行组合,以产生用于显示的最终像素值。传统技术中,混合是在片段处理之后,在输出处理级段中通过固定功能硬件来执行的。通常,固定功能硬件相比于可编程硬件更加昂贵,且没有可编程
硬件灵活。
技术实现思路
有鉴于此,本专利技术提出一种图形处理单元及其方法。在一实施例中,提供了一种图形处理单元的方法。所述方法包括的步骤为,接收从一组图元收集的像素,其中,每一图元的像素位置已经通过光栅化该图元的一组顶点而获得;将像素分为一组具有贯序的群,其中,在显示器上,每一群中的像素均不相互重叠,而重叠的像素属于不同的群;根据指令集的第一子集对群执行对顺序不敏感的着色器操作,其中,指令集为可编程着色器定义,且两群或更多群并行处理;及根据指令集的第二子集对每一群执行对顺序敏感的着色器操作,其中,指令集为可编程着色器定义。在另一实施例中,提供了一种图形处理单元。图形处理单元包括分群硬件,其可用于接收从一组图元收集的像素,其中,每一图元的像素位置已经通过光栅化该图元的一组顶点而获得。分群硬件还可用于将像素分为具有贯序的一组群。在显示器上,每一群中的像素均不相互重叠,而重叠的像素属于不同的群。图形处理单元还包括可编程着色器硬件,该可编程着色器硬件耦接至分群硬件,并包括一列计算单元。该可编程着色器用于根据指令集的第一子集对群执行对顺序不敏感的着色器操作,其中,指令集为可编程着色器定义,且两群或更多群并行处理。该可编程着色器硬件同样可用于根据指令集的第二子集按贯序对每一群执行对顺序敏感的着色器操作,其中,指令集为可编程着色器定义。本专利技术所提出的图形处理单元及其方法,可优化处理混合有对顺序敏感的和不敏感的着色器操作。附图说明本专利技术通过举例的方式而不是限制的方式来进行阐释。在附图中,相近的编号代表类似的元件。应该注意的是,本专利技术中,不同处所引用的“一”实施例,并不一定指同一实施例,这种引用意味着至少一个实施例。而且,当结合某实施例描述某特定的特征、结构或特性时,结合其他实施例产生这样的特征、结构或特性被认为是在本领域熟练技术人员的知识范畴之内的,而无论是否明确说明。图1为本专利技术的一实施例的一种系统。图2为本专利技术的一实施例的一种图形处理单元核心的功能模块。图3A和图3B为本专利技术的一实施例的像素分群的实例。图4为本专利技术的一实施例的由可编程着色器所执行的操作。图5为本专利技术的一实施例的一种可编程着色器的方法的流程图。图6为本专利技术的一实施例的一种图形处理单元执行的方法的流程图。具体实施方式在下面的描述中,阐述了许多具体细节。但可以理解的是,本专利技术的实施例可以在没有这些具体细节的情况下实施。另一方面,公知的电路、结构和技术不会详细描述,以使本说明书容易理解。但是,本领域的技术人员可以理解的是,本专利技术可以在没有这些具体细节的情况下实施。本领域的普通技术人员参照本说明书,无需过多的实验即能实现适当的功能。本专利技术的实施例使用可编程着色器硬件,也可称为可编程着色器,来优化处理混合有对顺序敏感的和不敏感的着色器操作。对顺序敏感的着色器操作的一个实例为阿尔法混合,也可称为“混合”或“混合操作”,而对顺序不敏感的着色器操作的一个实例为片段着色,也可称为“片段着色器操作”。所述“顺序”(某操作对其敏感或不敏感)通常在图形应
用程序接口(application program interface,以下简称为API)中定义;例如,绘图设计者使用OpenGL应用程序接口来指明对图形场景的图元进行渲染的顺序。如前面提到的,混合通常是在片段处理之后,由固定功能硬件来执行的。为节约成本,优选使用同一块硬件用来进行混合和片段着色。然而,将对顺序不敏感的片段着色同对顺序敏感的混合操作混合在一起可能导致性能恶化。本专利技术的实施例对这种混合操作进行优化。可编程着色器硬件的一个实例为统一着色器(unified shader),其包括一列计算单元和一分配着色任务至计算单元的动态调度单元。统一着色器通常具有大量的功能强大的计算单元,因而能够实现很高的吞吐量。现有的可编程着色器可经编程以执行顶点处理和片段处理。程序员可编写顶点着色器程序(也称为“顶点着色器”)以用于顶点处理,和编写片段着色器程序(也称为“片段着色器”)以用于片段处理。这些着色器程序可使用高级语言编写,例如OpenGL着色语言(OpenGL shading language,GLSL),Directe 3D中的高级着色语言(high-level shading language,HLSL)或者绘图C语言等等。可编程着色器中的计算单元可根据需要分配到不同类型的着色任务。例如,在顶点工作量较少而像素工作量繁重的情况下,更多的计算单元或者周期可分配至片段着色器用于处理像素。相反的,在顶点工作量繁重而像素工作量较少的情况下,更多的计算单元或周期可分配至顶点着色器用于处理顶点。相比较于可编程着色器,固定功能的硬件不够灵活,因为其将混合操作限制在若干通用的混合公式之内。若支持额外的混合公式,将会增加固定功能硬件的成本。根据本专利技术的实施例,可编程着色器硬件除开执行片段着色以外,还可用来执行混合操作。可编程着色器可经编程,以计算任意的混合公式,
且其计算资源可根据需要在混合操作和其他着色任务之间进行分享。本文所描述的实施例可支持延迟渲染和即时渲染。在延迟渲染中,显示空间被分为多个仓(bins)。从显示空间的多个图形对象所累积的图元是逐仓的进行渲染的,而不是逐个图元进行渲染。当一仓正在渲染时,其数据可临时存储在片上缓冲器中,也可从片上缓冲器中获取,以减少对系统存储器的访问量。另一方面,在即时渲染中,一次只处理和渲染一个图元。当渲染过程从一个图元移动至下一个图元时,即时渲染通常会引起对系统存储器重复的读取和写入。图1为揭示本专利技术一实施例的系统100,其包括CPU 110和GPU 120。虽然只示出一个CPU和一个GPU,但可以理解的是,系统100可包括任意数量的CPU和GPU,还可包括任意数量的其他处理器。在一实施例中,系统100可通过片上系统(system on chip,SOC)实现,片上系统用在计算和/或通信本文档来自技高网
...

【技术保护点】
一种用于图形处理单元的方法,包括:接收从一组图元收集的像素,其中,每一图元的像素位置已经通过光栅化的图元的一组顶点而获得;将所述像素分为一组具有贯序的群,其中,在显示器上,每一群中的像素均不相互重叠,而重叠的像素属于不同的群;根据指令集的第一子集对所述群执行对顺序不敏感的着色器操作,其中,所述指令集为可编程着色器定义,且两个群或更多群并行处理;及根据所述指令集的第二子集按所述贯序对所述群中的每一个执行对顺序敏感的着色器操作。

【技术特征摘要】
2015.04.15 US 14/687,8321.一种用于图形处理单元的方法,包括:接收从一组图元收集的像素,其中,每一图元的像素位置已经通过光栅化的图元的一组顶点而获得;将所述像素分为一组具有贯序的群,其中,在显示器上,每一群中的像素均不相互重叠,而重叠的像素属于不同的群;根据指令集的第一子集对所述群执行对顺序不敏感的着色器操作,其中,所述指令集为可编程着色器定义,且两个群或更多群并行处理;及根据所述指令集的第二子集按所述贯序对所述群中的每一个执行对顺序敏感的着色器操作。2.如权利要求1所述的用于图形处理单元的方法,其中,所述不同的群中的所述重叠的像素遵循由图形应用程序接口的要求所定义的贯序,所述贯序指定了对所述图元进行排序的应用程序接口顺序,以供渲染。3.如权利要求2所述的用于图形处理单元的方法,其中,如果第一图元根据所述应用程序接口顺序排在第二群之后,且所述第一图元不和第一群和所述第二群中的任何其他图元重叠,那么所述第一图元被置入所述第一群,且于所述第二群之前。4.如权利要求1所述的用于图形处理单元的方法,其中,所述对顺序不敏感的操作包括片段着色器操作,而所述对顺序敏感的操作包括阿尔法混合。5.如权利要求4所述的用于图形处理单元的方法,进一步包括:在进行所述片段着色器操作之后对每一群执行组间屏障,以按照所述贯序对所述群进行排序,以供进行所述阿尔法混合。6.如权利要求5所述的用于图形处理单元的方法,其中,所述群包
\t括第一群和第二群,所述方法进一步包括:对所述第一群和所述第二群执行所述片段着色器操作;及当对所述第一群执行混合操作时,利用所述组间屏障对所述第二群进行延迟。7.如权利要求4所述的用于图形处理单元的方法,进一步包括:执行指令指定混合模式寄存器,以选择预定义混合模式的着色器代码段。8.如权利要求1所述的用于图形处理单元的方法,其中,执行所述对顺序敏感的操作进一步包括:按照任意的顺序对每一群中的像素执行所述对顺序敏感的操作。9.如权利要求1所述的用于图形处理单元的方法,其中,所述对顺序敏感的操作包括深度测试,以分析横跨不同群之间的像素的可见性。10.如权利要求1所述的用于图形处理单元的方法,其中,执行所述对顺序敏感的操作进一步包括:对一组像素执行阿尔法混合,所述像素包括至少一种:透明像素、非透明像素及透明像素和非透明像素的组合。...

【专利技术属性】
技术研发人员:廖群峰柯澄瑛
申请(专利权)人:联发科技新加坡私人有限公司
类型:发明
国别省市:新加坡;SG

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

1