无序像素着色器导出制造技术

技术编号:22007179 阅读:30 留言:0更新日期:2019-08-31 07:27
公开了图形处理流水线的改进。所述图形处理流水线按照应用程序或其他实体的请求以特定顺序(应用程序编程接口顺序—“API顺序”)处理图形对象。然而,所述图形处理流水线内的某些部件,诸如像素着色器级,可无序地处理这些对象。本文提供了一种技术,以允许所述像素着色器级完成并无序地导出处理的片段。所述技术包括使用记分板来确定准备从像素着色器级导出的片段是否为API顺序中的最新片段。如果所述片段是API顺序中的所述最新片段,则导出所述片段。如果所述片段不是API顺序中的所述最新片段,则丢弃所述片段。

Derivation of Unordered Pixel Shader

【技术实现步骤摘要】
【国外来华专利技术】无序像素着色器导出相关申请的交叉引用本申请要求2017年1月27日提交的美国非临时申请号15/418,557以及2017年2月3日提交的欧洲专利申请号EP17154680.7的权益,所述申请的全部内容在此通过引用的方式并入,如同在本文中完整阐述一样。
所公开的实施例总体上涉及图形处理流水线,并且具体地涉及无序像素着色器导出。
技术介绍
三维图形处理流水线接受来自主机(诸如计算系统的中央处理单元)的命令并且处理这些命令以生成用于在显示装置上显示的像素。图形处理流水线包括执行单独任务的多个级,诸如变换顶点位置和属性、计算像素颜色等等。图形处理流水线正在不断开发和改进。附图说明从以下结合附图通过示例给出的描述中可得到更详细的理解,在附图中:图1是可实现一个或多个公开的实施例的示例性装置的框图;图2是图1的装置的展示了额外细节的框图;图3是示出图2所示的图形处理流水线的额外细节的框图;图4展示了根据一个示例的早z模式和晚z模式;图5展示了无序导出块和记分板的细节,以及用于从像素着色器级执行无序导出的示例性操作;并且图6是根据一个示例的用于无序地从图形处理流水线的像素着色器级导出片段的方法的流程图。具体实施方式本公开涉及图形处理流水线的改进。图形处理流水线按照应用程序或其他实体的请求以特定顺序(应用程序编程接口顺序—“API顺序”)处理图形对象。然而,图形处理流水线内的某些部件(诸如像素着色器级)可无序地处理这些对象。本文提供了一种技术,以允许像素着色器级完成并无序地导出处理的片段。所述技术包括使用记分板来确定准备从像素着色器级导出的片段是否为API顺序中的最新片段。如果片段是API顺序中的最新片段,则导出片段。如果片段不是API顺序中的最新片段,则丢弃片段。图1是其中实现本公开的一个或多个方面的示例性装置100的框图。装置100包括例如计算机、游戏装置、手持装置、机顶盒、电视、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108以及一个或多个输出装置110。装置100还可选地包括输入驱动器112和输出驱动器114。应理解,装置100可包括图1中未示出的额外部件。处理器102包括位于同一管芯上的中央处理单元(CPU)、图形处理单元(GPU)、CPU和GPU或者一个或多个处理器核心,其中每个处理器核心可为CPU或GPU。存储器104位于与处理器102相同的管芯上,或者可与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。存储装置106包括固定或可移除存储装置,例如硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入装置108包括键盘、小键盘、触摸屏、触摸板、检测器、麦克风、加速度计、陀螺仪、生物识别扫描器或网络连接(例如,用于发射和/或接收无线IEEE802信号的无线局域网卡)。输出装置110包括显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于发射和/或接收无线IEEE802信号的无线局域网卡)。输入驱动器112与处理器102和输入装置108通信,并且允许处理器102从输入装置108接收输入。输出驱动器114与处理器102和输出装置110通信,并且允许处理器102将输出发送到输出装置110。输出驱动器114包括加速处理装置(APD)116,其耦合到显示装置118。APD被配置成接受来自处理器102的计算命令和图形渲染命令、处理那些计算和图形渲染命令并且将像素输出提供给显示装置118以供显示。APD116包括一个或多个并行处理单元,所述一个或多个并行处理单元被配置成根据单指令多数据(“SIMD”)范例来执行计算。然而,被描述为由APD116执行的功能也可由不根据SIMD范例处理数据的处理装置来执行。图2是装置100的框图,展示了与在APD116上执行处理任务有关的额外细节。处理器102在系统存储器104中维护一个或多个控制逻辑模块,以供处理器102执行。控制逻辑模块包括操作系统120、驱动器122和应用程序126,并且可以可选地包括未示出的其他模块。这些控制逻辑模块控制处理器102和APD116的操作的各个方面。例如,操作系统120直接与硬件通信,并且为在处理器102上执行的其他软件提供与硬件的接口。驱动器122通过例如向在处理器102上执行的软件(例如,应用程序126)提供应用程序编程接口(“API”)来控制APD116的操作,以访问APD116的各种功能。驱动器122还包括即时编译器,所述即时编译器将着色器代码编译成着色器程序,以便由APD116的处理部件(诸如以下进一步详细讨论的SIMD单元138)来执行。APD116执行用于选定功能的命令和程序,诸如可适用于并行处理的图形操作和非图形操作。APD116用于执行图形流水线操作,诸如像素操作、几何计算,并且基于从处理器102接收的命令将图像渲染到显示装置118。APD116还基于从处理器102接收的命令来执行与图形操作不直接相关的或者不是图形处理流水线的“正常”信息流的一部分的计算处理操作,诸如与视频、物理模拟、计算流体动力学或其他任务相关的操作。APD116包括着色器引擎132(其在本文中可统称为“可编程处理单元202”),其包括一个或多个SIMD单元138,所述SIMD单元被配置成应处理器102的请求来根据SIMD范例以并行方式执行操作。SIMD范例是其中多个处理元件共享单个程序控制流程单元和程序计数器并且因此执行相同程序但是能够利用不同数据执行所述程序的一种范例。在一个示例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行相同的指令,但是可用不同的数据执行所述指令。如果并非所有通道都需要执行给定指令,则可通过预测来关闭通道。预测也可用于执行具有不同控制流程的程序。更具体地,对于具有条件分支或其他指令的程序,其中控制流程是基于由单独通道执行的计算,对应于当前未执行的控制流程路径以及不同控制流程路径的串行执行的通道的预测允许遵循任意控制流程。着色器引擎132中的基本执行单元是工作项。每个工作项表示将要在特定通道中并行执行的着色器程序的单个实例化。工作项通常作为单个SIMD单元138上的“波前”同时执行。多个波前被包括在“工作组”中,所述工作组包括指定来执行相同程序的工作项的集合。通过执行构成工作组的每个波前来执行工作组。波前可在单个SIMD单元138上按顺序执行,或者在不同SIMD单元138上部分或完全并行执行。波前可认为是着色器程序的并行执行的实例,其中每个波前包括多个工作项,这些工作项根据SIMD范例在单个SIMD单元138上同时执行(例如,一个指令控制单元执行具有多个数据的相同的指令流)。调度器136被配置成执行与在不同的着色器引擎132和SIMD单元138上调度各种波前相关的操作,以及执行用于在APD116上编排各种任务的其他操作。由着色器引擎132提供的并行性适用于图形相关操作,诸如像素值计算、顶点变换、曲面细分、几何着色操作以及其他图形操作。接受来自处理器102的图形处理命令的图形处理流水线134因此向着色器引擎132提供计算任务以便并行地执行。着色本文档来自技高网...

【技术保护点】
1.一种用于从图形处理流水线的像素着色器级导出片段的方法,所述方法包括:维护记分板,所述记分板指示相对于应用程序编程接口顺序(“API顺序”)在所述像素着色器级中遇到的最新片段;处理所述像素着色器中的片段以生成着色片段,所述着色片段具有屏幕位置;基于所述记分板确定所述着色片段是否为所述像素着色器级遇到的所述屏幕位置的所述最新片段;如果所述着色片段是所述像素着色器级遇到的所述屏幕位置的所述最新片段,则导出所述着色片段以便在所述图形处理流水线的后续级中进行处理;以及如果所述着色片段不是所述像素着色器级遇到的所述屏幕位置的所述最新片段,则丢弃所述片段。

【技术特征摘要】
【国外来华专利技术】2017.02.03 EP 17154680.7;2017.01.27 US 15/418,5571.一种用于从图形处理流水线的像素着色器级导出片段的方法,所述方法包括:维护记分板,所述记分板指示相对于应用程序编程接口顺序(“API顺序”)在所述像素着色器级中遇到的最新片段;处理所述像素着色器中的片段以生成着色片段,所述着色片段具有屏幕位置;基于所述记分板确定所述着色片段是否为所述像素着色器级遇到的所述屏幕位置的所述最新片段;如果所述着色片段是所述像素着色器级遇到的所述屏幕位置的所述最新片段,则导出所述着色片段以便在所述图形处理流水线的后续级中进行处理;以及如果所述着色片段不是所述像素着色器级遇到的所述屏幕位置的所述最新片段,则丢弃所述片段。2.如权利要求1所述的方法,其还包括:在处理所述像素着色器中的所述片段之前对所述片段执行z剔除。3.如权利要求1所述的方法,其还包括:在处理所述像素着色器中的所述片段之后并且在基于所述记分板确定所述着色片段是否为所述像素着色器级遇到的所述屏幕位置的所述最新片段之前,对所述片段执行z剔除。4.如权利要求3所述的方法,其中:所述z剔除使用以下各项中的一项或多项来执行:对禁用的深度缓冲区的写入;“等于”z函数;或者“小于或等于”z函数或者“大于或等于”z函数以及z测试结果,其中所述片段的深度值等于针对所述片段的所述屏幕位置在所述深度缓冲区中存储的深度值。5.如权利要求1所述的方法,其中:所述着色片段与屏幕位置和应用程序编程接口顺序(“API顺序”)相关联;并且基于所述记分板确定所述着色片段是否为所述像素着色器级遇到的所述屏幕位置的所述最新片段包括将所述着色片段的所述API顺序与针对所述片段的所述屏幕位置在所述记分板中存储的所述API顺序进行比较。6.如权利要求1所述的方法,其中维护所述记分板包括:从所述像素着色器级上游的流水线级接收所述片段;以及在所述记分板中更新所述片段的所述屏幕位置的所述API顺序,以反映已经针对所述片段的所述屏幕位置在所述记分板中存储的所述API顺序和所述片段的所述API顺序中的较新者。7.如权利要求1所述的方法,其中从所述像素着色器级上游的流水线级接收所述片段包括:从所述像素着色器级的光栅器级接收所述片段。8.如权利要求1所述的方法,其中导出所述着色片段以便在所述图形处理流水线的所述后续级中进行处理包括导出所述着色片段以便在所述图形处理流水线的输出合并级中进行处理。9.如权利要求1所述的方法,其还包括:在丢弃所述片段之前,确定对所述片段禁用混合。10.一种包括图形处理流水线的加速处理装置(“APD”),所述加速处理装置包括:像素着色器级,所述像素着色器级被配置成处理片段以生成具有屏幕位置的着色片段;以及无序导出块,所述无序导出块被配置成:维护记分板,所述记分板指示相对于应用程序编程接口顺序(“API顺序”)在所述像素着色器级中遇到的最新片段;基于所述记分板确定所述着色片段是否为所述像素着色器级遇到的所述屏幕位置的所述最新片段;如果所述着色片段是所述像素着色器级遇到的所述屏幕位置的所述最新片段,则导出所述着色片段以便在所述图形处理流水线的后续级中进行处理;以...

【专利技术属性】
技术研发人员:帕扎尼·皮拉伊克里斯多夫·J·布伦南
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

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

1