具有协同数据格式化、重投影、中央凹化、图块装仓和图像扭曲技术的光场显示的制作方法

文档序号:18136771发布日期:2019-07-10 10:40阅读:221来源:国知局
具有协同数据格式化、重投影、中央凹化、图块装仓和图像扭曲技术的光场显示的制作方法
本专利文献的公开内容的一部分包含受到(版权或掩膜作品)保护的材料。(版权或掩膜作品)所有者不反对任何人对本专利文献或本专利公开内容的复制,由于其出现在专利和商标局专利文件或记录中,但无论如何在其他方面保留所有(版权或掩膜作品)权利。实施例总体上涉及图形系统。更具体地,实施例涉及具有协同数据格式化、重投影、中央凹化(foveation)、图块装仓(tilebinning)和/或图像扭曲技术的光场显示。
背景技术
:虚拟现实(vr)头戴式显示器(hmd)技术可以使用单个二维(2d)显示平面来向hmd的穿戴者呈现三维(3d)场景。然而,当穿戴者尝试聚焦于3d场景中不同深度处的物品时,由于场景中缺乏聚焦提示,穿戴者可能会经历视觉不适。尽管光场显示可以通过将3d场景合成为被渲染到多个显示平面的光场来减少视觉不适,但是仍然有相当大的改善空间。例如,将场景渲染到多个显示平面可能会增加等待时间、降低性能、增加功耗和/或减少电池寿命。附图说明通过阅读以下说明书和所附权利要求书,并且通过参考以下附图,实施例的各种优点对于本领域技术人员将变得显而易见,在附图中:图1是框图,展示了被配置成实施本文所述实施例的一个或多个方面的计算机系统;图2a至图2d展示了根据实施例的并行处理器组件;图3a至图3b是根据实施例的图形多处理器的框图;图4a至图4f展示了其中多个gpu通信地耦合至多个多核处理器的示例性架构;图5展示了根据实施例的图形处理流水线;图6a是根据实施例的光场显示系统的示例的展示;图6b是根据实施例的半导体封装体装置的示例的展示;图6c是根据实施例的被存储到相邻存储器位置的图像数据的示例的展示;图6d是根据实施例的管理将跨多个显示平面渲染的图像数据的方法的示例的流程图;图6e是根据实施例的进行存储器设置程序的方法的示例的流程图;图6f是根据实施例的管理将跨多个显示平面渲染的图像数据的更详细方法的示例的流程图;图7a是根据实施例的源视图和重投影视图的示例的展示;图7b是根据实施例的增强重投影视图的方法的示例的流程图;图7c是根据实施例的非扩展视场和扩展视场的示例的比较性展示;图7d是根据实施例的基于与源视图相对应的光栅化数据填充视图孔的方法的示例的流程图;图7e是根据实施例的基于与重投影视图相对应的光栅化数据填充视图孔的方法的示例的流程图;图8a是根据实施例的中央凹形视图(foveatedview)布局的示例的展示;图8b是根据实施例的使呈现在多个显示平面上的场景内容中央凹化的方法的示例的流程图;图8c是根据实施例的周边视图仓布局(peripheralviewbinlayout)的示例的展示;图9a是根据实施例的视图视锥体(frustum)图块布局的示例的展示;图9b是根据实施例的光场显示视图视锥体布局的示例的展示;图9c是根据实施例的管理与多个显示平面相关联的图元的方法的示例的流程图;图9d是根据实施例的近平面-远平面确定的示例的展示;图9e是根据实施例的粗糙视锥体拣选确定的示例的展示;图9f和图9g是根据实施例的精细视锥体拣选确定的示例的展示;图9h是根据实施例的进行分层拣选操作序列的方法的示例的流程图;图9i是根据实施例的进行分层拣选操作序列的更详细方法的示例的流程图;图10a是根据实施例的跨多个显示平面扭曲的场景内容的示例的展示;图10b是根据实施例的跨多个显示平面扭曲的场景内容的方法的示例的流程图;图11是根据实施例的具有局部背光能力的显示器的示例的框图;图12a是根据实施例的数据处理设备的示例的框图;图12b是根据实施例的距离确定的示例的展示;图13是根据实施例的分层式显示架构的示例的框图;图14是根据实施例的包括多个显示单元的显示架构的示例的框图;并且图15是根据实施例的云辅助的媒体递送架构的示例的框图;图16至图18是根据实施例的数据处理系统的概况的示例的框图;图19是根据实施例的图形处理引擎的示例的框图;图20至图22是根据实施例的执行单元的示例的框图;图23是根据实施例的图形流水线的示例的框图;图24a至图24b是根据实施例的图形流水线编程的示例的框图;图25是根据实施例的图形软件架构的示例的框图;图26a是根据实施例的知识产权(ip)核开发系统的示例的框图;图26b是根据实施例的集成电路封装体组件的示例的截面侧视图;图27是根据实施例的片上系统集成电路的示例的框图;图28a是根据实施例的头戴式显示器(hmd)系统的示例的展示;图28b是根据实施例的图形处理器的示例的框图;图29a至图29b是根据实施例的图形处理器逻辑的示例的框图;并且图30是根据实施例的头戴式显示器(hmd)系统的示例的展示。具体实施方式在以下描述中,阐述了大量的具体细节以提供对本发明的更加透彻的解释。然而,对于本领域技术人员而言将明显的是,可以在不具有这些具体细节中的一个或多个的情况下实践本发明。在其他实例中,未描述众所周知的特征以避免使本实施例模糊。系统概述图1是展示了被配置成实现本文所述的实施例的一个或多个方面的计算机系统100的框图。计算系统100包括处理子系统101,所述处理子系统具有一个或多个处理器102和系统存储器104,所述一个或多个处理器和所述系统存储器经由互连路径进行通信,所述互连路径可以包括存储器中枢105。存储器中枢105可以是芯片组部件内的单独的部件,也可以集成在一个或多个处理器102内。存储器中枢105经由通信链路106与i/o子系统111耦合。i/o子系统111包括i/o中枢107,所述i/o中枢可以使得计算系统100能够从一个或多个输入设备108接收输入。另外,i/o中枢107可以使得显示控制器(所述显示控制器可以被包括在一个或多个处理器102中)能够向一个或多个显示设备110a提供输出。在一个实施例中,与i/o中枢107耦合的一个或多个显示设备110a可以包括本地显示设备、内部显示设备或嵌入式显示设备。在一个实施例中,处理子系统101包括一个或多个并行处理器112,所述一个或多个并行处理器经由总线或其他通信链路113耦合至存储器中枢105。通信链路113可以是任意数量的基于标准的通信链路技术或协议(诸如但不限于pciexpress)中的一个,也可以是供应方特定的通信接口或通信结构。在一个实施例中,一个或多个并行处理器112形成以计算为中心的并行或向量处理系统,所述系统包括大量处理核和/或处理集群诸如集成众核(mic)处理器。在一个实施例中,一个或多个并行处理器112形成图形处理子系统,所述图形处理子系统可以向经由i/o中枢107耦合的一个或多个显示设备110a中的一个输出像素。一个或多个并行处理器112还可以包括显示控制器和显示接口(未示出)以实现到一个或多个显示设备110b的直接连接。在i/o子系统111内,系统存储单元114可以连接至i/o中枢107来为计算系统100提供存储机制。i/o开关116可以用于提供接口机制以实现i/o中枢107和可以集成到平台中的其他部件诸如网络适配器118和/或无线网络适配器119以及可以经由一个或多个插入式设备120添加的各种其他设备之间的连接。网络适配器118可以是以太网适配器或另一种有线网络适配器。无线网络适配器119可以包括wi-fi、蓝牙、近场通信(nfc)或包括一个或多个无线电装置的其他网络设备中的一个或多个。计算系统100可以包括未明确示出的其他部件,这些部件包括通用串行总线(usb)或其他端口连接件、光存储驱动器、视频捕获设备等,也可以连接至i/o中枢107。图1中将各种部件互连的通信路径可以使用任何合适的协议诸如基于pci(外围部件互连)的协议(例如,pci-express),或(多个)任何其他总线或点对点通信接口和/或协议诸如nv-link高速互连或本领域中已知的互连协议来实现。在一个实施例中,一个或多个并行处理器112并入有为进行图形和视频处理而优化的电路,包括例如视频输出电路,并且所述电路构成图形处理单元(gpu)。在另一个实施例中,一个或多个并行处理器112并入有为进行通用处理而优化的电路,同时保留了本文更详细描述的基础计算架构。在又一个实施例中,计算系统100的各部件可以与一个或多个其他系统元件集成在单个集成电路上。例如,一个或多个并行处理器112、存储器中枢105、(多个)处理器102和i/o中枢107可以集成到芯片上系统(soc)集成电路中。可替代地,计算系统100的各部件可以集成到单个封装中以形成封装中系统(sip)配置。在一个实施例中,计算系统100的各部件的至少一部分可以集成到多芯片模块(mcm)中,所述多芯片模块可以与其他多芯片模块互连成模块化计算系统。应当理解,本文所示的计算系统100是例示性的并且变型和修改是可能的。连接拓扑可以根据需要进行修改,所述连接拓扑包括桥的数量和安排、(多个)处理器102的数量和(多个)并行处理器112的数量。例如,在一些实施例中,系统存储器104直接而不是通过桥连接至(多个)处理器102,而其他设备经由存储器中枢105和(多个)处理器102与系统存储器104进行通信。在其他替代性拓扑中,(多个)并行处理器112连接至i/o中枢107或直接连接至一个或多个处理器102中的一个,而不是连接至存储器中枢105。在其他实施例中,i/o中枢107和存储器中枢105可以集成到单个芯片中。一些实施例可以包括经由多个插座附接的(多个)处理器102的两个或更多个组,这两个或更多个组可以与(多个)并行处理器112的两个或更多个实例耦合。本文示出的一些特定部件是可选的并且可能不被包括在计算系统100的所有实现中。例如,可以支持任意数量的插入式卡或外围装置,或者可以省去一些部件。此外,一些架构可以使用不同的术语来描述与图1所示类似的部件。例如,在一些架构中,存储器中枢105可以被称为北桥,而i/o中枢107可以被称为南桥。图2a展示了根据实施例的并行处理器200。并行处理器200的各种部件可以使用诸如可编程处理器、专用集成电路(asic)或现场可编程门阵列(fpga)的一个或多个集成电路设备来实现。根据实施例,所展示的并行处理器200是图1所示的一个或多个并行处理器112的变体。在一个实施例中,并行处理器200包括并行处理单元202。所述并行处理单元包括i/o单元204,所述i/o单元实现与其他设备包括并行处理单元202的其他实例的通信。i/o单元204可以直接连接至其他设备。在一个实施例中,i/o单元204经由诸如存储器中枢105的中枢或开关接口的使用来与其他设备连接。存储器中枢105与i/o单元204之间的连接形成通信链路113。在并行处理单元202内,i/o单元204与主机接口206和存储器交叉开关216连接,其中主机接口206接收涉及执行处理操作的命令,并且存储器交叉开关216接收涉及执行存储器操作的命令。当主机接口206经由i/o单元204接收命令缓冲器时,主机接口206可以将用于执行这些命令的工作操作引导到前端208。在一个实施例中,前端208与调度器210耦合,所述调度器被配置成向处理集群阵列212分发命令或其他工作项目。在一个实施例中,调度器210确保在向处理集群阵列212的处理集群分发任务之前,处理集群阵列212被正确地配置并且处于有效状态。在一个实施例中,调度器210经由在微控制器上执行的固件逻辑来实施。微控制器实施的调度器210可被配置成以粗细粒度执行复杂的调度和工作分配操作,从而使得能够快速抢占和上下文切换在处理阵列212上执行的线程。在一个实施例中,主机软件可以经由多个图形处理门铃中的一个提供用于在处理阵列212上进行调度的工作量。所述工作量然后可以由调度器微控制器内的调度器210逻辑自动分发在处理阵列212中。处理集群阵列212可以包括多达“n”个处理集群(例如,集群214a,集群214b,一直到集群214n)。处理集群阵列212的每个集群214a至214n均可执行大量并发线程。调度器210可以使用各种调度和/或工作分发算法来向处理集群阵列212的集群214a至214n分配工作,这些算法可以依据每种类型的程序或计算引起的工作负荷而变化。调度可以由调度器210动态地处置,或者可以在编译被配置成由处理集群阵列212执行的程序逻辑的过程中由编译器逻辑部分地协助。在一个实施例中,处理集群阵列212的不同集群214a至214n可以被分配用于处理不同类型的程序或用于执行不同类型的计算。处理集群阵列212可以被配置成执行各种类型的并行处理操作。在一个实施例中,处理集群阵列212被配置成执行通用并行计算操作。例如,处理集群阵列212可以包括用于执行处理任务包括视频和/或音频数据的过滤,执行建模操作包括物理操作,以及执行数据变换的逻辑。在一个实施例中,处理集群阵列212被配置成执行并行图形处理操作。在其中并行处理器200被配置成执行图形处理操作的实施例中,处理集群阵列212可以包括用于支持此类图形处理操作的执行的附加逻辑,包括但不限于用于执行纹理操作的纹理采样逻辑以及曲面细分逻辑和其他顶点处理逻辑。另外,处理集群阵列212可以被配置成执行与图形处理相关的着色器程序,诸如但不限于顶点着色器、曲面细分着色器、几何着色器和像素着色器。并行处理单元202可以经由i/o单元204从系统存储器传递数据以进行处理。在处理期间,可以在处理期间将经传递的数据存储到片上存储器(例如,并行处理器存储器222),然后写回到系统存储器。在一个实施例中,当并行处理单元202用于执行图形处理时,调度器210可以被配置成将处理工作负荷分成大致相等大小的任务,以更好地使得图形处理操作能够分发到处理集群阵列212的多个集群214a至214n。在一些实施例中,处理集群阵列212的各部分可以被配置成执行不同类型的处理。例如,第一部分可以被配置成执行顶点着色和拓扑生成,第二部分可以被配置成执行曲面细分和几何着色,第三部分可以被配置成执行像素着色或其他屏幕空间操作,以产生渲染的图像进行显示。由集群214a至214n中的一个或多个产生的中间数据可以存储在缓冲器中以允许中间数据在集群214a至214n之间传输以用于进一步处理。在操作期间,处理集群阵列212可以接收将经由调度器210执行的处理任务,所述调度器从前端208接收定义处理任务的命令。对于图形处理操作,处理任务可以包括要处理的数据例如表面(补片(patch))数据、图元数据、顶点数据和/或像素数据以及定义如何处理数据的状态参数和命令(例如,要执行哪个程序)的索引。调度器210可以被配置成获取对应于任务的索引或者可以从前端208接收索引。前端208可以被配置成确保处理集群阵列212在由传入命令缓冲器(例如,批处理缓冲器、入栈缓冲器等)指定的工作负荷被发起之前被配置成有效状态。并行处理单元202的一个或多个实例中的每一个均可与并行处理器存储器222耦合。并行处理器存储器222可以经由存储器交叉开关216来访问,所述存储器交叉开关可以从处理集群阵列212以及i/o单元204接收存储器请求。存储器交叉开关216可以经由存储器接口218访问并行处理器存储器222。存储器接口218可以包括多个分区单元(例如,分区单元220a,分区单元220b,一直到分区单元220n),这些分区单元可以各自耦合至并行处理器存储器222的一部分(例如,存储器单元)。在一个实现中,分区单元220a至220n的数量被配置成等于存储器单元的数量,使得第一分区单元220a具有对应的第一存储器单元224a,第二分区单元220b具有对应的存储器单元224b,以及第n分区单元220n具有对应的第n存储器单元224n。在其他实施例中,分区单元220a至220n的数量可能不等于存储器设备的数量。在各种实施例中,存储器单元224a至224n可以包括各种类型的存储器设备,包括动态随机存取存储器(dram)或图形随机存取存储器,诸如同步图形随机存取存储器(sgram),包括图形双倍数据速率(gddr)存储器。在一个实施例中,存储器单元224a至224n还可以包括3d堆叠式存储器,包括但不限于高带宽存储器(hbm)。本领域技术人员将会理解,存储器单元224a至224n的具体实现可以变化,并且可以由各种常规设计之一进行选择。诸如帧缓冲器或纹理映射的渲染目标可存储在存储器单元224a至224n上,从而允许分区单元220a至220n并行地写入每个渲染目标的各部分,以高效使用并行处理器存储器222的可用带宽。在一些实施例中,为了支持利用系统存储器连同本地高速缓存存储器的统一存储器设计,可以将并行处理器存储器222的本地实例排除在外。在一个实施例中,处理集群阵列212的集群214a至214n中的任一个可以处理将写入并行处理器存储器222内的存储器单元224a至224n中的任一个的数据。存储器交叉开关216可以被配置成将每个集群214a至214n的输出传递到任何分区单元220a至220n或另一个集群214a至214n,这可以对所述输出执行附加处理操作。每个集群214a至214n均可通过存储器交叉开关216与存储器接口218进行通信以针对各种外部存储器设备进行读取或写入操作。在一个实施例中,存储器交叉开关216可连接至存储器接口218以与i/o单元204通信,并且可连接至并行处理器存储器222的本地实例,从而使得不同处理集群214a至214n内的处理单元能够与系统存储器或对于并行处理单元202并非本地的其他存储器进行通信。在一个实施例中,存储器交叉开关216可以使用虚拟信道来分离集群214a至214n与分区单元220a至220n之间的业务流。虽然并行处理单元202的单个实例展示为在并行处理器200内,但并行处理单元202的任意数量的实例也可以被包括在内。例如,可以在单个插入式卡上提供并行处理单元202的多个实例,或者可以使多个插入式卡互连。即使不同实例具有不同的处理核数量、不同的本地并行处理器存储量和/或其他配置差异,并行处理单元202的不同实例也可以被配置成交互操作。例如,以及在一个实施例中,并行处理单元202的一些实例可以包括相对于其他实例的较高精度的浮点单元。并入有并行处理单元202或并行处理器200的一个或多个实例的系统可以以各种配置和形状因数来实现,包括但不限于台式计算机、膝上型计算机或手持式个人计算机、服务器、工作站、游戏控制台和/或嵌入式系统。图2b是根据实施例的分区系统220的框图。在一个实施例中,分区系统220是图2a的分区单元220a至220n中的一个的实例。如图所示,分区单元220包括l2高速缓存221、帧缓冲器接口225和rop226(光栅操作单元)。l2高速缓存221是被配置成执行从存储器交叉开关216和rop226所接收的加载和存储操作的读取/写入高速缓存。由l2高速缓存221向帧缓冲器接口225输出读未命中和紧急回写请求以进行处理。也可以经由帧缓冲器接口225向帧缓冲器发送更新以用于处理。在一个实施例中,帧缓冲器接口225与并行处理器存储器中的存储器单元中的一个诸如图2的存储器单元224a至224n(例如,在并行处理器存储器222内)交互。在图形应用中,rop226是执行诸如模板印刷、z测试、混合等光栅操作的处理单元。rop226随后输出图形存储器中存储的经处理图形数据。在一些实施例中,rop226包括压缩逻辑,所述压缩逻辑用于压缩写入存储器的深度或颜色数据,并对从存储器所读取的深度或颜色数据解压缩。所述压缩逻辑可以是使用多种压缩算法中的一种或多种的无损压缩逻辑。由rop226执行的压缩类型可以基于待压缩的数据的统计特性而变化。例如,在一个实施例中,逐图块地对深度和颜色数据执行δ色彩压缩。在一些实施例中,rop226被包括在每个处理集群(例如,图2的集群214a至214n)内而不是分区单元220内。在这个实施例中,通过存储器交叉开关216而不是像素片段数据来传输对像素数据的读取和写入请求。经处理图形数据可以显示在显示设备诸如图1的一个或多个显示设备110中的一个上,由(多个)处理器102路由以用于进一步处理,或者由图2a的并行处理器200内的处理实体中的一个路由以用于进一步处理。图2c是根据实施例的并行处理单元内的处理集群214的框图。在一个实施例中,处理集群是图2的处理集群214a至214n中的一个的实例。处理集群214可以被配置成并行地执行多个线程,其中术语“线程”是指在特定输入数据集上执行的特定程序的实例。在一些实施例中,使用单指令多数据(simd)指令发布技术来支持大量线程的并行执行,而无需提供多个独立的指令单元。在其他实施例中,使用单指令多线程(simt)技术来使用被配置成向处理集群的每一个内的一组处理引擎发出指令的公共指令单元来支持大量大致同步线程的并行执行。与所有处理引擎通常执行相同指令的simd执行机制不同,simt执行允许不同线程更容易地遵循穿过给定线程程序的发散执行路径。本领域技术人员将会理解,simd处理机制表示simt处理机制的功能子集。处理集群214的操作可以经由向simt并行处理器分发处理任务的流水线管理器232来控制。流水线管理器232从图2a的调度器210接收指令并且经由图形多处理器234和/或纹理单元236来管理那些指令的执行。所展示的图形多处理器234是simt并行处理器的示例性实例。然而,不同架构的各种类型的simt并行处理器可以被包括在处理集群214内。图形多处理器234的一个或多个实例可以被包括在处理集群214内。图形多处理器234可以处理数据,并且数据交叉开关240可以用于将经处理数据分配到包括其他着色单元的多个可能目的地中的一个。流水线管理器232可以通过为将经由数据交叉开关240分发的数据指定目的地来促进经处理数据的分发。处理集群214内的每个图形多处理器234均可包括相同的功能执行逻辑组(例如,算术逻辑单元、加载存储单元等)。功能执行逻辑可以通过流水线方式进行配置,其中可以在完成先前的指令之前发出新的指令。功能执行逻辑支持各种运算,包括整数和浮点算数、比较运算、布尔运算、位移位和各种代数函数的计算。在一个实施例中,可以利用相同的功能单元硬件来执行不同的操作,并且可以存在功能单元的任意组合。传输到处理集群214的指令构成线程。在一组并行处理引擎上执行的一组线程是线程组。线程组在不同的输入数据上执行相同的程序。线程组内的每个线程均可被分配到图形多处理器234内的不同处理引擎。线程组可以包括比图形多处理器234内的处理引擎的数量更少的线程。当线程组包括比处理引擎的数量更少的线程时,处理引擎中的一个或多个处理引擎可能在处理所述线程组的周期期间空闲。线程组还可以包括比图形多处理器234内的处理引擎的数量更多的线程。当线程组包括比图形多处理器234内的处理引擎的数量更多的线程时,可以在连续的时钟周期上执行处理。在一个实施例中,可以在图形多处理器234上同时执行多个线程组。在一个实施例中,图形多处理器234包括用于执行加载和存储操作的内部高速缓存存储器。在一个实施例中,图形多处理器234可以放弃内部高速缓存而是在处理集群214内使用高速缓存存储器(例如,l1高速缓存248)。每个图形多处理器234还可以访问在所有处理集群214之间共享的分区单元(例如,图2的分区单元220a至220n)内的l2高速缓存,并且可以用于在线程之间传递数据。图形多处理器234还可以访问片外全局存储器,所述片外全局存储器可以包括本地并行处理器存储器和/或系统存储器中的一个或多个。并行处理单元202外部的任何存储器可以用作全局存储器。其中处理集群214包括图形多处理器234的多个实例的实施例可以共享可以在l1高速缓存248中存储的公共指令和数据。每个处理集群214均可包括被配置成将虚拟地址映射到物理地址的mmu245(存储器管理单元)。在其他实施例中,mmu245中的一个或多个实例可以驻留在图2a的存储器接口218内。mmu245包括用于将虚拟地址映射到图块(tile)的物理地址(更多地提及分块)和可选地高速缓存行索引的一组页表条目(pte)。mmu245可以包括可以驻留在图形多处理器234或l1高速缓存248或处理集群214内的地址转换后备缓冲器(tlb)或高速缓存。对物理地址进行处理以分发表面数据访问局部性以实现分区单元之间的高效请求交错。可以使用高速缓存行索引来确定对高速缓存行的请求是命中还是未命中。在图形和计算应用中,处理集群214可以被配置成使得每个图形多处理器234均耦合至纹理单元236以执行纹理映射操作,例如确定纹理样本位置、读取纹理数据和过滤纹理数据。纹理数据是从内部纹理l1高速缓存(未示出)或者在一些实施例中从图形多处理器234内的l1高速缓存读取,并且是根据需要从l2高速缓存、本地并行处理器存储器或系统存储器获取。每个图形多处理器234向数据交叉开关240输出经处理任务以向另一个处理集群214提供经处理任务以用于进一步处理或经由存储器交叉开关216在l2高速缓存、本地并行处理器存储器或系统存储器中存储经处理任务。prerop242(预先光栅操作单元)被配置成从图形多处理器234接收数据,将数据引导到rop单元,这些rop单元可以如本文所述的那样用分区单元(例如,图2的分区单元220a至220n)定位。prerop242单元可以对颜色混合进行优化、组织像素颜色数据并执行地址转换。应当理解,本文所述的核架构是例示性的并且变型和修改是可能的。例如图形多处理器234、纹理单元236、prerop242等任意数量的处理单元可以被包括在处理集群214内。此外,虽然仅示出一个处理集群214,但如本文所述的并行处理单元可以包括处理集群214的任意数量的实例。在一个实施例中,每个处理集群214均可被配置成使用单独的和不同的处理单元、l1高速缓存等来独立于其他处理集群214而操作。图2d示出了根据一个实施例的图形多处理器234。在这样的实施例中,图形多处理器234与处理集群214的流水线管理器232耦合。图形多处理器234具有执行流水线,所述执行流水线包括但不限于指令高速缓存252、指令单元254、地址映射单元256、寄存器堆258、一个或多个通用图形处理单元(gpgpu)核262和一个或多个加载/存储单元266。gpgpu核262和加载/存储单元266经由存储器和高速缓存互连268与高速缓存存储器272和共享存储器270耦合。在一个实施例中,指令高速缓存252从流水线管理器232接收要执行的指令流。将这些指令高速缓存在指令高速缓存252中并分派用于由指令单元254执行。指令单元254可以将指令作为线程组(例如,经线)进行分派,线程组的每个线程均被分配到gpgpu核262内的不同执行单元。指令可以通过在统一地址空间内指定地址来访问本地、共享或全局地址空间中的任一个。地址映射单元256可以用于将统一地址空间中的地址转换成可由加载/存储单元266访问的不同存储器地址。寄存器堆258为图形多处理器324的功能单元提供一组寄存器。寄存器堆258为连接至图形多处理器324的功能单元(例如,gpgpu核262、加载/存储单元266)的数据路径的操作数提供临时存储。在一个实施例中,寄存器堆258在功能单元中的每一个之间进行划分,使得每个功能单元均被分配寄存器文件258的专用部分。在一个实施例中,寄存器堆258在正由图形多处理器324执行的不同经线之间进行划分。gpgpu核262可以各自包括用于执行图形多处理器324的指令的浮点单元(fpu)和/或整数算数逻辑单元(alu)。根据实施例,gpgpu核262的架构可以类似,也可以不同。例如,以及在一个实施例中,gpgpu核262的第一部分包括单精度fpu和整数alu,而gpgpu核的第二部分包括双精度fpu。在一个实施例中,fpu可以实现ieee754-2008浮点算数标准或启用可变精度浮点算数。另外,图形多处理器234还可以包括用于执行诸如复制矩形或像素混合操作的特定功能的一个或多个固定功能或特殊功能单元。在一个实施例中,gpgpu核中的一个或多个还可以包含固定或特殊功能逻辑。在一个实施例中,gpgpu核262包括能够对多组数据执行单个指令的simd逻辑。在一个实施例中,gpgpu核262可以物理地执行simd4、simd8和simd16指令,并且逻辑地执行simd1、simd2和simd32指令。用于gpgpu核的simd指令可以在编译时由着色器编译器生成,或者在执行为单个程序多数据(spmd)或simt架构编写和编译的程序时自动生成。为simt执行模型配置的程序的多个线程可以经由单个simd指令执行。例如并且在一个实施例中,执行相同或类似操作的八个simt线程可以经由单个simd8逻辑单元并行执行。存储器和高速缓存互连268是互连网络,所述互连网络将图形多处理器234的功能单元中的每一个连接至寄存器堆258和共享存储器270。在一个实施例中,存储器和高速缓存互连268是允许加载/存储单元266在共享存储器270与寄存器堆258之间实现加载和存储操作的交叉开关互连。寄存器堆258可以以与gpgpu核262相同的频率操作,因此gpgpu核262与寄存器堆258之间的数据传递具有非常低的等待时间。共享存储器270可以用于实现在图形多处理器234内的功能单元上执行的线程之间的通信。例如,高速缓存存储器272可以用作数据高速缓存,以高速缓存在功能单元与纹理单元236之间通信的纹理数据。共享存储器270也可以用作程序管理的高速缓存。除了在高速缓存存储器272内存储的经自动高速缓存的数据之外,在gpgpu核262上执行的线程还可以在共享存储器内以编程方式存储数据。图3a至图3b示出了根据实施例的附加图形多处理器。所展示的图形多处理器325、350是图2c的图形多处理器234的变体。所展示的图形多处理器325、350可以被配置成能够同时执行大量执行线程的流式多处理器(sm)。图3a展示了根据附加实施例的图形多处理器325。图形多处理器325包括相对于图2d的图形多处理器234的执行资源单元的多个附加实例。例如,图形多处理器325可以包括指令单元332a至332b、寄存器堆334a至334b和(多个)纹理单元344a至344b的多个实例。图形多处理器325还包括多组图形或计算执行单元(例如,gpgpu核336a至336b、gpgpu核337a至337b、gpgpu核338a至338b)和多组加载/存储单元340a至340b。在一个实施例中,执行资源单元具有公共指令高速缓存330、纹理和/或数据高速缓存存储器342和共享存储器346。各种部件可以经由互连结构327进行通信。在一个实施例中,互连结构327包括一个或多个交叉开关,所述一个或多个交叉开关用于实现图形多处理器325的各种部件之间的通信。在一个实施例中,互连结构327是独立的高速网络结构层,图形多处理器325的每个部件都堆叠在所述独立的高速网络结构层上。图形多处理器325的部件经由互连结构327与远程部件通信。例如,gpgpu核336a至336b、337a至337b和3378a至338b可以各自经由互连结构327与共享存储器346通信。互连结构327可以对图形多处理器325内的通信进行仲裁以确保部件之间的公平带宽分配。图3b展示了根据附加实施例的图形多处理器350。如图2d和图3a所示,图形处理器包括多组执行资源356a至356d,其中每组执行资源均包括多个指令单元、寄存器堆、gpgpu核和加载存储单元。执行资源356a至356d可以与(多个)纹理单元360a至360d一起工作以进行纹理操作,同时共享指令高速缓存354和共享存储器362。在一个实施例中,执行资源356a至356d可以共享指令高速缓存354和共享存储器362以及纹理和/或数据高速缓存存储器358a至358b的多个实例。各种部件可以经由与图3a的互连结构327类似的互连结构352进行通信。本领域的技术人员将理解,图1、图2a至图2d和图3a至图3b中所述的架构是描述性的,而不限制本发明的实施例的范围。因此,本文所述的技术可以在任何适当配置的处理单元上实现,包括但不限于:一个或多个移动应用处理器;一个或多个台式计算机或服务器中央处理单元(cpu),包括多核cpu;一个或多个并行处理单元诸如图2a的并行处理单元202;以及一个或多个图形处理器或专用处理单元,而不脱离本文所述的实施例的范围。在一些实施例中,如本文所述的并行处理器或gpgpu通信地耦合至主机/处理器核以加快图形操作、机器学习操作、模式分析操作和各种通用gpu(gpgpu)功能。gpu可以通过总线或其他互连(例如,诸如pcie或nvlink的高速互连)通信地耦合至主机处理器/核。在其他实施例中,gpu可以与核一样集成在相同的封装或芯片上并且通过内部处理器总线/互连(即,在封装或芯片内部)通信地耦合至所述核。不管gpu连接的方式如何,处理器核都可以以工作描述符中包含的命令/指令序列的形式向gpu分配工作。然后,gpu使用专用电路/逻辑来高效地处理这些命令/指令。用于gpu到主机处理器互连的技术图4a展示了其中多个gpu410至413通过高速链路440至443(例如,总线、点对点互连等)通信地耦合至多个多核处理器405至406的示例性架构。在一个实施例中,高速链路440至443支持4gb/s、30gb/s、80gb/s或更高的通信吞吐量,这取决于实现。可以使用各种互连协议,包括但不限于pcie4.0或5.0和nvlink2.0。然而,本发明的基本原理不限于任何特定的通信协议或吞吐量。此外,在一个实施例中,gpu410至413中的两个或更多个通过高速链路444至445互连,这可以使用与用于高速链路440至443的协议/链路相同或不同的协议/链路来实现。类似地,多核处理器405至406中的两个或更多个可以通过高速链路433连接,所述高速链路可以是以20gb/s、30gb/s、120gb/s或更高的速度运行的对称多处理器(smp)总线。可替代地,图4a中所示的各种系统部件之间的所有通信均可使用相同的协议/链路(例如,通过公共互连结构)来完成。然而,如所提及的,本发明的基本原理不限于任何特定类型的互连技术。在一个实施例中,每个多核处理器405至406分别经由存储器互连430至431通信地耦合至处理器存储器401至402,并且每个gpu410至413分别通过gpu存储器互连450至453通信地耦合至gpu存储器420至423。存储器互连430至431和450至453可以利用相同或不同的存储器访问技术。以示例而不是限制的方式,处理器存储器401至402和gpu存储器420至423可以是诸如动态随机存取存储器(dram)(包括堆叠式dram)、图形ddrsdram(gddr)(例如,gddr5、gddr6)或高带宽存储器(hbm)的易失性存储器,和/或可以是诸如3dxpoint或nano-ram的非易失性存储器。在一个实施例中,存储器的某个部分可以是易失性存储器,而另一个部分可以是非易失性存储器(例如,使用两级存储器(2lm)层级结构)。如下所述,尽管各种处理器405至406和gpu410至413均可分别物理地耦合至特定存储器401至402、420至423,但可以实现统一存储器架构,其中相同的虚拟系统地址空间(也称为“有效地址”空间)分发在所有各种物理存储器中。例如,处理器存储器401至402可以各自包括64gb的系统存储器地址空间,并且gpu存储器420至423可以各自包括32gb的系统存储器地址空间(导致在所述示例中产生总共256gb的可寻址存储空间)。图4b展示了根据一个实施例的多核处理器407与图形加速模块446之间的互连的附加细节。图形加速模块446可以包括集成在经由高速链路440耦合至处理器407的线卡上的一个或多个gpu芯片。可替代地,图形加速模块446可以与处理器407一样集成在相同的封装或芯片上。所展示的处理器407包括多个核460a至460d,这些核各自具有转换后备缓冲器461a至461d和一个或多个高速缓存462a至462d。这些核可以包括用于执行指令和处理未展示的数据以避免模糊本发明的基本原理的各种其他部件(例如,指令获取单元、分支预测单元、解码器、执行单元、重排序缓冲器等)。高速缓存462a至462d可以包括1级(l1)和2级(l2)高速缓存。此外,一个或多个共享高速缓存456可以被包括在高速缓存层级结构中并由各组核460a至460d共享。例如,处理器407的一个实施例包括24个核,这些核各自具有它自己的l1高速缓存、12个共享l2高速缓存和12个共享l3高速缓存。在这个实施例中,l2高速缓存和l3高速缓存中的一个由两个相邻核共享。处理器407和图形加速器集成模块446与系统存储器441连接,所述系统存储器可以包括处理器存储器401至402。通过一致性总线464经由核间通信来为各种高速缓存462a至462d、456和系统存储器441中存储的数据和指令保持一致性。例如,每个高速缓存均可具有与其关联的高速缓存一致性逻辑/电路,以响应于所检测的对特定高速缓存行的读取或写入而通过一致性总线464进行通信。在一个实现中,通过一致性总线464实现高速缓存窥探协议以窥探高速缓存访问。本领域技术人员可以很好理解高速缓存窥探/一致性技术,以避免模糊本发明的基本原理,这里不再详细描述。在一个实施例中,代理电路425将图形加速模块446通信地耦合至一致性总线464,从而允许图形加速模块446作为核的对等体参与缓存一致性协议。具体地讲,接口435通过高速链路440(例如,pcie总线、nvlink等)向代理电路425提供连接性,并且接口437将图形加速模块446连接至链路440。在一个实现中,加速器集成电路436代表图形加速模块446的多个图形处理引擎431、432n提供高速缓存管理、存储器访问、上下文管理和中断管理服务。图形处理引擎431、432n可以各自包括单独的图形处理单元(gpu)。可替代地,图形处理引擎431、432n可以在gpu内包括不同类型的图形处理引擎诸如图形执行单元、媒体处理引擎(例如,视频编码器/解码器)、采样器和块图像传输引擎。换句话讲,图形加速模块可以是具有多个图形处理引擎431-432n的gpu,或图形处理引擎431-432n可以是集成在公共包、线卡或芯片上的单独gpu。在一个实施例中,加速器集成电路436包括存储器管理单元(mmu)439,所述存储器管理单元用于执行诸如虚拟到物理存储器转换(也称为有效到实际存储器转换)的各种存储器管理功能和用于访问系统存储器441的存储器访问协议。mmu439还可以包括用于高速缓存虚拟/有效到物理/实际地址转换的转换后备缓冲器(tlb)(未示出)。在一个实现中,高速缓存438存储用于由图形处理引擎431-432n高效访问的命令和数据。在一个实施例中,使高速缓存438和图形存储器433-434n中存储的数据与核高速缓存462a至462d、456和系统存储器411保持一致。如所提及的,这可以经由代理电路425来完成,所述代理电路代表高速缓存438和存储器433-434n参与高速缓存一致性机制(例如,向高速缓存438发送与处理器高速缓存462a至462d、456上的高速缓存行的修改/访问相关的更新并从高速缓存438接收更新)。一组寄存器445存储由图形处理引擎431-432n执行的线程的上下文数据,并且上下文管理电路448管理线程上下文。例如,上下文管理电路448可以执行保存和恢复操作以在上下文切换期间保存和恢复各种线程的上下文(例如,其中第一线程被保存并且第二线程被存储,使得第二线程可以由图形处理引擎执行)。例如,在上下文切换时,上下文管理电路448可以将当前寄存器值存储到存储器中的指定区域(例如,由上下文指针标识)。所述上下文管理电路可以在返回上下文时恢复寄存器值。在一个实施例中,中断管理电路447接收并处理从系统设备所接收的中断。在一个实现中,由mmu439将来自图形处理引擎431的虚拟/有效地址转换为系统存储器411中的实际/物理地址。加速器集成电路436的一个实施例支持多个(例如,4个、8个、16个)图形加速器模块446和/或其他加速器设备。图形加速器模块446可以专用于在处理器407上执行的单个应用,或者可以在多个应用之间共享。在一个实施例中,呈现虚拟图形执行环境,其中图形处理引擎431-432n的资源与多个应用或虚拟机(vm)共享。资源可以被细分为基于与vm和/或应用相关联的处理要求和优先级而分配给不同的vm和/或应用的“分片”。因此,加速器集成电路充当图形加速模块446的系统的桥,并提供地址转换和系统存储器高速缓存服务。此外,加速器集成电路436可以为主机处理器提供虚拟化设施以管理图形处理引擎、中断和存储器管理的虚拟化。由于图形处理引擎431-432n的硬件资源显式地地映射到由主机处理器407看到的实际地址空间,因此任何主处理器都可以使用有效地址值来为这些资源直接寻址。在一个实施例中,加速器集成电路436的一个功能是图形处理引擎431-432n的物理分离,使得它们作为独立单元出现在系统上。如所提及的,在所展示的实施例中,一个或多个图形存储器433-434m分别耦合至图形处理引擎431-432n中的每一个。图形存储器433-434m存储正由图形处理引擎431-432n中的每一个处理的指令和数据。图形存储器433-434m可以是诸如dram(包括堆叠式dram)、gddr存储器(例如,gddr5、gddr6)或hbm的易失性存储器,和/或可以是诸如3dxpoint或nano-ram的非易失性存储器。在一个实施例中,为了减少链路440上的数据流量,使用偏置技术来确保图形存储器433-434m中存储的数据是图形处理引擎431-432n最频繁使用,并且核460a至460d优选不使用(至少不频繁使用)的数据。类似地,偏置机制试图使核(并且优选地不是图形处理引擎431-432n)所需的数据保持在核和系统存储器411的高速缓存462a至462d、456内。图4c展示了其中加速器集成电路436集成在处理器407内的另一个实施例。在这个实施例中,图形处理引擎431432n经由接口437和接口435来直接通过高速链路440与加速器集成电路436进行通信(这也可以利用任何形式的总线或接口协议)。加速器集成电路436可以执行与关于图4b所描述的操作相同的操作,但考虑到其与一致性总线462和高速缓存462a至462d、426紧密接近,可能以较高的吞吐量进行操作。一个实施例支持不同的编程模型,包括专用进程编程模型(不具有图形加速模块虚拟化)和共享编程模型(具有虚拟化)。共享编程模型可以包括由加速器集成电路436控制的编程模型和由图形加速模块446控制的编程模型。在专用进程模型的一个实施例中,图形处理引擎431-432n在单个操作系统下专用于单个应用或进程。单个应用可以将其他应用请求集中到图形引擎431432n,从而在虚拟机(vm)/分区内提供虚拟化。在专用进程编程模型中,图形处理引擎431-432n可以由多个vm/应用分区共享。共享模型需要系统管理程序,所述系统管理程序用于将图形处理引擎431-432n虚拟化,以允许由每个操作系统进行访问。对于没有管理程序的单分区系统,图形处理引擎431-432n由操作系统拥有。在这两种情况下,操作系统都可以将图形处理引擎431-432n虚拟化以提供对每个进程或应用的访问。对于共享编程模型,图形加速模块446或单独图形处理引擎431-432n使用进程句柄来选择进程要素。在一个实施例中,进程要素被存储在系统存储器中并且可使用本文所述的有效地址到实际地址转换技术来寻址。所述进程句柄可以是在向图形处理引擎431-432n注册它的上下文(即,调用系统软件以向进程要素链表添加进程要素)时向主机进程提供特定于实现的值。所述进程句柄的低16位可以是进程要素链表内的进程要素的偏移量。图4d展示了示例性加速器集成分片490。如本文所用,“分片”包括加速器集成电路436的处理资源的指定部分。系统存储器411内的应用有效地址空间482存储进程要素483。在一个实施例中,进程要素483响应于来自在处理器407上执行的应用480的gpu调用481而被存储。进程要素483包含相应应用480的处理状态。进程要素483中包含的工作描述符(wd)484可以是应用所请求的单个作业,或者可以包含指向作业队列的指针。在后一种情况下,wd484是指向应用地址空间482中的作业请求队列的指针。图形加速模块446和/或单独图形处理引擎431-432n可以由系统中的全部或部分进程共享。本发明的实施例包括用于建立处理状态并向图形加速模块446发送wd484以在虚拟环境中开始作业的基础结构。在一个实现中,专用进程编程模型是特定于具体实施的。在这个模型中,单个进程拥有图形加速模块446或单独的图形处理引擎431。由于图形加速模块446由单个进程拥有,因此管理程序初始化加速器集成电路436以获得所属分区,并且操作系统在图形加速模块446被分配时初始化加速器集成电路436以获取所属进程。在操作中,加速器集成分片490中的wd获取单元491获取下一个wd484,所述wd包括将由图形加速模块446的图形处理引擎之一进行的工作的指示。如图所示,来自wd484的数据可以被存储在寄存器445中并由mmu439、中断管理电路447和/或上下文管理电路448使用。例如,mmu439的一个实施例包括用于访问os虚拟地址空间485内的段/页表486的段/页步行(walk)电路。中断管理电路447可以处理从图形加速模块446所接收的中断事件492。当执行图形操作时,由图形处理引擎431-432n生成的有效地址493由mmu439转换为实际地址。在一个实施例中,针对每个图形处理引擎431-432n和/或图形加速模块446复制同一组寄存器445,并且可以由管理程序或操作系统初始化这一组寄存器。这些复制的寄存器中的每一个均可被包括在加速器集成分片490中。表1中示出了可以由管理程序初始化的示例性寄存器。表1-管理程序初始化寄存器1分片控制寄存器2实际地址(ra)调度进程区域指针3授权掩码覆盖(override)寄存器4中断向量表条目偏移5中断向量表条目极限6状态寄存器7逻辑分区id8实际地址(ra)管理程序加速器利用记录指针9存储描述寄存器表2中示出了可以由操作系统初始化的示例性寄存器。表2-操作系统初始化寄存器1进程和线程标识2有效地址(ea)上下文保存/恢复指针3虚拟地址(ra)加速器利用记录指针4虚拟地址(ra)存储段表指针5授权掩码6工作描述符在一个实施例中,每个wd484均特定于特定图形加速模块446和/或图形处理引擎431-432n。所述wd包含图形处理引擎431-432n完成其工作所需的所有信息,或者所述wd可以是指向应用已经建立了要完成的工作命令队列的存储器位置的指针。图4e展示了共享模型的一个实施例的附加细节。所述实施例包括其中存储了进程要素列表499的管理程序实际地址空间498。管理程序实际地址空间498可经由管理程序496来访问,所述管理程序将操作系统495的图形加速模块引擎虚拟化。共享编程模型允许来自系统中的全部或部分分区的全部或部分进程使用图形加速模块446。有两种编程模型,其中图形加速模块446由多个进程和分区共享:时间分片共享和图形直接共享。在这个模型中,系统管理程序496拥有图形加速模块446并且使其功能对所有操作系统495可用。为使图形加速模块446支持系统管理程序496的虚拟化,图形加速模块446可遵守以下要求:1)应用作业请求必须是自主的(即,不需要维持作业之间的状态),或者图形加速模块446必须提供上下文保存和恢复机制。2)图形加速模块446保证在指定时间量内完成应用作业请求,包括任何转换错误,或者图形加速模块446提供抢占作业处理的能力。3)当以直接共享编程模型操作时,必须保证进程中图形加速模块446的公平性。在一个实施例中,对于共享模型,需要应用480来利用图形加速模块446类型、工作描述符(wd)、授权掩码寄存器(amr)值以及上下文保存/恢复区域指针(csrp)来进行操作系统495系统调用。图形加速模块446类型描述了系统调用的目标加速功能。图形加速模块446类型可以是特定于系统的值。所述wd专门针对图形加速模块446来格式化,并且可以呈以下形式:图形加速模块446命令;指向用户定义结构的有效地址指针;指向命令队列的有效地址指针;或用于描述将由图形加速模块446进行的工作的任何其他数据结构。在一个实施例中,amr值是用于当前进程的amr状态。传递给操作系统的值与设置amr的应用类似。如果加速器集成电路436和图形加速模块446的实现不支持用户授权掩码覆盖寄存器(uamor),则操作系统可以在管理程序调用中传递amr之前向amr值应用当前uamor值。在将amr置于进程要素483之前,管理程序496可以可选地应用当前授权掩码覆盖寄存器(amor)值。在一个实施例中,csrp是包含应用地址空间482中供图形加速模块446保存和恢复上下文状态的区域的有效地址的寄存器445中的一个。如果不需要在作业之间保存状态或当作业被抢占时,这个指针是可选的。所述上下文保存/恢复区域可以是插接的系统存储器。在接收到系统调用时,操作系统495可以验证应用480已注册并被授权使用图形加速模块446。操作系统495然后利用表3中所示的信息来调用管理程序496。表3-操作系统对管理程序的调用参数1工作描述符(wd)2授权掩码寄存器(amr)值(可能已掩蔽)3有效地址(ea)上下文保存/恢复区域指针(csrp)4进程id(pid)和可选的线程id(tid)5虚拟地址(va)加速器利用记录指针(aurp)6存储段表指针(sstp)的虚拟地址7逻辑中断服务号(lisn)在接收到管理程序调用时,管理程序496可以验证操作系统495已注册并被授权使用图形加速模块446。管理程序496然后将进程要素483针对对应图形加速模块446类型放入进程要素链表中。进程要素可以包含表4中所示的信息。表4-进程要素信息在一个实施例中,管理程序将寄存器445的多个加速器集成分片490初始化。如图4f所展示,本发明的一个实施例采用可经由用于访问物理处理器存储器401至402和gpu存储器420至423的公共虚拟存储器地址空间来寻址的统一存储器。在这个实现中,在gpu410至413上执行的操作利用相同的虚拟/有效存储器地址空间来访问处理器存储器401至402,反之亦然,由此简化可编程性。在一个实施例中,将虚拟/有效地址空间的第一部分分配给处理器存储器401,将第二部分分配给第二处理器存储器402,将第三部分分配给gpu存储器420,以此类推。整个虚拟/有效存储器空间(有时称为有效地址空间)由此分布在处理器存储器401至402和gpu存储器420至423中的每一个上,从而允许任何处理器或gpu访问具有映射到所述存储器的虚拟地址的任何物理存储器。在一个实施例中,mmu439a至439e中的一个或多个内的偏置/一致性管理电路494a至494e确保了主机处理器(例如,405)与gpu410至413的高速缓存之间的高速缓存一致性,并且实现了指示其中应当存储某些类型的数据的物理存储器的偏置技术。尽管在图4f中展示了偏置/一致性管理电路494a至494e的多个实例,但偏置/一致性电路也可以在一个或多个主机处理器405的mmu内和/或在加速器集成电路436内实现。一个实施例允许将gpu附接的存储器420至423映射为系统存储器的一部分,并使用共享虚拟存储器(svm)技术进行访问,但不会遭受与全系统高速缓存一致性相关的典型性能缺陷。gpu附接的存储器420至423作为系统存储器来访问的能力不会造成繁重的高速缓存一致性开销,这为gpu卸载提供了有利的操作环境。这种安排允许主机处理器405软件设置操作数并访问计算结果,而不具有传统i/odma数据拷贝的开销。这些传统拷贝涉及驱动器调用、中断和存储器映射i/o(mmio)访问,这些访问相对于简单内存访问来说都是低效的。同时,在不具有高速缓存一致性开销的情况下访问gpu附接存储器420至423的能力对于卸载计算的执行时间可能是关键的。例如,在具有大量流式写入存储器业务的情况下,高速缓存一致性开销可以显著降低由gpu410至413看到的有效写入带宽。操作数设置的效率、结果访问的效率以及gpu计算的效率都在确定gpu卸载的有效性方面发挥着重要作用。在一个实现中,gpu偏置与主机处理器偏置之间的选择由偏置跟踪器数据结构驱动。例如,可以使用偏置表,所述偏置表可以是每个gpu附接存储器页包括1或2个位的页粒度结构(即,以存储器页的粒度来控制)。偏置表可以在一个或多个gpu附接存储器420至423的被盗存储器范围内实现,在gpu410至413中具有或不具有偏置高速缓存(例如,以高速缓存频繁/最近使用的偏置表的条目)。可替代地,整个偏置表均可保持在gpu内。在一个实现中,在实际访问gpu存储器之前访问与对gpu附接存储器420至423的每次访问相关联的偏置表条目,从而使得以下操作。首先,将来自gpu410至413的在gpu偏置中发现其页的本地请求直接转发到对应的gpu存储器420至423。将来自gpu的在主机偏置中发现其页的本地请求转发给处理器405(例如,如上所述通过高速链路)。在一个实施例中,来自处理器405的在主机处理器偏置中发现所请求的页的请求完成了像正常存储器读取那样的请求。可替代地,可以将针对gpu偏置页的请求转发给gpu410至413。如果gpu当前未使用所述页,则gpu可以将所述页转换为主机处理器偏置。页的偏置状态可以通过基于软件的机制、基于硬件辅助软件的机制,或者对于一组有限的情况,基于仅硬件的机制来改变。一种用于改变偏置状态的机制采用api调用(例如opencl),所述api调用继而调用gpu设备驱动器,所述驱动器继而向gpu发送消息(或将命令描述符入队),从而引导所述gpu改变偏置状态,并且对于某些转换,在主机中执行高速缓存转储清除操作。所述高速缓存转储清除操作是从主机处理器405偏置到gpu偏置的转换所必需的,而对于相反转换则不是必需的。在一个实施例中,通过暂时呈现主机处理器405不可高速缓存的gpu偏置页来保持缓存一致性。为了访问这些页,处理器405可以请求来自gpu410的访问,gpu可以依据实现立即授权访问也可以不授权访问。因此,为了减少处理器405与gpu410之间的通信,有利的是确保gpu偏置页是gpu所需但不是主机处理器405所需的页,反之亦然。图形处理流水线图5展示了根据实施例的图形处理流水线500。在一个实施例中,图形处理器可以实现所展示的图形处理流水线500。所述图形处理器可以被包括在如本文所述的并行处理子系统诸如图2a的并行处理器200内,在一个实施例中,所述并行处理器是图1的(多个)并行处理器112的变体。如本文所述,各种并行处理系统可以经由并行处理单元(例如,图2a的并行处理单元202)的一个或多个实例来实现图形处理流水线500。例如,着色器单元(例如,图3a的图形多处理器325)可以被配置成执行顶点处理单元504、曲面细分控制处理单元508、曲面细分评估处理单元512、几何处理单元516和片段/像素处理单元524中的一个或多个的功能。数据组装器502,图元组装器506、514、518,曲面细分单元510,光栅化器522和光栅操作单元526的功能还可以由处理集群(例如,图2a的处理集群214)内的其他处理引擎和对应的分区单元(例如,图2a的分区单元220a至220n)执行。图形处理流水线500还可以使用一个或多个功能的专用处理单元来实现。在一个实施例中,图形处理流水线500的一个或多个部分可以由通用处理器(例如,cpu)内的并行处理逻辑执行。在一个实施例中,图形处理流水线500的一个或多个部分可经由存储器接口528访问片上存储器(例如,如图2a所示的并行处理器存储器222),所述存储器接口可以是图2a的存储器接口218的实例。在一个实施例中,数据组装器502是收集表面和图元的顶点数据的处理单元。数据组装器502然后向顶点处理单元504输出包括顶点属性的顶点数据。顶点处理单元504是可编程执行单元,所述可编程执行单元执行顶点着色器程序,从而照明和变换如顶点着色器程序所指定的顶点数据。顶点处理单元504读取高速缓存、本地或系统存储器中存储的用于处理顶点数据的数据,并且可以编程为将顶点数据从基于对象的坐标表示变换为世界空间坐标空间或归一化设备坐标空间。图元组装器506的第一实例从顶点处理单元504接收顶点属性。图元组装器506根据需要读取所存储的顶点属性并构造图形图元以由曲面细分控制处理单元508进行处理。图形图元包括如各种图形处理应用编程接口(api)所支持的三角形、线段、点、补片等等。曲面细分控制处理单元508将输入顶点视为几何补片的控制点。这些控制点从来自补片的输入表示(例如,补片的基础)变换为适用于由曲面细分评估处理单元512进行表面评估的表示。曲面细分控制处理单元508还可以计算几何补片的边缘的曲面细分因子。曲面细分因子适用于单个边缘,并量化与边缘相关的依赖于视图的细节等级。曲面细分单元510被配置成接收补片的边缘的曲面细分因子并将补片细分为多个几何图元诸如线、三角形或四边形图元,所述多个几何图元被传输到曲面细分评估处理单元512。曲面细分评估处理单元512对细分的补片的参数化坐标进行操作以生成与几何图元相关的每个顶点的表面表示和顶点属性。图元组装器514的第二实例从曲面细分评估处理单元512接收顶点属性,根据需要读取所存储的顶点属性,并构造图形图元以由几何处理单元516处理。几何处理单元516是可编程执行单元,所述可编程执行单元执行几何着色器程序,以变换如几何着色器程序所指定的从图元组装器514所接收的图形图元。在一个实施例中,几何处理单元516被编程为将图形图元细分为一个或多个新的图形图元并且计算用于将新的图形图元光栅化的参数。在一些实施例中,几何处理单元516可以添加或删除几何流中的元素。几何处理单元516向图元组装器518输出指定新图形图元的参数和顶点。图元组装器518从几何处理单元516接收参数和顶点,并构建图形图元以由视口缩放、拣选和剪辑单元520进行处理。几何处理单元516读取并行处理器存储器或系统存储器中存储的数据以用于处理几何数据。视口缩放、拣选和剪辑单元520执行剪辑、拣选和视口缩放,并向光栅化器522输出经处理的图形图元。光栅化器522可以执行深度拣选和其他基于深度的优化。光栅化器522还对新图形图元执行扫描转换以生成段并向段/像素处理单元524输出这些段和关联的覆盖数据。片段/像素处理单元524是被配置成执行片段着色器程序或像素着色器程序的可编程执行单元。片段/像素处理单元524变换从光栅化器522所接收的片段或像素,如片段或像素着色器程序所指定的。例如,片段/像素处理单元524可以被编程为执行包括但不限于纹理映射、着色、混合、纹理校正和透视校正的操作,以产生输出到光栅操作单元526的着色片段或像素。片段/像素处理单元524可以读取并行处理器存储器或系统存储器中存储的数据,以在处理片段数据时使用。片段或像素着色器程序可以被配置成依据针对处理单元进行配置的采样速率以样本、像素、图块或其他粒度着色。光栅操作单元526是执行包括但不限于模板印刷、z测试、混合等光栅操作的处理单元,并且将像素数据作为经处理图形数据输出以存储在图形存储器中(例如,图2中的并行处理器存储器222,和/或如图1中的系统存储器104,以在一个或多个显示设备110上显示或者由一个或多个处理器102或(多个)并行处理器112中的一个进一步处理。在一些实施例中,光栅操作单元526被配置成压缩写入存储器的z或颜色数据,并解压缩从存储器读取的z或颜色数据。光场显示现在转到图6a,示出了光场显示系统600,在所述光场显示系统中,多个显示平面602(602a至602c)被安排成堆叠配置。每个显示平面602可以与例如堆叠安排的液晶显示器(lcd)面板中的lcd面板相对应。光场显示系统600可以并入近眼设备中,所述近眼设备如例如向头戴式显示器(hmd)设备的穿戴者(例如,用户)呈现三维(3d)虚拟现实(vr)和/或增强现实(ar)内容的hmd设备(未示出)。3d内容可以是模拟的(例如,由执行多人游戏应用产生)、影片的(例如,由视频/图像采集产生的)或其任何组合。增强的图形处理器604(例如,图形处理单元/gpu)可以将3d内容合成为光场,所述光场在被渲染到显示平面602时向穿戴者提供减少视觉不适的聚焦提示。更具体地,显示平面602可以以乘法方式调制均匀背光,从而使得当通过透镜观察到时,显示平面602除了双眼差异之外还提供聚焦提示。所展示的图形处理器604包括用于执行重投影、中央凹化、图块装仓、图像扭曲以及更高效的数据格式化的逻辑606(例如,逻辑指令、可配置逻辑、固定功能硬件逻辑等、或其任何组合)。如将更详细讨论的,图形处理器604可以被认为在逻辑604的操作减小等待时间、改善性能、降低功耗和/或延长电池寿命方面是增强的。图6b展示了增强的图形处理器604可以是半导体封装体装置,所述半导体封装体装置包括耦合至逻辑606(例如,晶体管阵列和其他集成电路/ic部件)的一个或多个衬底608(例如,硅、蓝宝石、砷化镓)。如已经指出的,逻辑606可以至少部分地在可配置逻辑或固定功能逻辑硬件中实施。数据格式化现在转到图6c,示出了多个显示平面610(610a至610n)。通常,呈现在公共像素位置612(612a至612n)处的内容可能是类似的。在所展示的示例中,与公共像素位置612相关联的图像数据(例如,图元/多边形、顶点、纹理、色彩、深度信息)被存储在相邻存储器位置614(例如,单个高速缓存行)。通过跨所述多个显示平面610同时渲染来自相邻存储器位置614的图像数据,可以实现显著等待时间减小。例如,如果将被呈现在显示平面610上的3d内容包括包含小鸟的自然场景,则小鸟可能位于显示平面610中的每一个中的大约相同x、y坐标位置中。因此,同一图像数据可以仅被检索一次并且跨所述多个显示平面610重新使用,而不是从存储器(例如,高速缓存)驱逐图像数据并且在每次针对不同显示平面610处理场景时再次检索所述图像数据。实际上,单指令多数据(simd)指令可以被分派给多个图形执行单元以便同时渲染图像数据。此外,图像数据可以根据存储器布局(例如,高速缓存行大小)和/或simd指令宽度与包含公共像素位置112的像素子跨度(subspan)(例如,2x2像素邻域)相关联。图6d示出了管理图像数据的方法616。方法616通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法616可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、固件、闪存等的机器或计算机可读存储介质中,在如例如可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)等可配置逻辑中,在使用如例如应用专用集成电路(asic)、互补金属氧化物半导体(cmos)或晶体管-晶体管逻辑(ttl)技术等电路技术的固定功能硬件逻辑中,或其任何组合。例如,用于执行方法616中所示出的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,包括如java、smalltalk、c++等面向对象的编程语言以及如“c”编程语言或类似的编程语言等常规程序化编程语言。另外地,逻辑指令可以包括汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路系统的配置数据、对电子电路系统进行个性化设置的状态信息和/或硬件原生的其他结构部件(例如,主机处理器、中央处理单元/cpu、微控制器等)。所展示的处理框618提供关于多个显示平面识别像素位置。在框620处,与像素位置和所述多个显示平面相关联的图像数据可以存储到相邻存储器位置。在一个示例中,相邻存储器位置包含在单个高速缓存行内。另外,图像数据可以与包含像素位置的像素子跨度相关联。所展示的框622跨所述多个显示平面同时渲染来自相邻存储器位置的图像数据。框622可以包括将simd指令分派给多个图形执行单元。框624可以任选地将同时渲染的图像数据变换成与所述多个显示平面相关联的表面布局。例如,如果到显示面板的接口调用显示扫描输出操作来在检索针对下一个显示平面的数据之前检索针对给定显示平面的所有数据,则框624可以包括将经渲染图像数据重新安排到存储器中以便与接口的期望对齐。图6e示出了进行存储器设置程序的方法626。方法626通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法626可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。在所展示的示例中,在处理框628处,应用程序经由3d应用程序编程接口(api)创建用于光场显示的可显示平面。另外,在框630处,用户模式驱动器(umd)可以为可显示平面创建存储器分配。在所展示的示例中,存储器分配与本文描述的增强的存储器布局(例如,数据格式)相对应。图6f示出了管理图像数据的更详细方法632。方法632通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法632可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。在所展示的示例中,在处理框634处,应用程序经由3dapi提交绘制请求。框636可以向图形处理器提交图画,其中,在框638处,图形处理器可以执行流水线操作,如例如顶点获取(vf)、顶点着色(vs)、剪裁(cl)、光栅化等。另外,当将图画分解成单独像素(或像素的2x2子跨度)时,所展示的框640可以跨多个显示平面同时向并行执行单元提交每个像素。例如,如果执行单元支持simd8分派,则框640可以以单线程分派提交来自八个不同显示平面的八个像素。如所展示的框642,绘制工作可以完成并且附加的帧渲染可以继续。因此,图6c至图6f展示了增强的数据格式化技术可以使用更高效的数据存储和线程分派来实现包含光场显示的系统中的减小的等待时间、提高的性能。此外,提高的性能可能导致较小的功耗和较长的电池寿命。重投影现在转到图7a,示出了源视图644(例如,视口、渲染目标)和重投影视图646。源视图644可以与多个显示平面中的第一显示平面相关联,而重投影视图646可以与所述多个显示平面中的第二(例如,不同)显示平面相关联。重投影视图646通常可以从源视图644中生成,而不是从“头”渲染重投影视图646。在所展示的示例中,重投影视图646包括“孔”648(例如,缺失色彩、纹理或其他图像数据的区域)。孔648可以是呈现在第一显示平面上的3d内容的位置与呈现在第二显示平面上的相同3d内容的位置之间的轻微差别的结果。如将更加详细讨论的,多种增强的重投影技术可以用于“填充”孔648(例如,为所述孔确定图像数据)。例如,孔648可以可以基于以下各项填充:与源视图644相对应的扩展视场数据650;与源视图644相对应的光栅化数据652;与重投影视图646相关联的光栅化数据654;或其任何组合。图7b示出了增强重投影视图的方法656。方法656通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法656可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。所展示的处理框658提供渲染与多个显示平面中的第一显示平面相关联的源视图,其中,在框660处,经渲染源视图可以被重投影到所述多个显示平面中的第二显示平面。框660的结果可以是重投影视图,如例如,已经讨论的重投影视图646(图7a)。在框662处,可以基于与源视图相对应的扩展视场数据;与源视图相对应的光栅化数据;或与重投影视图相对应的光栅化数据中的一项或多项来填充重投影视图中的一个或多个孔。如将更加详细讨论的,当(多个)孔基于扩展视场数据填充时,重投影视图可以具有非扩展(例如,标准)视场。此外,当(多个)孔基于与源视图相对应的光栅化数据填充时,可以在渲染源视图期间禁用深度测试,而在填充重投影视图中的(多个)孔期间进行深度测试。另外,当(多个)孔基于与重投影视图相对应的光栅化数据填充时,可以在对经渲染源视图的重投影期间预先充填(pre-populate)深度缓冲器,其中,可以在基于深度缓冲器中的数据填充(多个)孔期间进行深度测试。图7c示出了相比于增强的重投影666的常规重投影664。在所展示的示例中,常规重投影664中的视图视锥体668限定针对源视图670的标准视场。因此,常规重投影664中的重投影视图672可以包含一个或多个孔674。相比而言,增强的重投影666中的视图视锥体676可以限定针对源视图678的扩展(例如,基本上更宽的)视场。使用来自扩展视场的图像数据680填充所述一个或多个孔674因此可以使得重投影视图682能够从源视图678中生成。所展示的重投影视图682具有非扩展视场。图7d示出了基于与源视图相对应的光栅化数据填充视图孔的方法684。方法684通常展示了可以在渲染源视图期间禁用深度测试,其中,可以在填充重投影视图中的孔期间进行深度测试。因此,源视图中的每个图元可以以所展示的解决方案被完全着色。方法684通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法684可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。所展示的处理框686对与源视图相关联的所有图元进行网格光栅化。在框688处可以进行输入汇编,其中所展示的框690进行顶点着色操作。在框692处,可以将光栅化传递到画面外表面。因此,每个像素的深度信息可以被存储到画面外光栅化深度缓冲器694。另外,所展示的框696进行像素着色操作。在所展示的示例中,每个像素的色彩信息可以被存储到画面外光栅化色彩缓冲器698。框700可以进行着色器级重投影和深度测试操作,其中,当深度测试通过(例如,顶点可见)时,可以进行将色彩和深度写入附加视图缓冲器702。图7e示出了基于与重投影视图相对应的光栅化数据填充视图孔的方法704。方法704通常展示了可以在经渲染源视图的重投影期间预先充填深度缓冲器,其中,在填充(多个)孔期间基于深度缓冲器中的数据进行深度测试。方法704通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法704可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。所展示的处理框706提供清除重投影(例如,“视图1”)的色彩。另外,在框708处,可以清除重投影视图的深度。框710可以针对渲染目标中的每个像素重投影来自源视图(例如,“视图0”)的深度信息。另外,在框712处,可以将几何图形渲染到视图1,其中,可以在框714处作出每个像素是否通过深度测试的判定。如果像素通过深度测试,则所展示的框716渲染像素。否则,框718可能不执行任何操作。因此,图7a至图7e展示了增强的重投影技术可以使用预先存在的数据来消除包含光场显示的系统中的视觉假象,同时维持高性能。实际上,增强的重投影技术可以与关于图6c至图6f描述的数据格式化技术组合以便实现关于等待时间、性能、功耗和/或电池寿命的协同改进。例如,与源视图相对应的图像数据可以被更高效地存储并用于优化线程分派。中央凹化中央凹(fovea)可以指眼睛的视网膜中视敏度可能最高的小凹陷。视野的中心可能集中在视网膜锥体可能特别集中的这个区中。在一些图形应用的情境中,中央凹或中央凹形区域(foveatedarea)可以与图像或显示器中的聚焦区域相对应。图8a示出了中央凹形视图布局720,在所述中央凹形视图布局中,用户的视场中的中央凹形区域722与用户的焦点相对应。所展示的中央凹形区域722被外围(例如,离焦的)区域724包围。如将更加详细描述的,呈现在多个显示平面上的场景内容可以使用焦点逐显示平面地变化。例如,中央凹形区域722中的一个或多个中央凹视图726(例如,相机)的图像分辨率可以被设置为相对高的值,其中,图像分辨率值针对每个显示平面被独立地确定。相比而言,外围区域724中的一个或多个外围视图728(例如,相机)的图像分辨率可以被设置为相对低的分辨率值,其中,图像分辨率值针对每个显示平面也被独立地确定。外围区域724中的较低图像分辨率可以减少处理开销(例如,渲染工作)而不负面地影响感知的图像质量,因为人眼视觉系统在外围区域724中不太敏感。在另一个示例中,中央凹形区域722中的中央凹视图726的视图密度(例如,每正方形面积中的视图数量)可以被设置为相对高的值,其中,视图密度针对每个显示平面被独立地确定。相比而言,外围区域724中的所展示的外围视图728的视图密度被设置为相对低的值,其中,视图密度可以针对每个显示平面被独立地确定。外围区域724中的较低视图密度可以进一步减少处理开销而不负面地影响感知的图像质量,因为外围区域724中较低的眼敏感度。此外,中央凹形区域722中的中央凹视图726的视图更新频率可以被(例如,针对每个显示平面独立地)设置为相对高的值,而外围区域724中的外围视图728的视图更新频率可以被(例如,针对每个显示平面独立地)设置为相对低的值。再次,外围区域724中较低的视图更新频率可以进一步减少处理开销而不负面地影响感知的图像质量。图8b示出了使呈现在多个显示平面上的场景内容中央凹化的方法730。方法730通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法730可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。所展示的处理框732提供相对于多个显示平面确定焦点。框732可以包括从眼睛跟踪器(例如,捕捉用户眼睛的相机)获得眼睛位置信息。眼睛跟踪器可以使用来自传感器中枢、运动监视器和/或其他源来提供聚焦信息。聚焦信息可以包括例如焦点、聚焦区域、眼睛位置、眼睛运动、瞳孔大小、瞳孔扩张、焦深(dof)、内容焦点、内容聚焦对象、内容聚焦区域等。聚焦信息还可以包括之前的聚焦信息、所确定的未来聚焦信息、和/或所预测聚焦信息(例如,所预测焦点、所预测聚焦区域、所预测眼睛位置、所预测眼睛运动、所预测瞳孔大小、所预测的瞳孔扩张、所预测dof、所确定的未来内容焦点、所确定的未来内容聚焦对象、所确定的未来内容聚焦区域、所预测内容焦点、所预测内容聚焦对象、所预测内容聚焦区域等)。框734可以基于焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的分辨率。框734可以包括例如增大中央凹形区域中的分辨率并减小外围区域中的分辨率。另外,所展示的框736可以基于焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的视图密度。框736因此可以包括增大中央凹形区域中的视图密度并减小外围区域中的视图密度。在框738处可以基于焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的视图更新频率。框738可以包括增大中央凹形区域中的视图更新频率并减小外围区域中的视图更新频率。所展示的框740将外围视图分入具有不同分辨率、不同视图密度或不同更新频率中的一者或多者的数个仓。继续参照图8b和图8c,示出了中央凹形视图布局742,在所述中央凹形视图布局中,外围区域744包含第一仓746(仓“a”)、第二仓748(仓“b”)和第三仓750(仓“c”)。仓746、748、750可以与具有不同分辨率、视图密度和/或更新频率的外围视图相关联。例如,具有相对高的图像分辨率的外围视图可以被分配到第一仓746,具有相对低的图像分辨率的外围视图可以被分配到第三仓750,并且具有中间图像分辨率的外围视图可以被分配到第二仓748。因为光场显示可以呈现在不同帧上更新的大量外围视图(例如,一些视图可以在帧n上更新,其他视图可以在帧n+1上更新,并且还有一些视图可以在帧n+2上更新),所以即使焦点稍有变化,视图中的至少一个视图也将很有可能捕捉所产生的任何内容变化。外围视图可以被类似地分入具有不同视图密度的数个仓。例如,第一仓746可以比第二仓748设置有外围区域744中的更多位置,所述第二仓可以进一步比第三仓750设置有外围区域744中的更多位置。在又另一个示例中,具有相对高的更新频率的外围视图可以被分配到第一仓746,具有相对低的更新频率的外围视图可以被分配到第三仓750,并且具有中间图像分辨率的外围视图可以被分配到第二仓748。替代性地,视图扭曲技术可以用于在帧内未被完全更新的视图。例如,对于某一数量n个帧,视图v可以被完全更新。在未完全更新帧中的一些或所有帧期间,视图v可以通过重新使用来自相邻视图或前一个完全更新的帧(例如,从中扭曲)的图像数据而创建。此外,使用多个视图布局的知识,图块渲染器可以被进一步优化用于几何图形装仓。例如,可以在集中区域(如中央凹形区域722(图8a))中较早地使用细粒度检查。如另一个示例,可以基于哪些视图在特定帧期间被更新而修改视锥体形状。因此,图8a至图8c展示了增强的中央凹化技术可以逐显示平面地减少光场显示中的渲染工作而不负面地影响感知的图像质量。此外,增强的中央凹化技术可以与关于图6c至图6f描述的数据格式化技术和/或关于图7a至图7e描述的增强的重投影技术组合以便实现关于等待时间、性能、功耗和/或电池寿命的附加协同改进。例如,与中央凹形区域视图和/或外围区域视图相关联的图像数据可以被更高效地存储并且用于优化线程分派。另外,本文描述的重投影技术可以容易地应用于中央凹形区域视图和/或外围区域视图。图块装仓在光场显示中,视图(例如,视口、渲染目标)的数量可以比常规显示器中视图的数量多得多。因此,确定来自视图的哪种几何图形(例如,图元、多边形)用于接受和光栅化或拒绝和丢弃可能存在渲染瓶颈挑战。本文描述的技术可以使用分层拣选操作和图块仓来减少和/或消除光场显示中的渲染瓶颈。图9a示出了被组织成多个图块(图块“t1a”至图块“t3d”)的视图布局752。所展示的视图布局752仅作为示例可以根据情况改变分辨率、视口数、图块大小等。每个图块可以具有例如为256x256像素的大小。因此,4x3阵列的图块可以导致视图大小为例如1024x768像素。视图视锥体754的平面(例如,俯)视图展示了视图布局752到用户眼睛的关系。图9b示出了具有8x6个视图(视图“l1a”至视图“l4f”)的左眼采集756和具有8x6个视图的右眼采集758。(视图“r1a”至视图“r4f”)。视图可以被组织成显示平面视锥体的对齐阵列760或显示平面视锥体的非对齐(例如,曲线)阵列762。采集756、758展示了光场显示可以涉及处理大量视图的图元。而不是处理所有视图的每个图元(例如,48个视图*每视图12个图块),可以如本文所描述的使用分层拣选操作和图块仓。现在转到图9c,示出了管理与多个显示平面相关联的图元的方法764。方法764通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法764可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。所展示的处理框766提供确定与多个显示平面相关联的一组图元。另外,在框768处,可以对所述一组图元进行分层拣选操作序列。图9d展示了分层序列可以开始于近平面-远平面拣选操作。因此,关于对齐阵列760,近平面-远平面拣选操作可以拒绝位于最远显示平面770后面的图元并且拒绝位于最近显示平面772前面的图元。类似地,关于非对齐阵列762,近平面-远平面拣选操作可以拒绝位于最远显示平面774后面的图元并且拒绝位于最近显示平面776前面的图元。图9e展示了在近平面-远平面拣选操作之后,可以逐眼睛地进行粗糙视锥体拣选操作。更具体地,粗糙视锥体拣选操作可能涉及选择眼睛(例如,左眼)、确定最左边视口780(例如,视图)的左视锥体平面778以及确定最右边视口784的右视锥体平面782。所展示的粗糙视锥体拣选操作涉及确定最顶部视口(未示出)的顶部视锥体平面、确定最底部视口的底部视锥体平面以及拒绝在顶部视锥体平面、底部视锥体平面、左视锥体平面778和右视锥体平面782之外的图元。在一个示例中,拒绝测试计算了每个图元的顶点与每个视锥体平面之间的距离以便确定图元与所讨论平面的相对位置。可以针对右眼重复所展示的方式。现在转到图9f和图9g,展示了精细视锥体拣选确定,在所述精细视锥体拣选确定中,将图元分配到图块仓。在所展示的示例中,二元拒绝操作判定图元是位于左视锥体集合786还是右视锥体集合788内。例如,如果发现图元位于左视锥体集合786内,则可以执行进一步检查以便判定图元是否位于左集合786的最右视锥体790内。如果发现图元位于最右视锥体790内,则可以利用所讨论图元来充填与最右视锥体790相关联的图块仓。尽管在所展示的示例中示出了左集合786和右集合788,但是精细视锥体拣选确定还可以包括针对顶部视锥体集合(未示出)和底部视锥体集合(未示出)执行的类似检查。图9h示出了进行分层拣选操作序列的方法792。方法792通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法792可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。所展示的处理框794提供进行近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。另外,框796可以逐眼睛地并且在近平面-远平面拣选操作之后进行粗糙视锥体拣选操作,所述粗糙视锥体拣选操作拒绝最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。在一个示例中,在粗糙视锥体拣选操作之后,在框798处,进行精细视锥体拣选操作,并且框800可以用通过精细视锥体拣选操作的图元来充填一个或多个图块仓。可以针对平行的所有视口视锥体平面集完成替代性简单方式。硬件可以实施针对视图视锥体的左平面、右平面、顶部平面和底部平面的平面方程。可以针对视口的表示相同的相对仓偏移量的视锥体平面(例如,平面平行并且与源仅相差偏移量)完成这种方式。可以用与源的不同距离表示每个视图视锥体。当图元被测试为包含时,可以执行以下检查:boolplanecheck(polygon,plane)for(eachpointinpolygon):if(dot(plane.normal,point)<plane.distance)returntrue;returnfalse;使用图9b的左眼平面作为示例,平面可以都共享法线,并且可以仅相差偏移量。例如,视口l1a,l2a,l1b,...,l2b的左平面可以具有以下平面性质:leftplanel1a=leftplane.normal,leftplanel1a_offsetleftplanel2a=leftplane.normal,leftplanel2a_offsetleftplanel1b=leftplane.normal,leftplanel1b_offset…leftplanel2b=leftplane.normal,leftplanel1b_offset这种模式可以应用于两个眼睛的所有视口。这对于相同视口内的图块是适用的(例如,视口内的每个图块将具有不同平面法线,但是所有图块跨所有渲染目标可以是一致的)。例如,参照图9a和图9b,l1a,l2a,l1b,…,l2b中的图块t1a的平面方程可以是:leftplanel1a_t1a=t1a_leftplane.normal,leftplanel1a_t1a_offsetleftplanel2a_t1a=t1a_leftplane.normal,leftplanel2a_t1a_offsetleftplanel1b_t1a=t1a_leftplane.normal,leftplanel1b_t1a_offset…leftplanel2b_t1a=t1a_leftplane.normal,leftplanel1b_t1a_offset最后,为了包含,可以在图元中的所有顶点与每个左平面、右平面、顶部平面和底部平面的法线之间进行点积。可以仅使用平面偏移量比较执行单独视口检查。为了使用这种方式对左眼中的所有视口中的所有t1a图块执行视锥体检查,可以使用以下://使用不同比较器定义函数指针类型:>(对于左边和底部),>(对于右边和顶部)typedefbool(compareoperator*)(float,float);//定义比较器函数boolcompareoperatorgreaterthan(floatoffsetfromorigin,floatplaneoffsetfromorigin){returnoffsetfromorigin>planeoffsetfromorigin;}boolcompareoperatorlessthan(floatoffsetfromorigin,floatplaneoffsetfromorigin){returnoffsetfromorigin<planeoffsetfromorigin;}//用于查看多边形中的任何点是否通过平面检查的辅助函数boolanypointpassesplanecheck(floatvectorpolygonoffsets,float3planenormal,floatplaneoffset,compareoperatorcompareop){boolanypointspass=false;for(pointoffsetalloffsetsinpolygonoffsets){if(compareop(pointoffset,planeoffset)){a.anypointspass=true;b.break;}}returnanypointspass;}//定义平面enumplane{left,right,top,bottom,planecount=4}voidmultifrustumcheck(polygonpolygon,boolpassresults[6][4],float3planesnormalspertile[planecount],float3vector<planecount>offsetsperviewport[6][4],compareoperatorcomparefuns[planecount]){floatvectorpolygonoffsets[planecount];//收集每平面每多边形的偏移量for(allpointsinpolygon){polygonoffsets[left].append(dot(point,planesnormalspertile[left]);polygonoffsets[right].append(dot(point,planesnormalspertile[right]);polygonoffsets[top].append(dot(point,planesnormalspertile[top]);polygonoffsets[bottom].append(dot(point,planesnormalspertile[bottom]);}//for(intx=0;x<6;++x){for(inty=0;y<4;++y){a.//为了使测试失败,必须存在一个平面,在所述平面中所有点的平面检查失败b.passresults[x][y]=anypointpassesplanecheck(polygonoffsets[left],planesnormalspertile[left],offsetsperviewport[x][y].left,compareoperatorgreaterthan)&&i.anypointpassesplanecheck(polygonoffsets[right],planesnormalspertile[right],offsetsperviewport[x][y].right,compareoperatorlessthan)&&ii.anypointpassesplanecheck(polygonoffsets[top],planesnormalspertile[top],offsetsperviewport[x][y].top,compareoperatorlessthan)&&iii.anypointpassesplanecheck(polygonoffsets[bottom],planesnormalspertile[bottom],offsetsperviewport[x][y].bottom,compareoperatorgreaterthan);}}}可能有利的是将图元向下拣选到图块组。如果几何图形中的大部分在附近视口/渲染目标中每图块相同,则几何图形可以在渲染之前被分类以避免冗余像素着色器工作。在完成分类阶段之后,几何图形可以被递送至针对将被光栅化的每个图块的仓。图元光栅化器可能仍然有提早拣选将不导致光栅化工作的图元的能力。例如,可以尝试针对视口r1e至r4e和视口r1f至r4f中的图块t1d的光栅化工作。图9i展示了可以表示渲染过程的方法802。方法802通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法802可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。在框804、806和808处可以通过用一系列简单的检查处理图元(例如,几何图形、多边形)来继续进行渲染流水线:近/远平面检查,和右眼粗糙视锥体检查。一旦执行了简单的检查,在框810处,图块范围就可以提供针对左边(来自r1e)、右边(来自r1f)、顶部(来自r1e)和底部(来自r4e)的平面方程。这些平面可以具有偏移量和法线。可以在框812处针对这些平面检查每顶点地测试图元。如果在框814处确定每多边形至少一个顶点通过,则在框816处图元可以被装仓。否则,在所展示的框815处不进行任何操作。方法802可以在图元都被装仓后在框818处任选地对所述图元进行分类。在框820处,图元然后可以被递送至每个图块光栅化器。所展示的框822针对正被渲染的每个图块光栅化所有图元并且拒绝图块之外的图元。另一个最佳方案可能是通过借助于流水线添加包围球检查而尽可能早地进行拣选工作以便确定哪些视口可能实际上光栅化对象。可以每图块范围使用相同的近/远检查、粗糙视锥体检查以及更详细的平面检查来简单检查包围球。如果包围球通过检查,则可以渲染包含在包围球中的整个网格。因此,图9a至图9i展示了增强的图块装仓技术可以实现拣选开销与可能供应不足的光栅化器单元之间的平衡。此外,增强的图块装仓技术可以与关于图6c至图6f描述的数据格式化技术、关于图7a至图7e描述的增强的重投影技术和/或关于图8a至图8c描述的增强的中央凹化技术组合以便实现关于等待时间、性能、功耗和/或电池寿命的附加协同改进。图像扭曲图10a示出了可以跨多个显示平面扭曲的场景内容824。通常,不同显示平面上的场景内容824之间的位置变化可以用于近似估计跨显示平面的图像数据。继续参照图10a和图10b,示出了跨多个显示平面扭曲场景内容824的方法826。方法826通常可以在逻辑(如例如,已经讨论过的逻辑606(图6a和图6b))中实施。更具体地,所述方法826可以被实施为逻辑指令集中的一个或多个模块,所述逻辑指令集存储在如ram、rom、prom、固件、闪存等机器或计算机可读存储介质中,在如例如pla、fpga、cpld等可配置逻辑中,在使用如例如asic、cmos或ttl技术等电路技术的固定功能硬件逻辑中或其任何组合。所展示的处理框828提供识别与所述多个显示平面中的第一显示平面上的场景内容824相关联的第一图像数据。框830可以识别所述多个显示平面中的第一显示平面上的场景内容824与第二显示平面上的场景内容824之间的第一位置变化。在一个示例中,框832基于第一图像数据和第一位置变化来近似估计与第二显示平面上的场景内容824相关联的第二图像数据。另外,框834可以识别所述多个显示平面中的第一显示平面上的场景内容824与第三显示平面上的场景内容824之间的第二位置变化。在这种情况下,所展示的框836基于第一图像数据和第二位置变化来近似估计与第三显示平面上的场景内容824相关联的第三图像数据。以所示出的方式近似估计图像数据可以显著减少处理开销。因此,图10a至图10b展示了增强的图像扭曲技术可以渲染来自焦平面上的不同位置的同一对象以便模仿虹膜上的不同焦点。此外,增强的图像扭曲技术可以与关于图6c至图6f描述的数据格式化技术、关于图7a至图7e描述的增强的重投影技术、关于图8a至图8c描述的增强的中央凹化技术和/或关于图9a至图9i描述的增强的图块装仓技术组合以便实现关于等待时间、性能、功耗和/或电池寿命的附加协同改进。显示技术现在转到图11,示出了性能增强的计算系统1100。在所展示的示例中,处理器1110耦合至显示器1120。处理器1110通常可以生成将在显示器1120的lcd面板1150上显示的图像。在一个示例中,处理器1110包括通信接口,如例如,视频图形阵列(vga)、显示端口(dp)接口、嵌入式显示端口(edp)接口、高清晰度多媒体接口(hdmi)、数字视频接口(dvi)等。处理器1110可以是处理图形数据并生成在lcd面板1150上显示的图像(例如,视频帧、静止图像)的图形处理器(例如,图形处理单元/gpu)。此外,处理器1110可以包括生成像素数据的一个或多个图像处理流水线。图像处理流水线可以遵从opengl架构或其他合适的架构。另外,处理器1110可以连接至主机处理器(例如,中央处理单元/cpu),其中,主机处理器执行控制处理器1110和/或与所述处理器交互的一个或多个设备驱动程序。所展示的显示器1120包括定时控制器(tcon)1130,所述tcon可以单独地寻址lcd面板1150中的不同像素,并且每个刷新周期更新lcd面板1150中的每个个别像素。在这方面,lcd面板1150可以包括多个液晶元件,如例如,液晶和集成式彩色滤光片。lcd面板1150的每个像素可以包括三个液晶元件,它们分别具有红色、绿色和蓝色滤光片。lcd面板1150可以以二维(2d)阵列来安排像素,所述二维阵列经由行驱动器1152和列驱动器1154控制以更新由lcd面板1150显示的图像。因此,tcon1130可以驱动行驱动器1152和列驱动器1154以便寻址lcd面板1150的特定像素。tcon1130还可以调节被提供给像素中的液晶元件的电压以改变通过三个液晶元件中的每一者的光的强度,并且因此改变在lcd面板1150的表面上显示的像素的颜色。背光1160可以包括被安排在lcd面板1150的边缘处的多个发光元件,如例如,发光二极管(led)。因此,由led产生的光可以由漫射器(未示出)分散通过lcd面板1150。在另一个示例中,led以2d阵列采用有时被称为直接背光的配置被直接安排在lcd面板1150后面,因为每个led使光分散通过定位于led前面的lcd面板1150的一个或多个对应像素。发光元件还可以包括沿着lcd面板1150的一个或多个边缘安排的紧凑型荧光灯(cfl)。为了消除多个边缘,可以改变边缘的组合以实现对区域的选择性照明,其中,将使用具有较少功的不到整组的照明元件。发光元件还可以包括置于lcd面板1150后面的一个或多个电致发光材料板。在这种情况下,来自板的表面的光可以被分散通过lcd面板1150的像素。另外,板可以被分成多个区域,如例如,象限。在一个示例中,个别地控制每个区域以仅照明lcd面板1150的一部分。也可以使用其他背光解决方案。所展示的显示器1120还包括背光控制器(blc)1140,所述blc将电压提供给背光1160的发光元件。例如,blc1140可以包括脉宽调制(pwm)驱动器(未示出),所述pwm驱动器用于生成激活背光1160的发光元件的至少一部分的pwm信号。pwm信号的占空比和频率可以使由发光元件产生的光变暗。例如,100%占空比可以与发光元件被完全接通相对应,并且0%占空比可以与发光元件被完全断开相对应。因此,中间占空比(例如,25%、50%)通常使发光元件在循环周期的与占空比的百分比成正比的一部分内被接通。循环周期可以足够快使得发光元件的闪烁不被人眼注意。此外,对用户的影响可能是由背光1160发射的光的等级低于背光1160被完全激活的情况。blc1140可以与tcon1130分离或合并到所述tcon中。可替代地,可以使用发射显示系统,其中,lcd面板1150将被发射显示面板(例如,有机发光二极管/oled)取代,背光1160将被省略,并且行和列驱动器1152和1154可以分别用于直接调制像素颜色和亮度。基于距离的显示分辨率图12a示出了用户1218与包含显示单元1228的数据处理设备1200交互的情境。显示处理设备1200可以包括例如笔记本计算机、台式计算机、平板计算机、可翻转式平板计算机、移动互联网设备(mid)、个人数字助理(pda)、可穿戴设备(例如,头戴式显示器/hmd)、媒体播放器等或其任何组合。所展示的数据处理设备1200包括耦合至存储器1222的处理器1224(例如,嵌入式控制器、微控制器、主机处理器、图形处理器),所述存储器可以包括可通过处理器1224寻址的存储位置。如将更加详细讨论的,相对于显示单元1228,距离传感器1210可以实现基于距离的显示分辨率。所展示的存储器1222包括将在显示单元1228上渲染的显示数据1226。在一个示例中,处理器1224在将显示数据1226呈现在显示单元1228上之前对显示数据1226进行数据转换。后处理(post-processing)引擎1214可以在处理器1224上执行以便接收显示数据1226和距离传感器1210的输出。后处理引擎1214可以修改显示数据1226以便增强显示单元1228上的屏幕内容的可读性、降低数据处理设备1200的功耗等或其任何组合。除了操作系统1212和应用1220之外,所展示的存储器1222还存储显示分辨率设置1216。显示分辨率设置1216可以指定待沿着长度尺寸和宽度尺寸呈现在显示单元1228上的显示数据1226的像素的数量。如果如由应用1220产生的显示数据1226不符合显示单元1228的格式,则处理器1224可以将显示数据1226的比例配置成匹配显示单元1228的格式。在这方面,显示分辨率设置1216可以与定义显示单元1228的其他设置的配置数据相关联和/或合并到所述配置数据中。此外,可以在单位距离或面积(例如,每英寸像素/ppi)或其他合适的参数方面定义显示分辨率设置1216。应用1220可以产生用户界面,其中,用户1218可以与用户界面交互以便从通过用户界面提供的一个或多个选项中选择显示分辨率设置1216,输入显示分辨率设置1216作为要求值等。因此,可以将显示数据1226的大小调整为适合显示分辨率设置1216中,之后在显示单元1228上对其进行渲染。距离传感器1210可以跟踪用户1218与显示单元1228之间的距离,其中,可以通过与数据处理设备1200/显示单元1228相关联的物理按钮、通过由应用1220提供的用户界面和/或加载操作系统1220等来触发距离感测。例如,在数据处理设备1200的引导期间,操作系统1212可以进行自动过程以触发背景或前景中的距离感测。可以周期性地或连续地进行距离感测。图12b示出了距离感测情境的一个示例。在所展示的示例中,距离传感器1210使用收发器1208在用户1218的方向上发射电磁波束1202。因此,收发器1202可以被定位在数据处理设备1200(图12a)的面朝正面的表面上。电磁波束1202可以影响用户1218并且从用户1218反射/散射作为返回电磁波束1204。返回电磁波束1204可以由例如处理器1224(图12a)和/或后处理引擎1214(图12a)进行分析以便确定用户1218与显示单元1228(图12a)之间的距离1206。距离1206可以用于调整显示分辨率设置1216。显示层现在转到图13,示出了显示系统1300,在所述显示系统中,级联显示层1361、1362和1363用于实现显示组件1360中的空间/时间超分辨率。在所展示的示例中,处理器1310经由总线1320向系统1300提供原始图形数据1334(例如,视频帧、静止图像)。级联显示程序1331可以存储在存储器1330中,其中,级联显示程序1331可以是与显示组件1360相关联的显示驱动程序的一部分。所展示的存储器1330还包括原始图形数据1334和已分解图形数据1335。在一个示例中,级联显示程序1331包括时间分解组件(temporalfactorizationcomponent)1332和空间分解组件(spatialfactorizationcomponent)1333。时间分解组件1332可以执行时间分解计算,并且空间分解组件可以执行空间分解计算。级联显示程序1331可以基于用户配置和原始图形数据1334驱动已分解图形数据1335呈现在每个显示层1361、1362和1363上。显示组件1360可以被实施为在例如头戴式显示器(hmd)应用中使用的lcd(液晶显示器)。更具体地,显示组件1360可以包括lcd面板、接口板、透镜附件等的堆叠。每个面板可以以例如1280x800像素的原始分辨率和60hz刷新率进行操作。可以使用其他原始分辨率、刷新率、显示面板技术和/或层配置。多个显示单元图14示出了包括一组显示单元1430(1430a至1430n)的图形显示系统1400,所述一组显示单元通常可以用于输出宽屏(例如,全景)呈现1440,所述宽屏呈现包括采用凝聚且结构化拓扑形式的协调内容。在所展示的示例中,数据处理设备1418包括将逻辑功能1424应用于通过网络1420从所述一组显示单元1430处接收的硬件配置文件数据1402的处理器1415。当未找到硬件配置文件数据与硬件配置文件查找表1412中的一组设置的匹配时,将逻辑功能1424应用于硬件配置文件数据1402可以创建一组自动拓扑设置1406。所展示的一组自动拓扑设置1406通过网络1420从显示处理设备1418传输至显示单元1430。处理器1415可以在从显示驱动器1410处接收逻辑功能1424时执行和实行逻辑功能1424。在这方面,显示驱动器1410可以包括自动拓扑模块1408,所述自动拓扑模块自动配置和结构化显示单元1432的拓扑以创建呈现1440。在一个示例中,显示驱动器1410是指令集,所述指令集当被处理器1415执行时使数据处理设备1418与显示单元1430、视频卡等通信并且进行自动拓扑生成操作。数据处理设备1418可以包括例如服务器、台式机、笔记本计算机、平板计算机、可翻转式平板计算机、mid、pda、可穿戴设备、媒体播放器等。因此,显示处理设备1418可以包括硬件控制模块1416、存储设备1414、随机存取存储器(ram,未示出)、包括一个或多个视频控制器卡的控制器卡等。在一个示例中,显示单元1430是彼此协调以产生呈现1440的平板显示器(例如,液晶、有源矩阵、等离子体等)、hmd、视频投影设备等。此外,可以基于存储在存储设备1414中的媒体文件产生呈现1440,其中,媒体文件可以包括例如电影、视频剪辑、动画、广告等或其任何组合。术语“拓扑”可以被认为是第一显示单元1430a、第二显示单元1430b、第三显示单元1430n等的数量、规模、形状和/或其他配置参数。因此,显示单元1430的拓扑可以使得呈现1440能够在视觉上一致地呈现,从而使得呈现1440的单独节段与正通过显示单元1430播放的媒体的原始尺寸和范围成正比且与其兼容。因此,拓扑可以构成不受呈现1440中渲染的内容的形状或大小的连续变化影响的空间关系和/或几何性质。在一个示例中,自动拓扑模块1408包括定时模块1426、控制模块1428、信号监测模块1432和信号显示模块1434。定时模块1426可以将所述一组显示单元1430中的特定显示单元指定为样本显示单元。在这种情况下,定时模块1426可以将剩余显示单元1430指定为附加显示单元。在一个示例中,定时模块1426自动地将成形因子设定为与硬件配置文件数据1402兼容,其中,通过一系列图形信号1422来自动地发起呈现1440。在一个示例中,控制模块1428修改所述一组自动拓扑设置1406。另外,信号监测模块1432可以自动监测所述一系列图形信号1422并触发存储设备1414以使所述一组自动拓扑设置1406与硬件配置文件查找表1412相关联。此外,信号监测模块1432可以根据一组变化标准来自动地检测所述一组显示单元1430中的变化并且自动地产生与所述一组显示单元1430中的变化相对应的新拓扑配置文件。因此,新拓扑配置文件可以应用于所述一组显示单元1430。如果所述一系列图形信号1422未能满足一组标准,则信号监测模块1432还可以触发信号显示模块1434重新应用所述一组自动拓扑设置1406。如果硬件配置文件数据1402不支持所述一系列图形信号1422的自动拓扑显示,则数据处理设备1418可以报告错误并且将所述错误记录在错误日志1413中。云辅助的媒体递送现在转到图15,云游戏系统1500包括通过网络1510耦合至服务器1520的客户端1540。客户端1540通常可以是被容纳、处理并在服务器1520上渲染的图形(例如,游戏、虚拟现实/vr、增强现实/ar)内容的消费者。所展示的可能是可扩展的服务器1520具有向多个客户端同时提供图形内容(例如,通过利用平行且分摊的处理和渲染资源)的能力。在一个示例中,服务器1520的可扩展性受网络1510的能力的限制。因此,可能存在一些阈值数量的客户端,在所述阈值数量之上对所有客户端的服务降低。在一个示例中,服务器1520包括图形处理器(例如,gpu)1530、主机处理器(例如,cpu)1524和网络接口卡(nic)1522。nic1522可以从客户端1540接收针对图形内容的请求。来自客户端1540的请求可以使得经由在主机处理器1524上执行的应用程序从存储器检索图形内容。主机处理器1524可以执行高级操作,如例如,确定给定场景中的对象的位置、碰撞和运动。基于高级操作,主机处理器1524可以产生渲染命令,所述渲染命令与场景数据组合并且由图形处理器1530执行。渲染命令可以使图形处理器1530定义将经由客户端1540呈现的场景的场景几何图形、着色、照明、运动、纹理化、相机参数等。更具体地,所展示的图形处理器1530包括根据由主机处理器1524产生的渲染命令执行渲染过程的图形渲染器1532。图形渲染器1532的输出可以是被提供给帧捕获器1534的原始视频流帧。所展示的帧捕获器1534耦合至编码器1536,所述编码器可以压缩/格式化原始视频流以便通过网络1510进行传输。编码器1536可以使用多种视频压缩算法,如例如,由国际电信联盟电信标准化部门(itut)得出的h.264标准、来自国际标准化组织/国际电工委员会(iso/iec)的mpeg4高级视频编码(avc)标准等。所展示的客户端1540包括用于从服务器1520处接收经传输的视频流的nic1542,所述客户端可以是台式计算机、笔记本计算机、平板计算机、可翻转式平板计算机、可穿戴设备、mid、pda、媒体播放器等。nic1522可以包括物理层和客户端1540中的网络接口的软件层的基础以便促进通过网络1510的通信。客户端1540也可以包括采用与编码器1536的格式化/压缩方案相同的格式化/压缩方案的解码器1544。因此,经解压视频流可以从解码器1544提供到视频渲染器1546。所展示的视频渲染器1546耦合至视觉上呈现图形内容的显示器1548。如已经指出的,图形内容可以包括游戏内容。在这方面,客户端1540可以进行实时交互式串流,所述实时交互式串流涉及从输入设备1550处收集用户输入并且经由网络1510将用户输入递送至服务器1520。云游戏的这种实时交互式部件可以关于等待时间提出挑战。附加系统概述示例图16是根据实施例的处理系统1600的框图。在各个实施例中,系统1600包括一个或多个处理器1602和一个或多个图形处理器1608,并且可以是单处理器台式计算机系统、多处理器工作站系统或具有大量处理器1602或处理器核1607的服务器系统。在一个实施例中,系统1600是并入用于移动式、手持式、或嵌入式设备的片上系统(soc)集成电路内的处理平台。在一个实施例中,系统1600可以包括或并入基于服务器的游戏平台、游戏控制台,包括游戏与媒体控制台、移动游戏控制台、手持式游戏控制台、或在线游戏控制台。在一些实施例中,系统1600是移动电话、智能电话、平板计算设备或移动互联网设备。处理系统1600还可包括可穿戴设备(诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备、或虚拟现实设备)、与所述可穿戴设备耦合、或者集成在所述可穿戴设备中。在一些实施例中,处理系统1600是电视或机顶盒设备,所述电视或机顶盒设备具有一个或多个处理器1602以及由一个或多个图形处理器1608生成的图形界面。在一些实施例中,一个或多个处理器1602每个包括用于处理指令的一个或多个处理器核1607,所述指令在被执行时执行系统和用户软件的操作。在一些实施例中,一个或多个处理器核1607中的每个处理器核被配置成用于处理特定的指令集1609。在一些实施例中,指令集1609可以促进复杂指令集计算(cisc)、精简指令集计算(risc)、或经由超长指令字(vliw)的计算。多个处理器核1607可以各自处理不同的指令集1609,所述指令集可以包括用于促进对其他指令集进行仿真的指令。处理器核1607还可以包括其他处理设备,如数字信号处理器(dsp)。在一些实施例中,处理器1602包括高速缓存存储器1604。取决于架构,处理器1602可以具有单个内部高速缓存或内部高速缓存的多个级。在一些实施例中,在处理器1602的各部件当中共享高速缓存存储器。在一些实施例中,处理器1602还使用外部高速缓存(例如,3级(l3)高速缓存或末级高速缓存(llc))(未示出),可以使用已知的高速缓存一致性技术来在处理器核1607当中共享外部高速缓存。另外地,寄存器堆1606包括在处理器1602中,所述处理器可以包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器、和指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可以特定于处理器1602的设计。在一些实施例中,一个或多个处理器1602与一个或多个接口总线1610耦合,所述接口总线用于在处理器1602与系统1600中的其他部件之间传输通信信号,如地址、数据、或控制信号。在一个实施例中,接口总线1610可以是处理器总线,如直接媒体接口(dmi)总线的版本。然而,处理器总线不限于dmi总线并且可以包括一个或多个外围部件互连总线(例如,pci、pciexpress)、存储器总线或其他类型的接口总线。在一个实施例中,(多个)处理器1602包括集成存储器控制器1616和平台控制器中枢1630。存储器控制器1616促进存储器设备与系统1600的其他部件之间的通信,而平台控制器中枢(pch)1630经由本地i/o总线提供到i/o设备的连接。存储器设备1620可以是动态随机存取存储器(dram)设备、静态随机存取存储器(sram)设备、闪存设备、相变存储器设备、或具有用作处理存储器的合适性能的某种其他存储器设备。在一个实施例中,存储器设备1620可以作为系统1600的系统存储器来操作,用于存储数据1622和指令1621以供在所述一个或多个处理器1602执行应用程序或进程时使用。存储器控制器1616还与可选的外部图形处理器1612耦合,所述外部图形处理器可以与处理器1602中的所述一个或多个图形处理器1608进行通信从而执行图形操作和媒体操作。在一些实施例中,显示设备1611可以连接至(多个)处理器1602。显示设备1611可以是以下各项中的一项或多项:内部显示设备,如在移动电子设备或膝上型设备中;或经由显示接口(例如,显示端口等)附接的外部显示设备。在一个实施例中,显示设备1611可以是头戴式显示器(hmd),如用于虚拟现实(vr)应用或增强现实(ar)应用中使用的立体显示设备。在一些实施例中,平台控制器中枢1630使得外围设备能够经由高速i/o总线连接至存储器设备1620和处理器1602。i/o外围设备包括但不限于:音频控制器1646、网络控制器1634、固件接口1628、无线收发器1626、触摸传感器1625、数据存储设备1624(例如,硬盘驱动器、闪存等)。数据存储设备1624可以经由存储接口(例如,sata)或经由如外围部件互连总线(例如,pci、pciexpress)等外围总线来进行连接。触摸传感器1625可以包括触摸屏传感器、压力传感器、或指纹传感器。无线收发器1626可以是wi-fi收发器、蓝牙收发器、或移动网络收发器,如3g、4g或长期演进(lte)收发器。固件接口1628使得能够与系统固件进行通信,并且可以例如是统一可扩展固件接口(uefi)。网络控制器1634可以使能到有线网络的网络连接。在一些实施例中,高性能网络控制器(未示出)与接口总线1610耦合。在一个实施例中,音频控制器1646是多声道高清音频控制器。在一个实施例中,系统1600包括用于将传统(例如,个人系统2(ps/2))设备耦合至系统的可选的传统i/o控制器1640。平台控制器中枢1630还可以连接至一个或多个通用串行总线(usb)控制器1642连接输入设备,如键盘和鼠标1643组合、相机1644、或其他usb输入设备。将认识到的是,所示出的系统1600是示例性的而非限制性的,因为还可以使用以不同方式配置的其他类型的数据处理系统。例如,存储器控制器1616和平台控制器中枢1630的实例可以集成到分立式外部图形处理器,如外部图形处理器1612。在一个实施例中,平台控制器中枢1630和/或存储器控制器1660可以在所述一个或多个处理器1602外部。例如,系统1600可以包括外部存储器控制器1616和平台控制器中枢1630,所述外部存储器控制器和外围控制器可以被配置为在与(多个)处理器1602通信的系统芯片组内的存储器控制器中枢和外围控制器中枢。图17是处理器1700的实施例的框图,所述处理器具有一个或多个处理器核1702a至1702n、集成存储器控制器1714、以及集成图形处理器1708。图17的具有与此处任何其他附图中的元件相同的参考号(或名称)的那些元件可采用与在本文中其他地方描述的方式相类似的任何方式进行操作或起作用,但不限于这些。处理器1700可包括多达且包括由虚线框表示的附加核1702n的附加核。处理器核1702a至1702n各自包括一个或多个内部高速缓存单元1704a至1704n。在一些实施例中,每个处理器核还可以访问一个或多个共享的高速缓存单元1706。内部高速缓存单元1704a至1704n和共享高速缓存单元1706表示处理器1700内部的高速缓存存储器层级结构。高速缓存存储器层级结构可以包括每个处理器核内的至少一级指令和数据高速缓存以及一级或多级共享中级高速缓存,诸如2级(l2)、3级(l3)、4级(l4)、或其他级的高速缓存,其中,最高级的高速缓存在外部存储器之前被分类为llc。在一些实施例中,高速缓存一致性逻辑维持各高速缓存单元1706与1704a至1704n之间的一致性。在一些实施例中,处理器1700还可以包括一组一个或多个总线控制器单元1716和系统代理核1710。一个或多个总线控制器单元1716管理一组外围总线,诸如一个或多个pci或pci快速总线。系统代理核1710提供对各处理器部件的管理功能。在一些实施例中,系统代理核1710包括一个或多个集成存储器控制器1714用于管理对各外部存储器设备(未示出)的访问。在一些实施例中,处理器核1702a至1702n中的一个或多个包括对同步多线程的支持。在这种实施例中,系统代理核1710包括用于在多线程处理过程中协调和操作核1702a至1702n的部件。另外,系统代理核1710还可以包括功率控制单元(pcu),所述功率控制单元包括用于调节处理器核1702a至1702n的功率状态的逻辑和部件以及图形处理器1708。在一些实施例中,另外,处理器1700还包括用于执行图形处理操作的图形处理器1708。在一些实施例中,图形处理器1708耦合至共享高速缓存单元1706集以及系统代理核1710,所述系统代理核包括一个或多个集成存储器控制器1714。在一些实施例中,系统代理核1710还包括显示控制器1711以便将图形处理器输出驱动到一个或多个耦合的显示器。在一些实施例中,显示控制器1711还可以是经由至少一个互连与图形处理器耦合的单独模块,或者可以集成在图形处理器1708内。在一些实施例中,基于环的互连单元1712用于耦合处理器1700的内部部件。然而,可以使用替代性互连单元,比如点到点互连、切换式互连、或其他技术,包括本领域众所周知的技术。在一些实施例中,图形处理器1708经由i/o链路1713与环形互连1712耦合。示例性i/o链路1713表示多个i/o互连中的多个品种中的至少一种,包括促进各处理器部件与高性能嵌入式存储器模块1718(比如edram模块)之间的通信的封装体i/o互连。在一些实施例中,处理器核1702a至1702n中的每个处理器核以及图形处理器1708将嵌入式存储器模块1718用作共享末级高速缓存。在一些实施例中,处理器核1702a至1702n是执行相同指令集架构的同构核。在另一实施例中,处理器核1702a至1702n在指令集架构(isa)方面是异构的,其中,处理器核1702a至1702n中的一者或多者执行第一指令集,而其他核中的至少一者执行所述第一指令集的子集或不同的指令集。在一个实施例中,处理器核1702a至1702n就微架构而言是同质的,其中,具有相对较高功耗的一个或多个核与具有较低功耗的一个或多个功率核耦合。另外,处理器1700可以实现在一个或多个芯片上或者被实现为具有除其他部件之外的所展示的部件的soc集成电路。图18是图形处理器1800的框图,所述图形处理器可以是分立式图形处理单元、或者可以是与多个处理核集成的图形处理器。在一些实施例中,图形处理器经由到图形处理器上的寄存器的映射i/o接口并且利用被放置在处理器存储器中的命令与存储器进行通信。在一些实施例中,图形处理器1800包括用于访问存储器的存储器接口1814。存储器接口1814可以是到本地存储器、一个或多个内部高速缓存、一个或多个共享外部高速缓存、和/或到系统存储器的接口。在一些实施例中,图形处理器1800还包括显示控制器1802,所述显示控制器用于将显示输出数据驱动到显示设备1820。显示控制器1802包括用于显示器的一个或多个重叠平面的硬件以及多层视频或用户接口元件的组成。显示设备1820可以是内部或外部显示设备。在一个实施例中,显示设备1820是头戴式显示设备,如虚拟现实(vr)显示设备或增强现实(ar)显示设备。在一些实施例中,图形处理器1800包括用于编码、解码、或者向、从或在一个或多个媒体编码格式之间进行媒体代码转换的视频编解码器引擎1806,包括但不限于:运动图像专家组(mpeg)格式(比如mpeg-2)、高级视频译码(avc)格式(比如h.264/mpeg-4avc)、以及电影&电视工程师协会(smpte)421m/vc-1、和联合图像专家组(jpeg)格式(比如jpeg、以及运动jpeg(mjpeg)格式)。在一些实施例中,图形处理器1800包括用于执行二维(2d)光栅化器操作包括例如位边界块传递的块图像传递(blit)引擎1804。然而,在一个实施例中,使用图形处理引擎(gpe)1810的一个或多个部件执行2d图形操作。在一些实施例中,gpe1810是用于执行图形操作的计算引擎,所述图形操作包括三维(3d)图形操作和媒体操作。在一些实施例中,gpe1810包括用于执行3d操作的3d流水线1812,比如使用作用于3d图元形状(例如,矩形、三角形等)的处理功能来渲染三维图像和场景。3d流水线1812包括可编程且固定的功能元件,所述可编程且固定的功能元件在到3d/媒体子系统1815的元件和/或生成的执行线程内执行各种任务。虽然3d流水线1812可以用于执行媒体操作,但是gpe1810的实施例还包括媒体流水线1816,所述媒体流水线具体地用于执行媒体操作,诸如视频后处理和图像增强。在一些实施例中,媒体流水线1816包括固定功能或可编程逻辑单元以便代替、或代表视频编解码器引擎1806来执行一种或多种专门的媒体操作,比如视频解码加速、视频解交织、以及视频编码加速。在一些实施例中,另外,媒体流水线1816还包括线程生成单元以便生成用于在3d/媒体子系统1815上执行的线程。所生成的线程对3d/媒体子系统1815中所包括的一个或多个图形执行单元执行对媒体操作的计算。在一些实施例中,3d/媒体子系统1815包括用于执行3d流水线1812和媒体流水线1816生成的线程的逻辑。在一个实施例中,流水线向3d/媒体子系统1815发送线程执行请求,所述3d/媒体子系统包括用于仲裁并将各请求分派到可用的线程执行资源的线程分派逻辑。执行资源包括用于处理3d和媒体线程的图形执行单元阵列。在一些实施例中,3d/媒体子系统1815包括用于线程指令和数据的一个或多个内部高速缓存。在一些实施例中,所述子系统还包括共享存储器(包括寄存器和可寻址存储器)以便在线程之间共享数据并用于存储输出数据。图形处理引擎图19是根据一些实施例的图形处理器的图形处理引擎1910的框图。在一个实施例中,图形处理引擎(gpe)1910是图18所示的gpe1810的一个版本。图19的具有与此处任何其他附图中的元件相同的参考号(或名称)的那些元件可采用与在本文中其他地方描述的方式相类似的任何方式进行操作或起作用,但不限于这些。例如,展示了图18的3d流水线1812和媒体流水线1816。媒体流水线1816在gpe1910的一些实施例中是可选的,并且可以不显式地地包括在gpe1910内。例如以及在至少一个实施例中,单独的媒体和/或图像处理器被耦合至gpe1910。在一些实施例中,gpe1910与命令流转化器1903耦合或包括所述命令流转化器,所述命令流转化器向3d流水线1812和/或媒体流水线1816提供命令流。在一些实施例中,命令流转化器1903与存储器耦合,所述存储器可以是系统存储器、或者是内部高速缓存存储器和共享高速缓存存储器中的一个或多个。在一些实施例中,命令流转化器1903从存储器接收命令并将这些命令发送至3d流水线1812和/或媒体流水线1816。所述命令是从存储用于3d流水线1812和媒体流水线1816的环形缓冲器获取的指示。在一个实施例中,环形缓冲器可以另外包括存储多批多命令的批命令缓冲器。用于3d流水线1812的命令还可以包括对在存储器中存储的数据的引用,诸如但不限于用于3d流水线1812的顶点数据和几何数据和/或用于媒体流水线1816的图像数据和存储器对象。3d流水线1812和媒体流水线1816通过经由各自流水线内的逻辑执行操作或者通过将一个或多个执行线程分派至执行图形核阵列1914来处理所述命令和数据。在一个实施例中,图形核阵列1914包括一个或多个图形核块(例如,(多个)图形核1915a、(多个)图形核1915b),每个块包括一个或多个图形核。每个图形核包括一组图形执行资源,所述一组图形执行资源包括:用于执行图形操作和计算操作的通用执行逻辑和图形专用执行逻辑;以及固定功能纹理处理逻辑和/或机器学习和人工智能加速逻辑。在各个实施例中,3d流水线1812包括:固定功能逻辑和可编程逻辑,用于通过处理指令并将执行线程分派给图形核阵列1914来处理一个或多个着色器程序,诸如顶点着色器、几何着色器、像素着色器、片段着色器、计算着色器或其他着色器程序。图形核阵列1914提供了供在处理这些着色器程序时使用的统一的执行资源块。图形核阵列1914的(多个)图形核1915a至1914b内的多用途执行逻辑(例如,执行单元)包括对各种3dapi着色器语言的支持,并且可以执行与多个着色器相关联的多个同步执行线程。在一些实施例中,图形核阵列1914还包括用于执行诸如视频和/或图像处理的媒体功能的执行逻辑。在一个实施例中,除了图形处理操作之外,执行单元还包括可编程以执行并行通用计算操作的通用逻辑。通用逻辑可以与图16的(多个)处理器核1607或图17中的核1702a至1702n内的通用逻辑并行地或结合地执行处理操作。由在图形核阵列1914上执行的线程生成的输出数据可以将数据输出到统一返回缓冲器(urb)1918中的存储器。urb1918可以存储多个线程的数据。在一些实施例中,urb1918可以用于在图形核阵列1914上执行的不同线程之间发送数据。在一些实施例中,urb1918可以另外用于图形核阵列上的线程与共享功能逻辑1920内的固定功能逻辑之间的同步。在一些实施例中,图形核阵列1914是可缩放的,使得所述阵列包括可变数量的图形核,这些图形核各自具有基于gpe1910的目标功率和性能等级的可变数量的执行单元。在一个实施例中,执行资源是动态可缩放的,从而可以根据需要启用或禁用执行资源。图形核阵列1914与共享功能逻辑1920耦合,所述共享功能逻辑包括在图形核阵列中的图形核之间共享的多个资源。共享功能逻辑1920内的共享功能是向图形核阵列1914提供专用补充功能的硬件逻辑单元。在各种实施例中,共享功能逻辑1920包括但不限于采样器1921、数学1922和线程间通信(itc)1923逻辑。另外,一些实施例实现共享功能逻辑1920内的一个或多个高速缓存1925。在给定的专用功能的需求不足以包含在图形核阵列1914中的情况下实施共享功能。相反,所述专用功能的单个实例被实施为共享功能逻辑1920中的独立实体并且在图形核阵列1914内的执行资源之间共享。在图形核阵列1914之间共享并包括在图形核阵列1914内的精确的一组功能在各实施例之间变化。在一些实施例中,共享功能逻辑1920内由图形核阵列1914广泛使用的特定共享功能可以包括在图形核阵列1914内的共享功能逻辑1916内。在各个实施例中,图形核阵列1914内的共享功能逻辑1916可以包括共享功能逻辑1920内的一些或所有逻辑。在一个实施例中,共享功能逻辑1920内的所有逻辑元件可以在图形核阵列1914的共享功能逻辑1916内重复。在一个实施例中,共享功能逻辑1920被执行以便支持图形核阵列1914内的共享功能逻辑1916。图20是根据本文所描述的一些实施例的图形处理器核2000的硬件逻辑的框图。图20的具有与本文任何其他附图中的元件相同的参考号(或名称)的那些元件可采用与在本文中其他地方描述的方式相类似的任何方式进行操作或起作用,但不限于这些。在一些实施例中,所展示的图形处理器核2000包括在图19的图形核阵列1914内。图形处理器核2000——有时称为核切片——可以是模块化图形处理器内的一个或多个图形核。图形处理器核2000的示例是一个图形核切片,并且,基于目标功率包络线和性能包络线,如本文所描述的图形处理器可以包括多个图形核切片。每个图形核2000可以包括固定功能块2030,所述固定功能块与包括模块化通用逻辑块和固定功能逻辑块的多个子核2001a至2001f(也被称为子切片)相耦合。在一些实施例中,固定功能块2030包括几何/固定功能流水线2036,所述几何/固定功能流水线例如在低性能和/或低功率图形处理器实施方式中可以由图形处理器2000中的所有子核共享。在各个实施例中,几何/固定功能流水线2036包括3d固定功能流水线(例如,如在图18和图19中的3d流水线1812)、视频前端单元、线程派生器和线程分派器、以及管理如图19的统一返回缓冲器1918等统一返回缓冲器的统一返回缓冲器管理器。在一个实施例中,固定功能块2030还包括图形soc接口2037、图形微控制器2038和媒体流水线2039。图形soc接口2037提供了图形核2000与芯片上系统集成电路内的其他处理器核之间的接口。图形微控制器2038是可配置成管理图形处理器2000的包括线程分派、调度和先占(pre-emption)在内的各种功能的可编程子处理器。媒体流水线2039(例如,图18和图19的媒体流水线1816)包括用于促进对包括图像数据和视频数据在内的多媒体数据进行解码、编码、预处理和/或后处理的逻辑。媒体流水线2039经由对子核2001至2001f内的计算或采样逻辑的请求来实施媒体操作。在一个实施例中,soc接口2037使得图形核2000能够与通用应用处理器核(例如,cpu)和/或soc内的其他部件进行通信,这些其他部件包括如共享末级高速缓存存储器等存储器层级架构元件、系统ram、和/或嵌入式片上或封装体上dram。soc接口2037还可以使能与soc内如相机成像流水线等固定功能设备进行通信,并且使能使用和/或实施可以在图形核2000与soc内的cpu之间共享的全局存储器原子。soc接口2037还可以实施针对图形核2000的功率管理控制,并且使能图形核2000的时钟域与soc内的其他时钟域之间的接口。在一个实施例中,soc接口2037使得能够从被配置成向图形处理器内的一个或多个图形核中的每一个提供命令和指令的命令流转化器和全局线程分派器处接收命令缓冲器。当媒体操作将要执行时,这些命令和指令可以被分派给媒体流水线2039,或者当图形处理操作将要执行时,这些命令和指令可以被分派给几何和固定功能流水线(例如,几何和固定功能流水线2036、几何和固定功能流水线2014)。图形微控制器2038可以被配置成执行针对图形核2000的各种调度任务和管理任务。在一个实施例中,图形微控制器2038可以对子核2001a至2001f内的执行单元(eu)阵列2002a至2002f、2004a至2004f内的各个图形并行引擎执行图形和/或计算工作负荷调度。在这种调度模型中,在包括图形核2000的soc的cpu核上执行的主机软件可以经由多个图形处理器门铃(doorbell)之一来提交工作负荷,这调用了对适当图形引擎的调度操作。调度操作包括:确定接下来要运行哪个工作负荷、向命令流转化器提交工作负荷、对在引擎上运行的现有工作负荷进行先占、监测工作负荷的进程、以及通知主机软件何时完成工作负荷。在一个实施例中,图形微控制器2038还可以促进图形核2000的低功率或空闲状态,从而为图形核2000提供独立于操作系统和/或系统上的图形驱动器软件跨低功率状态转换来对图形核2000内的寄存器进行保存和恢复的能力。图形核2000可以具有多于或少于所展示的子核2001a至2001f,多达n个模块化子核。对于每组n个子核,图形核2000还可以包括共享功能逻辑2010、共享存储器和/或高速缓存存储器2012、几何/固定功能流水线2014、以及用于加速各种图形和计算处理操作的附加固定功能逻辑2016。共享功能逻辑2010可以包括与可由图形核2000内的每n个子核共享的图19共享功能逻辑1920相关联的逻辑单元(例如,采样器逻辑、数学逻辑、和/或线程间通信逻辑)。共享存储器和/或高速缓存存储器2012可以是用于图形核2000内的所述一组n个子核2001a至2001f的末级高速缓存,并且还可以充当可由多个子核访问的共享存储器。几何/固定功能流水线2014可以代替几何/固定功能流水线2036被包括在固定功能块2030内,并且可以包括相同的或类似的逻辑单元。在一个实施例中,图形核2000包括附加固定功能逻辑2016,所述附加固定功能逻辑可以包括供由图形核2000使用的各种固定功能加速逻辑。在一个实施例中,附加固定功能逻辑2016包括供在仅位置着色中使用的附加几何流水线。在仅位置着色中,存在两个几何流水线:几何/固定功能流水线2016、2036内的完全几何流水线;以及拣选流水线,所述拣选流水线是可以包括在附加固定功能逻辑2016内的附加几何流水线。在一个实施例中,拣选流水线是完全几何流水线的精简版本。完全流水线和拣选流水线可以执行同一应用的不同实例,每个实例具有单独的上下文。仅位置着色可以隐藏被丢弃三角形的较长拣选运行,从而在一些实例中使得能够更早完成着色。例如并且在一个实施例中,附件固定功能逻辑2016内的拣选流水线逻辑可以与主应用并行地执行位置着色器,并且通常比完全流水线更快地生成关键结果,因为完全流水线仅对顶点的位置属性进行取出和着色,而不向帧缓冲器执行对像素的光栅化和渲染。拣选流水线可以使用所生成的关键结果来计算所有三角形的可见性信息,而无需考虑那些三角形是否被拣选。完全流水线(其在本实例中可以被称为重放(replay)流水线)可以消耗可见性信息以便跳过被拣选的三角形从而仅对最终被传递到光栅化阶段的可见三角形进行着色。在一个实施例中,附加固定功能逻辑2016还可以包括用于包括针对机器学习训练或推理在内的实施方式的机器学习加速逻辑,如固定功能矩阵乘法逻辑。在每个图形子核2001a至2001f内包括可以用来响应于图形流水线、媒体流水线、或着色器程序的请求而执行图形操作、媒体操作和计算操作的一组执行资源。图形子核2001a至2001f包括:多个eu阵列2002a至2002f、2004a至2004f;线程分派和线程间通信(td/ic)逻辑2003a至2003f;3d(例如,纹理)采样器2005a至2005f;媒体采样器2006a至2006f;着色器处理器2007a至2007f;以及共享本地存储器(slm)2008a至2008f。eu阵列2002a至2002f、2004a至2004f各自包括多个执行单元,所述多个执行单元为能够执行浮点逻辑运算和整数/定点逻辑运算以便为图形操作、媒体操作或计算操作服务的通用图形处理单元,包括图形程序、媒体程序或计算着色器程序。td/ic逻辑2003a至2003f执行针对子核内的执行单元的本地线程分派和线程控制操作,并且促进在所述子核的执行单元上执行的线程之间的通信。3d采样器2005a至2005f可以将纹理或其他3d图形相关的数据读取到存储器中。3d采样器可以基于所配置的样本状态以及与给定纹理相关联的纹理格式来以不同方式读取纹理数据。媒体采样器2006a至2006f可以基于与媒体数据相关联的类型和格式来执行类似的读取操作。在一个实施例中,每个图形子核2001a至2001f可以交替地包括统一3d和媒体采样器。在子核2001a至2001f中的每一个内的执行单元上执行的线程可以利用每个子核内的共享本地存储器2008a至2008f,以便使得在线程组内执行的线程能够使用公共片上存储器池来执行。执行单元图21a至图21b展示了根据本文所描述的实施例的包括在图形处理器核中所采用的处理元件阵列的线程执行逻辑2100。图21a至图21b的具有与本文任何其他附图中的元件相同的参考号(或名称)的那些元件可采用与在本文中其他地方描述的方式相类似的任何方式进行操作或起作用,但不限于这些。图21a展示了线程执行逻辑2100的概览,所述线程执行逻辑可以包括被展示为具有图20的每个子核2001a至2001f的硬件逻辑的变体。图21b展示了执行单元的示例性内部细节。如图21a中所示,在一些实施例中,线程执行逻辑2100包括着色器处理器2102、线程分派器2104、指令高速缓存2106、包括多个执行单元2108a至2108n的可缩放执行单元阵列、采样器2110、数据高速缓存2112、以及数据端口2114。在一个实施例中,可缩放执行单元阵列可以通过基于工作负荷的计算需求来启用或禁用一个或多个执行单元(例如,执行单元2108a,2108b,2108c,2108d,一直到2108n-1和2108n中的任一个)来动态地缩放。在一个实施例中,所包括的部件经由互连结构而互连,所述互连结构链接到部件中的每个部件。在一些实施例中,线程执行逻辑2100包括通过指令高速缓存2106、数据端口2114、采样器2110、以及执行单元阵列2108a至2108n中的一者或多者到存储器(如系统存储器或高速缓存存储器)的一个或多个连接件。在一些实施例中,每个执行单元(例如,2108a)是能够执行多个同步硬件线程同时针对每个线程并行地处理多个数据元素的独立可编程通用计算单元。在各种实施例中,执行单元2108a至2108n的阵列是可缩放的以包括任意数量的单独执行单元。在一些实施例中,执行单元2108a至2108n主要用于执行着色器程序。着色器处理器2102可以处理各种着色器程序并且经由线程分派器2104分派与着色器程序相关联的执行线程。在一个实施例中,线程分派器包括用于对来自图形和媒体流水线的线程发起请求进行仲裁并且在一个或多个执行单元2108a至2108n上实例化所请求的线程的逻辑。例如,几何流水线可以将顶点处理、曲面细分或几何处理线程分派至线程执行逻辑进行处理。在一些实施例中,线程分派器2104还可处理来自执行着色器程序的运行时间线程生成请求。在一些实施例中,执行单元2108a至2108n支持指令集(所述指令集包括对许多标准3d图形着色器指令的原生支持),从而使得以最小的转换执行来自图形库(例如,direct3d和opengl)的着色器程序。这些执行单元支持顶点和几何处理(例如,顶点程序、几何程序、顶点着色器)、像素处理(例如,像素着色器、片段着色器)以及通用处理(例如,计算和媒体着色器)。执行单元2108a至2108n中的每一个都能够执行多发布单指令多数据(simd),并且多线程操作能够在面对较高等待时间的存储器访问时实现高效的执行环境。每个执行单元内的每个硬件线程都具有专用的高带宽寄存器堆和相关的独立线程状态。对于具有整数、单精度浮点运算和双精度浮点运算、simd分支功能、逻辑运算、超越运算和其他混杂运算的流水线,执行是每个时钟的多发布。在等待来自存储器或共享功能之一的数据时,执行单元2108a至2108n内的依赖性逻辑使等待线程休眠,直到所请求的数据已返回。当等待线程正在休眠时,硬件资源可能会专门用于处理其他线程。例如,在与顶点着色器操作相关联的延迟期间,执行单元可以执行像素着色器、片段着色器或包括不同顶点着色器的另一种类型的着色器程序的操作。执行单元2108a至2108n中的每个执行单元在数据元素阵列上进行操作。数据元素的数量是“执行大小”、或指令的信道数。执行通道是执行数据元素访问、掩蔽、和指令内的流控制的逻辑单元。通道的数量可以与针对特定图形处理器的物理算术逻辑单元(alu)或浮点单元(fpu)的数量无关。在一些实施例中,执行单元2108a至2108n支持整数和浮点数据类型。执行单元指令集包括simd指令。各种数据元素可作为压缩数据类型存储在寄存器中,并且执行单元将基于元素的数据大小来处理各种元素。例如,当在256位宽的向量上进行操作时,所述256位的向量存储在寄存器中,并且所述执行单元作为四个单独64位压缩数据元素(四倍字长(qw)大小的数据元素)、八个单独32位压缩数据元素(双倍字长(dw)大小的数据元素)、十六个单独16位压缩数据元素(字长(w)大小的数据元素)、或三十二个单独8位数据元素(字节(b)大小的数据元素)在所述向量上进行操作。然而,不同的向量宽度和寄存器大小是可能的。在一个实施例中,可以将一个或多个执行单元组合到融合执行单元2109a至2109n中,所述融合执行单元具有对于融合eu而言共同的线程控制逻辑(2107a至2107n)。可以将多个eu融合到一个eu组中。所述融合eu组中的每个eu可以被配置成执行单独的simd硬件线程。融合eu组中的eu数量可以根据实施例而变化。另外,可以每个eu地执行不同的simd宽度,包括但不限于simd8、simd16和simd32。每个融合图形执行单元2109a至2109n包括至少两个执行单元。例如,融合执行单元2109a包括第一eu2108a、第二eu2108b、以及对于第一eu2108a和第二eu2108b而言共同的线程控制逻辑2107a。线程控制逻辑2107a控制在融合图形执行单元2109a上执行的线程,从而允许融合执行单元2109a至2109n内的每个eu使用共同指令指针寄存器来执行。一个或多个内部指令高速缓存(例如,2106)包括在所述线程执行逻辑2100中以便高速缓存所述执行单元的线程指令。在一些实施例中,一个或多个数据高速缓存(例如,2112)被包括用于高速缓存在线程执行过程中的线程数据。在一些实施例中,采样器2110被包括用于为3d操作提供纹理采样并且为媒体操作提供媒体采样。在一些实施例中,采样器2110包括专门的纹理或媒体采样功能,以便在向执行单元提供采样数据之前在采样过程中处理纹理或媒体数据。在执行过程中,图形和媒体流水线经由线程生成和分派逻辑向线程执行逻辑2100发送线程发起请求。一旦一组几何对象已经被处理并被光栅化成像素数据,则着色器处理器2102内的像素处理器逻辑(例如,像素着色器逻辑、片段着色器逻辑等)被调用以便进一步计算输出信息并且使得结果被写入到输出表面(例如,色彩缓冲器、深度缓冲器、模板印刷(stencil)缓冲器等)。在一些实施例中,像素着色器或片段着色器计算各顶点属性的值,所述各顶点属性跨光栅化对象被内插。在一些实施例中,着色器处理器2102内的像素处理器逻辑然后执行应用编程接口(api)供应的像素或片段着色器程序。为了执行着色器程序,着色器处理器2102经由线程分派器2104将线程分派至执行单元(例如,2108a)。在一些实施例中,着色器处理器2102使用采样器2110中的纹理采样逻辑来访问存储器中所存储的纹理图中的纹理数据。对纹理数据和输入几何数据的算术运算计算每个几何片段的像素颜色数据,或丢弃一个或多个像素而不进行进一步处理。在一些实施例中,数据端口2114提供存储器访问机制,供线程执行逻辑2100将经处理的数据输出至存储器以便在图形处理器输出流水线上进行进一步处理。在一些实施例中,数据端口2114包括或耦合至一个或多个高速缓存存储器(例如,数据高速缓存2112)从而经由数据端口来高速缓存数据以供存储器访问。如图21b中所展示的,图形执行单元2108可以包括指令取出单元2137、通用寄存器堆阵列(grf)2124、架构寄存器堆阵列(arf)2126、线程仲裁器2122、发送单元2130、分支单元2132、一组simd浮点单元(fpu)2134、以及在一个实施例中的一组专用整数simdalu2135。grf2124和arf2126包括与在图形执行单元2108中可能活跃的每个同步的硬件线程相关联的所述一组通用寄存器堆和架构寄存器堆。在一个实施例中,在arf2126中维持每线程架构状态,而在线程执行期间所使用的数据被存储在grf2124中。每个线程的执行状态,包括每个线程的指令指针,可以保持在arf2126中的线程专用寄存器中。在一个实施例中,图形执行单元2108具有作为同步多线程化(smt)与细粒度交织多线程化(imt)的组合的架构。所述架构具有模块化配置,所述模块化配置可以基于每执行单元的目标同步线程数量和目标寄存器数量而在设计时得到微调,在所述模块化配置中,跨用于执行多个同步线程的逻辑来划分执行单元资源。在一个实施例中,图形执行单元2108可以共同发布多条指令,这些指令可以各自是不同的指令。图形执行单元线程2108的线程仲裁器2122可以将指令分派给以下各项中的一项以供执行:发送单元2130、分支单元2142或(多个)simdfpu2134。每个执行线程可以访问grf2124内的128个通用寄存器,其中,每个寄存器可以存储可作为具有32位数据元素的simd8元素向量访问的32个字节。在一个实施例中,每个执行单元线程访问grf2124内的4个千字节,但是实施例并不限于此,并且在其他实施例中可以提供更多或更少的寄存器资源。在一个实施例中,多达七个线程可以同步执行,但是每执行单元的线程数量还可以根据实施例而变化。在七个线程可以访问4个千字节的实施例中,grf2124可以存储总共28千字节。灵活寻址模式可以准许对多个寄存器进行一起寻址,从而高效地建立更宽的寄存器或者表示跨步矩形块数据结构。在一个实施例中,经由通过消息传递发送单元2130所执行的“发送”指令来分派存储器操作、采样器操作以及其他较长时延系统通信。在一个实施例中,分支指令被分派给专用分支单元2132以便促进simd发散和最终收敛。在一个实施例中,图形执行单元2108包括用于执行浮点运算的一个或多个simd浮点单元(fpu)2134。在一个实施例中,(多个)fpu2134还支持整数计算。在一个实施例中,(多个)fpu2134可以simd执行多达数量m个32位浮点(或整数)运算,或者simd执行多达2m个16位整数或16位浮点运算。在一个实施例中,(多个)fpu中的至少一个提供支持高吞吐量超越数学功能和双精度64位浮点的扩展数学能力。在一些实施例中,一组8位整数simdalu2135还表示并且还可以具体地优化成执行与机器学习计算相关联的运算。在一个实施例中,可以在图形子核分组(例如,子切片)时对图形执行单元2108的多个实例的阵列进行实例化。为了可伸缩性,产品架构可以选择每子核分组的确切执行单元数量。在一个实施例中,执行单元2108可以跨多个执行通道来执行指令。在进一步的实施例中,在图形执行单元2108上所执行的每个线程是在不同通道上执行的。图22是展示了根据一些实施例的图形处理器指令格式2200的框图。在一个或多个实施例中,图形处理器执行单元支持具有多种格式的指令的指令集。实线框展示了通常包括在执行单元指令中的部件,而虚线包括可选的部件或仅包括在指令子集中的部件。在一些实施例中,所描述和展示的指令格式2200是宏指令,因为它们是供应至执行单元的指令,这与从指令解码产生的微操作相反(一旦所述指令被处理)。在一些实施例中,图形处理器执行单元原生地支持采用128位指令格式2210的指令。64位紧凑指令格式2230可用于基于所选指令、多个指令选项和操作数数量的一些指令。原生128位指令格式2210提供对所有指令选项的访问,而一些选项和操作限制在64位格式2230中。64位格式2230中可用的原生指令根据实施例而不同。在一些实施例中,使用索引字段2213中的一组索引值将指令部分地压缩。执行单元硬件基于索引值来参考一组压缩表,并使用压缩表输出来重构采用128位指令格式2210的原生指令。针对每种格式,指令操作码2212限定执行单元要执行的操作。执行单元跨每个操作数的多个数据元素来并行地执行每条指令。例如,响应于添加指令,执行单元跨每个颜色通道执行同步添加操作,所述颜色通道表示纹理元素或图片元素。默认地,执行单元跨操作数的所有数据通道执行每条指令。在一些实施例中,指令控制字段2214使能控制某些执行选项,诸如通道选择(例如,预测)以及数据通道排序(例如,混合)。针对采用128位指令格式2210的指令,执行大小字段2216限制了将并行执行的数据通道的数量。在一些实施例中,执行大小字段2216不可用于64位紧凑指令格式2230。一些执行单元指令具有多达三个操作数,包括两个源操作数(src02220、src12222)和一个目的地2218。在一些实施例中,执行单元支持双目的地指令,其中这些目的地之一是隐式的。数据操作指令可以具有第三源操作数(例如,src22224),其中,指令操作码2212确定源操作数的数量。指令的最后的源操作数可以是利用所述指令传递的即时(例如,硬编码)值。在一些实施例中,128位指令格式2210包括访问/地址模式字段2226,所述访问/地址模式信息例如指定了是使用直接寄存器寻址模式还是间接寄存器寻址模式。当使用直接寄存器寻址模式时,直接由指令中的位来提供一个或多个操作数的寄存器地址。在一些实施例中,128位指令格式2210包括访问/地址模式字段2226,所述访问/地址模式字段指定指令的地址模式和/或访问模式。在一个实施例中,访问模式用于限定针对指令的数据访问对齐。一些实施例支持访问模式,包括16字节对齐访问模式和1字节对齐访问模式,其中,访问模式的字节对齐确定了指令操作数的访问对齐。例如,当在第一模式中时,指令可以使用字节对齐寻址以用于源操作数和目的地操作数,并且当在第二模式中时,指令可以使用16字节对齐寻址以用于所有的源操作数和目的地操作数。在一个实施例中,访问/地址模式字段2226的地址模式部分确定指令是使用直接寻址还是间接寻址。当使用直接寄存器寻址模式时,指令中的位直接提供一个或多个操作数的寄存器地址。当使用间接寄存器寻址模式时,可以基于指令中的地址寄存器值和地址立即数字段来计算一个或多个操作数的寄存器地址。在一些实施例中,基于操作码2212位字段对指令进行分组从而简化操作码解码2240。针对8位的操作码,第4、5、和6位允许执行单元确定操作码的类型。所示出的精确操作码分组仅是示例性的。在一些实施例中,移动和逻辑操作码组2242包括数据移动和逻辑指令(例如,移动(mov)、比较(cmp))。在一些实施例中,移动和逻辑组2242共享五个最高有效位(msb),其中移动(mov)指令采用0000xxxxb的形式,而逻辑指令采用0001xxxxb的形式。流控制指令组2244(例如,调用(call)、跳(jmp))包括采用0010xxxxb形式(例如,0x20)的指令。混杂指令组2246包括指令的混合,包括采用0011xxxxb形式(例如,0x30)的同步指令(例如,等待(wait)、发送(send))。并行数学指令组2248包括采用0100xxxxb形式(例如,0x40)的按分量的算术指令(例如,加(add)、乘(mul))。并行数学组2248跨数据通道并行地执行算术运算。向量数学组2250包括采用0101xxxxb形式(例如,0x50)的算术指令(例如,dp4)。向量数学组对向量操作数执行算术运算,诸如点积运算。图形流水线图23是图形处理器2300的另一个实施例的框图。图23的具有与此处任何其他附图中的元件相同的参考号(或名称)的那些元件可采用与在本文中其他地方描述的方式相类似的任何方式进行操作或起作用,但不限于这些。在一些实施例中,图形处理器2300包括几何流水线2320、媒体流水线2330、显示引擎2340、线程执行逻辑2350、以及渲染输出流水线2370。在一些实施例中,图形处理器2300是包括一个或多个通用处理核的多核处理系统内的图形处理器。图形处理器受到至一个或多个控制寄存器(未示出)的寄存器写入的控制或者经由环形互连2302经由发布至图形处理器2300的命令被控制。在一些实施例中,环形互连2302将图形处理器2300耦合至其他处理部件,比如其他图形处理器或通用处理器。来自环形互连2302的命令通过命令流转化器2303被解译,所述命令流转化器将指令供应至几何流水线2320或媒体流水线2330的单独部件。在一些实施例中,命令流转化器2303引导顶点获取器2305的操作,所述顶点获取器从存储器读取顶点数据并执行由命令流转化器2303所提供的顶点处理命令。在一些实施例中,顶点获取器2305将顶点数据提供给顶点着色器2307,所述顶点着色器对每个顶点执行坐标空间变换和照明操作。在一些实施例中,顶点获取器2305和顶点着色器2307通过经由线程分派器2331向执行单元2352a至2352b分派执行线程来执行顶点处理指令。在一些实施例中,执行单元2352a至2352b是具有用于执行图形和媒体操作的指令集的向量处理器阵列。在一些实施例中,执行单元2352a至2352b具有附接的l1高速缓存2351,所述高速缓存专用于每个阵列或在阵列之间共享。高速缓存可以被配置为数据高速缓存、指令高速缓存、或单个高速缓存,所述单个高速缓存被分区为包含不同分区中的数据和指令。在一些实施例中,几何流水线2320包括用于执行3d对象的硬件加速曲面细分的曲面细分部件。在一些实施例中,可编程的外壳着色器2311配置曲面细分操作。可编程域着色器2317提供对曲面细分输出的后端评估。曲面细分器2313在外壳着色器2311的方向上进行操作并且包含专用逻辑,所述专用逻辑用于基于粗糙几何模型来生成详细的几何对象集合,所述粗糙几何模型作为输入被提供至几何流水线2320。在一些实施例中,如果未使用曲面细分,则可以对曲面细分部件(例如,外壳着色器2311、曲面细分器2313、域着色器2317)进行旁路。在一些实施例中,完整的几何对象可以由几何着色器2319经由被分派至所述执行单元2352a至2352b的一个或多个线程来处理、或者可以直接行进至剪辑器2329。在一些实施例中,几何着色器在整个几何对象(而非顶点或者如图形流水线的先前级中的顶点补片(patch))上进行操作。如果禁用曲面细分,则几何着色器2319从顶点着色器2307接收输入。在一些实施例中,几何着色器2319可由几何着色器程序编程以便在曲面细分单元被禁用时执行几何曲面细分。在光栅化之前,剪辑器2329处理顶点数据。剪辑器2329可以是固定功能的剪辑器或者具有剪辑和几何着色器功能的可编程剪辑器。在一些实施例中,渲染输出流水线2370中的光栅化器和深度测试部件2373分派像素着色器以将几何对象转换成每像素表示。在一些实施例中,像素着色器逻辑包括在线程执行逻辑2350中。在一些实施例中,应用可对光栅化器和深度测试部件2373进行旁路并且经由流出单元2323访问未光栅化的顶点数据。图形处理器2300具有互连总线、互连结构、或某个其他的互连机制,所述互连机制允许数据和消息在所述图形处理器的主要部件之中传递。在一些实施例中,执行单元2352a至2352b和相关联的逻辑单元(例如,l1高速缓存2351、采样器2354、纹理高速缓存2358等)经由数据端口2356进行互连,以便执行存储器访问并且与处理器的渲染输出流水线部件进行通信。在一些实施例中,采样器2354、高速缓存2351、2358以及执行单元2352a至2352b各自具有单独的存储器访问路径。在一个实施例中,纹理高速缓存2358还可被配置成采样器高速缓存。在一些实施例中,渲染输出流水线2370包含光栅化器和深度测试部件2373,所述光栅化器和深度测试部件将基于顶点的对象转换为相关联的基于像素的表示。在一些实施例中,光栅化器逻辑包括用于执行固定功能三角形和线光栅化的窗口器/掩蔽器单元。相关联的渲染高速缓存2378和深度高速缓存2379在一些实施例中也是可用的。像素操作部件2377对数据进行基于像素的操作,然而在一些实例中,与2d操作(例如,利用混合的位块图像传递)相关联的像素操作由2d引擎2341执行、或者在显示时间由显示控制器2343使用重叠显示平面来代替。在一些实施例中,共享的l3高速缓存2375可用于所有的图形部件,从而允许在无需使用主系统存储器的情况下共享数据。在一些实施例中,图形处理器媒体流水线2330包括媒体引擎2337和视频前端2334。在一些实施例中,视频前端2334从命令流转化器2303接收流水线命令。在一些实施例中,媒体流水线2330包括单独的命令流转化器。在一些实施例中,视频前端2334在将所述命令发送至媒体引擎2337之前处理媒体命令。在一些实施例中,媒体引擎2337包括用于生成线程以用于经由线程分派器2331分派至线程执行逻辑2350的线程生成功能。在一些实施例中,图形处理器2300包括显示引擎2340。在一些实施例中,显示引擎2340在处理器2300外部并且经由环形互连2302、或某个其他互连总线或机构与图形处理器耦合。在一些实施例中,显示引擎2340包括2d引擎2341和显示控制器2343。在一些实施例中,显示引擎2340包含能够独立于3d流水线而操作的专用逻辑。在一些实施例中,显示控制器2343与显示设备(未示出)耦合,所述显示设备可以是系统集成显示设备(如在膝上型计算机中)、或者经由显示设备连接器附接的外部显示设备。在一些实施例中,几何流水线2320和媒体流水线2330可被配置成用于基于多个图形和媒体编程接口执行操作并且并非专用于任何一种应用编程接口(api)。在一些实施例中,图形处理器的驱动器软件将专用于特定图形或媒体库的api调度转换成可由图形处理器处理的命令。在一些实施例中,为全部来自khronosgroup的开放图形库(opengl)、开放计算语言(opencl)和/或vulkan图形和计算api提供了支持。在一些实施例中,也可以为微软公司的direct3d库提供支持。在一些实施例中,可以支持这些库的组合。还可以为开源计算机视觉库(opencv)提供支持。如果可做出从未来api的流水线到图形处理器的流水线的映射,则具有兼容3d流水线的未来api也将受到支持。图形流水线编程图24a是展示了根据一些实施例的图形处理器命令格式2400的框图。图24b是展示了根据实施例的图形处理器命令序列2410的框图。图24a中的实线框展示了通常包括在图形命令中的部件,而虚线包括是可选的或者仅包括在所述图形命令的子集中的部件。图24a的示例性图形处理器命令格式2400包括用于标识客户端2402、命令操作代码(操作码)2404、以及用于命令的数据2406的数据字段。一些命令中还包括子操作码2405和命令大小2408。在一些实施例中,客户端2402指定了处理命令数据的图形设备的客户端单元。在一些实施例中,图形处理器命令解析器检查每个命令的客户端字段以便调整对命令的进一步处理并将命令数据路由至合适的客户端单元。在一些实施例中,图形处理器客户端单元包括存储器接口单元、渲染单元、2d单元、3d单元、和媒体单元。每个客户端单元具有对命令进行处理的相应处理流水线。一旦命令被客户端单元接收到,客户端单元就读取操作码2404以及子操作码2405(如果存在的话)从而确定要执行的操作。客户端单元使用数据字段2406内的信息来执行命令。针对一些命令,期望显式的命令大小2408来指定命令的大小。在一些实施例中,命令解析器基于命令操作码自动地确定命令中的至少一些命令的大小。在一些实施例中,经由双倍字长的倍数对命令进行对齐。图24b中的流程图示出了示例性图形处理器命令序列2410。在一些实施例中,以图形处理器的实施例为特征的数据处理系统的软件或固件使用所示出的命令序列的版本来启动、执行并终止图形操作集合。仅出于示例性目的示出并描述了样本命令序列,如实施例并不限于这些特定命令或者此命令序列。而且,所述命令可以作为一批命令以命令序列被发布,从而使得图形处理器将以至少部分同时的方式处理命令序列。在一些实施例中,图形处理器命令序列2410可以以流水线转储清除命令2412开始以便使得任一活跃图形流水线完成针对所述流水线的当前未决命令。在一些实施例中,3d流水线2422和媒体流水线2424不同时进行操作。执行流水线转储清除以使得活动图形流水线完成任何未决命令。响应于流水线转储清除,用于图形处理器的命令解析器将停止命令处理直到活跃绘画引擎完成未决操作并且使得相关的读高速缓存失效。可选地,渲染高速缓存中被标记为‘脏’的任何数据可以被转储清除到存储器中。在一些实施例中,流水线转储清除命令2412可以用于流水线同步或者用在将图形处理器置于低功率状态之前。在一些实施例中,当命令序列需要图形处理器在流水线之间显式地地切换时,使用流水线选择命令2413。在一些实施例中,在发布流水线命令之前在执行情境中仅需要一次流水线选择命令2413,除非所述情境要发布针对两条流水线的命令。在一些实施例中,在经由流水线选择命令2413的流水线切换之前正好需要流水线转储清除命令2412。在一些实施例中,流水线控制命令2414配置用于操作的图形流水线并且用于对3d流水线2422和媒体流水线2424进行编程。在一些实施例中,流水线控制命令2414配置活跃流水线的流水线状态。在一个实施例中,流水线控制命令2414用于流水线同步并且用于在处理一批命令之前清除来自活跃流水线内的一个或多个高速缓存存储器中的数据。在一些实施例中,返回缓冲器状态命令2416用于配置返回缓冲器的集合以供相应的流水线写入数据。一些流水线操作需要分配、选择、或配置一个或多个返回缓冲器,在处理过程中所述操作将中间数据写入所述一个或多个返回缓冲器中。在一些实施例中,图形处理器还使用一个或多个返回缓冲器以便存储输出数据并且执行跨线程通信。在一些实施例中,返回缓冲器状态2416包括选择返回缓冲器的大小和数量以用于流水线操作集合。命令序列中的剩余命令基于用于操作的活跃流水线而不同。基于流水线判定2420,所述命令序列被定制用于以3d流水线状态2430开始的3d流水线2422、或者在媒体流水线状态2440处开始的媒体流水线2424。用于配置3d流水线状态2430的命令包括用于顶点缓冲器状态、顶点元素状态、常量颜色状态、深度缓冲器状态、以及有待在处理3d图元命令之前配置的其他状态变量的3d状态设置命令。这些命令的值至少部分地基于使用中的特定3dapi来确定。在一些实施例中,3d流水线状态2430命令还能够选择性地禁用或旁路掉特定流水线元件(如果将不使用那些元件的话)。在一些实施例中,3d图元2432命令用于提交待由3d流水线处理的3d图元。经由3d图元2432命令传递给图形处理器的命令和相关联参数将被转发到所述图形流水线中的顶点获取功能。顶点获取功能使用3d图元2432命令数据来生成多个顶点数据结构。所述顶点数据结构被存储在一个或多个返回缓冲器中。在一些实施例中,3d图元2432命令用于经由顶点着色器对3d图元执行顶点操作。为了处理顶点着色器,3d流水线2422将着色器执行线程分派至图形处理器执行单元。在一些实施例中,经由执行2434命令或事件触发3d流水线2422。在一些实施例中,寄存器写入触发命令执行。在一些实施例中,经由命令序列中的‘前进’(‘go’)或‘拣选’(‘kick’)命令来触发执行。在一个实施例中,使用流水线同步命令来触发命令执行以便通过图形流水线转储清除命令序列。3d流水线将针对3d图元来执行几何处理。一旦完成操作,则对所产生的几何对象进行光栅化,并且像素引擎对所产生的像素进行着色。对于这些操作,还可以包括用于控制像素着色和像素后端操作的附加命令。在一些实施例中,当执行媒体操作时,图形处理器命令序列2410跟随在媒体流水线2424路径之后。一般地,针对媒体流水线2424进行编程的具体用途和方式取决于待执行的媒体或计算操作。在媒体解码过程中,特定的媒体解码操作可以被卸载到所述媒体流水线。在一些实施例中,还可对媒体流水线进行旁路,并且可使用由一个或多个通用处理核提供的资源来整体地或部分地执行媒体解码。在一个实施例中,媒体流水线还包括用于通用图形处理器单元(gpgpu)操作的元件,其中,所述图形处理器用于使用计算着色器程序来执行simd向量运算,所述计算着色器程序与渲染图形图元不是显式地相关的。在一些实施例中,以与3d流水线2422相似的方式对媒体流水线2424进行配置。将用于配置媒体流水线状态2440的一组命令分派或放置到命令队列中,在媒体对象命令2442之前。在一些实施例中,用于媒体流水线状态的命令2440包括用于配置媒体流水线元件的数据,所述媒体流水线元件将用于处理媒体对象。这包括用于在媒体流水线内配置视频解码和视频编码逻辑的数据,诸如编码或解码格式。在一些实施例中,用于媒体流水线状态的命令2440还支持将一个或多个指针用于包含一批状态设置的“间接”状态元件。在一些实施例中,媒体对象命令2442将指针供应至媒体对象以用于由媒体流水线进行处理。媒体对象包括存储器缓冲器,所述存储器缓冲器包含待处理的视频数据。在一些实施例中,在发布媒体对象命令2442之前,所有的媒体流水线状态必须是有效的。一旦流水线状态被配置并且媒体对象命令2442被排队,则经由执行2444命令或等效的执行事件(例如,寄存器写入)来触发媒体流水线2424。然后可以通过由3d流水线2422或媒体流水线2424提供的操作对来自媒体流水线2424的输出进行后处理。在一些实施例中,以与媒体操作类似的方式来配置和执行gpgpu操作。图形软件架构图25展示了根据一些实施例的数据处理系统2500的示例性图形软件架构。在一些实施例中,软件架构包括3d图形应用2510、操作系统2520、以及至少一个处理器2530。在一些实施例中,处理器2530包括图形处理器2532以及一个或多个通用处理器核2534。图形应用2510和操作系统2520各自在数据处理系统的系统存储器2550中执行。在一些实施例中,3d图形应用2510包含一个或多个着色器程序,所述一个或多个着色器程序包括着色器指令2512。着色器语言指令可以采用高级着色器语言,诸如高级着色器语言(hlsl)或opengl着色器语言(glsl)。所述应用还包括可执行指令2514,所述可执行指令采用适合用于由通用处理器核2534执行的机器语言。所述应用还包括由顶点数据限定的图形对象2516。在一些实施例中,操作系统2520是来自微软公司的操作系统、专用unix式操作系统、或使用linux内核变体的开源unix式操作系统。操作系统2520可以支持图形api2522,诸如direct3dapi、openglapi或vulkanapi。当direct3dapi正在使用时,操作系统2520使用前端着色器编译器2524以将hlsl中的任何着色器指令2512编译成较低级的着色器语言。所述编译可以是即时(jit)编译,或者所述应用可执行着色器预编译。在一些实施例中,在对3d图形应用2510进行编译的过程中,将高级着色器编译成低级着色器。在一些实施例中,着色器指令2512以中间形式提供,诸如由vulkanapi使用的标准便携式中间表示(spir)的版本。在一些实施例中,用户模式图形驱动器2526包含后端着色器编译器2527,所述后端着色器编译器用于将着色器指令2512转换成硬件专用的表示。当在使用openglapi时,将采用glsl高级语言的着色器指令2512传递至用户模式图形驱动器2526以用于编译。在一些实施例中,用户模式图形驱动器2526使用操作系统内核模式功能2528来与内核模式图形驱动器2529进行通信。在一些实施例中,内核模式图形驱动器2529与图形处理器2532进行通信以便分派命令和指令。ip核实现至少一个实施例的一个或多个方面可以由存储在机器可读介质上的代表性代码实现,所述机器可读介质表示和/或限定集成电路诸如处理器内的逻辑。例如,机器可读介质可以包括表示处理器内的各个逻辑的指令。当由机器读取时,所述指令可以使机器制造用于执行本文所述的技术的逻辑。这类表示(称为“ip核”)是集成电路的逻辑的可重复使用单元,所述可重复使用单元可以作为对集成电路的结构进行描述的硬件模型而存储在有形、机器可读介质上。可以将硬件模型供应至在制造集成电路的制造机器上加载硬件模型的各消费者或制造设施。可以制造集成电路,从而使得电路执行与本文所述的实施例中的任一实施例相关联地描述的操作。图26a是展示了根据实施例的可以用于制造集成电路以执行操作的ip核开发系统2600的框图。ip核开发系统2600可以用于生成可并入到更大的设计中或用于构建整个集成电路(例如,soc集成电路)的模块化、可重复使用设计。设计设施2630可采用高级编程语言(例如,c/c++)生成对ip核设计的软件仿真2610。软件仿真2610可用于使用仿真模型2612来设计、测试并验证ip核的行为。仿真模型2612可以包括功能、行为和/或时序仿真。然后可由仿真模型2612来创建或合成寄存器传输级(rtl)设计2615。rtl设计2615是对硬件寄存器之间的数字信号的流动进行建模的集成电路(包括使用建模的数字信号执行的相关联逻辑)的行为的抽象。除了rtl设计2615之外,还可以创建、设计或合成逻辑电平或晶体管电平处的较低层次设计。由此,初始设计和仿真的具体细节可以发生变化。可以由设计设施将rtl设计2615或等效方案进一步合成为硬件模型2620,所述硬件模型可以采用硬件描述语言(hdl)或物理设计数据的某种其他表示。可以进一步仿真或测试hdl以验证ip核设计。可使用非易失性存储器2640(例如,硬盘、闪存、或任何非易失性存储介质)来存储ip核设计以用于递送至第3方制造设施2665。可替代地,可以通过有线连接2650或无线连接2660来传输(例如,经由互联网)ip核设计。制造设施2665然后可以制造至少部分地基于ip核设计的集成电路。所制造的集成电路可被配置用于执行根据本文所述的至少一个实施例的操作。图26b展示了根据本文所描述的一些实施例的集成电路封装体组件2670的截面侧视图。集成电路封装体组件2670展示了如本文所描述的一个或多个处理器或加速器设备的实施方式。封装体组件2670包括连接至衬底2680的多个硬件逻辑单元2672、2674。逻辑2672、2674可以至少部分地在可配置逻辑或固定功能逻辑硬件中实施,并且可以包括(多个)处理器核、(多个)图形处理器或本文所描述的其他加速器设备中的任何的一个或多个部分。每个逻辑单元2672、2674可以在半导体管芯内实施并且经由互连结构2673与衬底2680耦合。互连结构2673可以被配置成在逻辑2672、2674与衬底2680之间路由电信号,并且可以包括互连,如但不限于凸块或支柱。在一些实施例中,互连结构2673可以被配置成路由电信号,如例如,与逻辑2672、2674的操作相关联的输入/输出(i/o)信号和/或功率或接地信号。在一些实施例中,衬底2680是基于环氧树脂的层压衬底。在其他实施例中,封装体衬底2680可以包括其他合适类型的衬底。封装体组件2670可以经由封装体互连2683连接至其他电气设备。封装体互连2683可以耦合至衬底2680的表面以便将电信号路由到其他电气设备,如母板、其他芯片组或多芯片模块。在一些实施例中,逻辑单元2672、2674与桥接器2682电耦合,所述桥接器被配置成在逻辑2672、2674之间路由电信号。桥接器2682可以是为电信号提供路由的密集互连结构。桥接器2682可以包括由玻璃或合适的半导体材料构成的桥式衬底。电路由特征可以在桥接器衬底上形成以便提供逻辑2672、2674之间的芯片到芯片连接。尽管展示了两个逻辑单元2672、2674和桥接器2682,但是本文所描述的实施例可以包括一个或多个管芯上的更多或更少的逻辑单元。所述一个或多个管芯可以由零个或多个桥接器连接,因为在单个管芯上包括逻辑时,可以排除桥接器2682。替代性地,多个管芯或逻辑单元可以由一个或多个桥接器连接。另外,多个逻辑单元、管芯和桥接器可以以包括三维配置等其他可能的配置连接在一起。示例性芯片上系统集成电路图27至图29展示了根据本文所述的各种实施例的可以使用一个或多个ip核来制造的示例性集成电路和相关图形处理器。除了所展示的之外,还可以包括其他逻辑和电路,包括附加的图形处理器/核、外围接口控制器或通用处理器核。图27是展示了根据实施例的可以使用一个或多个ip核来制造的示例性芯片上系统集成电路2700的框图。示例性集成电路2700包括一个或多个应用处理器2705(例如,cpu)、至少一个图形处理器2710,并且另外还可以包括图像处理器2715和/或视频处理器2720,其中的任一项都可以是来自相同或多个不同设计设施的模块化ip核。集成电路2700包括外围或总线逻辑,包括usb控制器2725、uart控制器2730、spi/sdio控制器2735和i2s/i2c控制器2740。另外,集成电路还可以包括显示设备2745,所述显示设备耦合至高清晰度多媒体接口(hdmi)控制器2750和移动行业处理器接口(mipi)显示界面2755中的一项或多项。可以由闪存子系统2760(包括闪存和闪存控制器)来提供存储。可以经由存储器控制器2765来提供存储器接口以访问sdram或sram存储器设备。另外,一些集成电路还包括嵌入式安全引擎2770。图28a至图28b是框图,展示了根据本文所描述的实施例的用于在soc内使用的示例性图形处理器。图28a展示了根据实施例的可以使用一个或多个ip核来制造的片上系统集成电路的示例性图形处理器2810。图28b展示了根据实施例的可以使用一个或多个ip核来制造的片上系统集成电路的附加示例性图形处理器2840。图28a的图形处理器2810是低功率图形处理器核的示例。图28b的图形处理器2840是较高性能图形处理器核的示例。图形处理器2810、2840中的每一个可以是图27的图形处理器2710的变体。如图28a中所示,图形处理器2810包括顶点处理器2805以及一个或多个片段处理器2815a至2815n(例如,2815a、2815b、2815c、2815d,一直到2815n-1和2815n)。图形处理器2810可以经由单独的逻辑执行不同的着色器程序,使得顶点处理器2805被优化以执行顶点着色器程序的操作,而所述一个或多个片段处理器2815a至2815n执行片段(例如,像素)着色操作以用于片段或像素着色器程序。顶点处理器2805执行3d图形流水线的顶点处理阶段并生成图元和顶点数据。(多个)片段处理器2815a至2815n使用由顶点处理器2805生成的图元和顶点数据来产生显示在显示设备上的帧缓冲器。在一个实施例中,(多个)片段处理器2815a至2815n被优化以执行openglapi中提供的片段着色器程序,这些片段着色器程序可以用于执行与direct3dapi中提供的像素着色器程序相似的操作。另外,图形处理器2810还包括一个或多个存储器管理单元(mmu)2820a至2820b、一个或多个高速缓存2825a至2825b以及一个或多个电路互连2830a至2830b。所述一个或多个mmu2820a至2820b为图形处理器2810包括为顶点处理器2805和/或(多个)片段处理器2815a至2815n提供虚拟到物理地址映射,除了存储在所述一个或多个高速缓存2825a至2825b中的顶点或图像/纹理数据之外,所述虚拟到物理地址映射还可以引用存储在存储器中的顶点或图像/纹理数据。在一个实施例中,所述一个或多个mmu2820a至2820b可以与系统内的包括与图27的所述一个或多个应用处理器2705、图像处理器2715和/或视频处理器2720相关联的一个或多个mmu在内的其他mmu同步,使得每个处理器2705至2720可以参与共享或统一的虚拟存储器系统。根据实施例,所述一个或多个电路互连2830a至2830b使得图形处理器2810能够经由soc的内部总线或经由直接连接来与soc内的其他ip核交互。如图28b中所示,图形处理器2840包括图28a的图形处理器2810的所述一个或多个mmu2820a至2820b、高速缓存2825a至2825b、以及电路互连2830a至2830b。图形处理器2840包括一个或多个着色器核2855a至2855n(例如,1455a、2855b、2855c、2855d、2855e、2855f,一直到2855n-1和2855n),所述一个或多个着色器核提供统一的着色器核架构,在所述统一的着色器核架构中,单个核或类型或核可以执行所有类型的可编程着色器代码包括着色器程序代码以实施顶点着色器、片段着色器和/或计算着色器。存在的确切着色器核数量可以在实施例和实施方式中变化。另外,图形处理器2840包括核间任务管理器2845,所述核间任务管理器充当用于将执行线程分派给一个或多个着色器核2855a至2855n的线程分派器和用于加速分块操作以进行基于分块的渲染的分块单元2858,在所述基于分块的渲染中,针对某一场景的渲染操作在图像空间中被细分,例如以利用场景内的局部空间一致性或优化内部高速缓存的使用。图29a至图29b展示了根据本文所描述的实施例的附加示例性图形处理器逻辑。图29a展示了图形核2900,所述图形核可以包括在图27的图形处理器2710内并且可以是如图28b中的统一着色器核2855a至2855n。图29b展示了适合于部署在多芯片模块上的高度并行的通用图形处理单元2930。如图29a中所示,图形核2900包括对于图形核2900内的执行资源而言共同的共享指令高速缓存2902、纹理单元2918和高速缓存存储器/共享存储器2920。图形核2900可以包括多个切片2901a至2901n或针对每个核分区,并且图形处理器可以包括图形核2900的多个实例。切片2901a至2901n可以包括支持逻辑,所述支持逻辑包括本地指令高速缓存2904a至2904n、线程调度器2906a至2906n、线程分派器2908a至2908n、以及一组寄存器2910a。为了执行逻辑运算,切片2901a至2901n可以包括一组附加功能单元(afu2912a至2912n)、浮点单元(fpu2914a至2914n)、整数算术逻辑单元(alu2916至2916n)、寻址计算单元(acu2913a至2913n)、双精度浮点单元(dpfpu2915a至2915n)、以及矩阵处理单元(mpu2917a至2917n)。这些计算单元中的一些以特定精度进行操作。例如,fpu2914a至2914n可以执行单精度(32位)和半精度(16位)浮点运算,而dpfpu2915a至2915n执行双精度(64位)浮点运算。alu2916a至2916n可以以8位精度、16位精度和32位精度执行可变精度整数运算,并且可以被配置用于混合精度运算。mpu2917a至2917n还可以被配置用于混合精度矩阵运算,包括半精度浮点运算和8位整数运算。mpu2917至2917n可以执行各种各样的矩阵运算以便加速机器学习应用框架,包括使能支持加速的通用矩阵到矩阵乘法(gemm)。afu2912a至2912n可以执行不受浮点单元或整数单元支持的附加逻辑运算,包括三角函数运算(例如,正弦、余弦等)。如图29b中所示出的,通用处理单元(gpgpu)2930可以被配置成使得能够由图形处理单元阵列执行高度并行的计算操作。另外,gpgpu2930可以直接链接到gpgpu的其他实例以便创建多gpu集群,从而提高尤其是深度神经网络的训练速度。gpgpu2930包括用于实现与主机处理器的连接的主机接口2932。在一个实施例中,主机接口2932是pciexpress接口。然而,主机接口还可以是供应方特定的通信接口或通信结构。gpgpu2930从主机处理器接收命令并且使用全局调度器2934将与那些命令相关联的执行线程分发给一组计算集群2936a至2936h。计算集群2936a至2936h共享高速缓存存储器2938。高速缓存存储器2938可以充当计算集群2936a至2936h内的高速缓存存储器的更高级高速缓存。gpgpu2930包括经由一组存储器控制器2942a至2942b与计算集群2936a至2936h耦合的存储器2934a至2934b。在各个实施例中,存储器2934a至2934b可以包括各种类型的存储器设备,包括动态随机存取存储器(dram)或图形随机存取存储器,如同步图形随机存取存储器(sgram),包括图形双倍数据速率(gddr)存储器。在一个实施例中,计算集群2936a至2936h各自包括一组图形核,如图29a的图形核2900,所述图形核可以包括多种类型的整数逻辑单元和浮点逻辑单元,所述多种类型的整数逻辑单元和浮点逻辑单元可以在一定精度范围内执行包括适合于机器学习计算的计算操作。例如并且在一个实施例中,计算集群2936a至2936h中的每一个中的浮点单元中的至少一个子集可以被配置成执行16位或32位浮点运算,而浮点单元的不同子集可以被配置成执行64位浮点运算。gpgpu2930的多个实例可以被配置成作为计算集群进行操作。由计算集群用来进行同步和数据交换的计算机制跨实施例而变化。在一个实施例中,gpgpu2930的多个实例通过主机接口2932进行通信。在一个实施例中,gpgpu2930包括i/o中枢2939,所述i/o中枢将gpgpu2930与实现到gpgpu的其他实例的直接连接的gpu链路2940耦合。在一个实施例中,gpu链路2940耦合至实现gpgpu2930的多个实例之间的通信和同步的专用gpu到gpu桥接器。在一个实施例中,gpu链路2940与高速互连耦合以便向其他gpgpu或并行处理器发射和接收数据。在一个实施例中,gpgpu2930的多个实例位于单独的数据处理系统中并且经由可经由主机接口2932访问的网络设备进行通信。在一个实施例中,除了或作为到主机接口2932的替代方案,gpu链路2940可以被配置成实现到主机处理器的连接。尽管gpgpu2930的所展示配置可以被配置成训练神经网络,但是一个实施例提供了gpgpu2930的替代配置,所述替代配置可以被配置成部署在高性能或低功率推断平台内。在推断配置中,gpgpu2930包括计算集群2936a至2936h中与训练配置有关的更少计算集群。另外,与存储器2934a至2934b相关联的存储器技术可以在推断配置与训练配置之间不同,其中,更高带宽存储器技术专用于训练配置。在一个实施例中,gpgpu2930的推断配置可以支持推断特定指令。例如,推断配置可以提供对一个或多个8位整数点积指令的支持,所述指令通常在部署的神经网络的推断操作期间使用。头戴式显示系统概述图30示出了头戴式显示器(hmd)系统3000,所述hmd系统在用户体验沉浸式环境(如例如,虚拟现实(vr)环境、增强现实(ar)环境、多媒体三维(3d)游戏等)时被所述用户穿戴。在所展示的示例中,一个或多个条带3020保持hmd系统3000的框架3002位于用户眼睛的前面。因此,左眼显示器3004可以被定位成由用户的左眼观看并且右眼显示器3006可以被定位成由用户的右眼观看。在某些示例(如例如,被用户穿戴的智能电话)中,左眼显示器3004和右眼显示器3006可以替代性地集成到单个显示器中。在ar的情况下,显示器3004、3006可以是透视显示器(view-throughdisplays),在其他经渲染内容(例如,虚拟角色、信息注释、平视显示器/hud)被呈现在物理环境的实时馈送的顶部的情况下,所述透视显示器允许用户观看物理环境。在一个示例中,框架3002包括用于捕获来自通常位于用户前面以及左眼下方(例如,左手姿势)的区域的图像的左俯视相机3008。另外,右俯视相机3010可以捕获来自通常位于用户前面以及右眼下方(例如,右手姿势)的区域的图像。所展示的框架3002还包括用于捕获分别位于用户的左眼和右眼前面的图像的左前视相机3012和右前视相机3014。框架3002还可以包括用于捕获来自到用户左边的区域的图像的左侧视相机3016和捕获来自到用户右边的区域的图像的右侧视相机3018。由相机3008、3010、3012、3014、3016、3018捕获的可以具有重叠视场的图像可以用于检测用户做出的姿势以及用于分析外部环境和/或将所述外部环境重现到显示器3004、3006上。在一个示例中,检测到的姿势由图形处理架构(例如,内部和/或外部)用来渲染和/或控制用户在3d游戏中的虚拟表示。实际上,重叠视场可以实现捕获由其他个体(例如,在多人游戏中)做出的姿势,其中其他个体的姿势可以进一步用于渲染/控制沉浸式体验。重叠视场还可以使hmd系统3000能够自动检测用户附近的障碍物或其他危险。这种方式可能在先进驾驶辅助系统(adas)应用中特别有利。在一个示例中,向左俯视相机3008和右俯视相机3010提供重叠视场提供具有增加的分辨率的立体视图。增加的分辨率可以反过来使非常类似的用户移动彼此区分(例如,在亚毫米精度下)。结果可以是hmd系统3000关于可靠性的增强的性能。实际上,所展示的解决方案可以在各种应用中有用,如例如,ar设置中的着色信息,在多用户环境中的用户之间交换虚拟工具/设备,渲染虚拟物品(例如,武器、宝剑、手杖)等。其他对象、四肢和/或身体部位的姿势也可以被检测并用于渲染/控制虚拟环境。例如,脊髓造影信号、脑电图信号、眼睛跟踪、呼吸或膨胀、手部运动等可以被实时跟踪,无论来自穿戴者还是共享环境中的另一个个体。由相机3008、3010、3012、3014、3016、3018捕获的图像还可以充当上下文输入。例如,可以确定用户指示单词处理应用中将编辑的特定单词或将按压的键,游戏中将部署的特定武器或行进方向等。另外,由相机3008、3010、3012、3014、3016、3018捕获的图像可以用于进行设备操作、医疗训练和/或远程/遥控操作指导应用中的共享通信或联网交互。任务特定姿势库或神经网络机器学习可以实现工具识别和对任务的反馈。例如,可以启用转化为远程实时动作的虚拟工具。在又另一个示例中,hmd系统3000将虚拟场景内的虚拟电钻的操纵转化为被部署用于搜索倒塌的建筑物的机器人设备上的电钻的远程操作。此外,hmd系统3000在其包括例如使用户向与用户动作相关联的可识别姿势列表添加新姿势的协议方面可以是可编程的。另外,hmd3000中的各种相机可以是可配置的以检测除了光谱的可见波长之外的光谱频率。输入相机中的多光谱成像能力允许通过消除非本质图像特征(例如,背景噪声)进行的对用户和/或对象的位置跟踪。例如,如外科手术、仪器和设备等增强现实(ar)应用可以通过其红外反射性被跟踪,而不需要附加的跟踪帮助。此外,hmd3000可以用于低可见性的情形中,其中来自各种相机的“实时馈送”可以通过计算机分析被提高或增强并且显示给用户作为视觉或音频提示。hmd系统3000还可以放弃执行与远程计算系统的任何类型的数据通信或者需要电力电缆(例如,独立操作模式)。在这方面,hmd系统3000可以是具有电力单元的“无线”设备,所述电力单元使hmd系统3000独立地操作外部电力系统。因此,用户可以玩全功能游戏而不需要拴系到另一个设备(例如,游戏控制台)或电源。在单词处理示例中,hmd系统3000可以在显示器3004和3006上呈现虚拟键盘和/或虚拟鼠标以便提供虚拟台式机或单词处理场景。因此,由相机中的一个或多个捕获的姿势识别数据可以表示虚拟键盘上的用户键入活动或虚拟鼠标的移动。优点包括但不限于来自附近个体的虚拟台式机的易于携带和隐私性。下面的图形处理架构可以支持对视频和音频信号的压缩和/或解压缩。此外,向用户的左眼和右眼提供单独图像可以帮助渲染、产生和/或感知3d场景。左眼显示器3004和右眼显示器3006的相对位置也可以被调整成匹配不同用户之间的眼睛间隔的变化。图30中展示的相机数量仅用于帮助讨论。实际上,hmd系统3000可以包括少于六个或多个六个相机,视情况而定。显示器1120(图11)、显示组件1360(图13)和/或hmd系统3000可以包括光场显示。在一个示例中,3d图形应用2510(图25)执行方法626(图6e)的处理框628(图6e),并且用户模式图形驱动器2526(图25)执行方法626(图6e)的处理框1530,以便支持本文描述的增强的数据格式化技术。另外,图形处理流水线500(图5)可以被修改成支持本文描述的重投影、中央凹化、分层拣选和图像扭曲解决方案。此外,分块单元可以被修改成如本文描述的充填图块仓。附加的注释和示例示例1可以包括一种性能增强的图形装置,所述性能增强的图形装置包括一个或多个衬底以及耦合至所述一个或多个衬底的逻辑,其中,所述逻辑采用可配置逻辑或固定功能硬件逻辑中的一个或多个来实施,耦合至所述一个或多个衬底的所述逻辑用于:关于多个显示平面识别像素位置;将与所述像素位置和所述多个显示平面相关联的图像数据存储到相邻存储器位置;并且跨所述多个显示平面同时渲染来自所述相邻存储器位置的所述图像数据。示例2可以包括如示例1所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于将单指令多数据(simd)指令分派给多个图形执行单元以便同时渲染所述图像数据。示例3可以包括如示例1所述的装置,其中,所述图像数据将进一步与包含所述像素位置的像素子跨度相关联。示例4可以包括如示例1所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于将所述同时渲染的图像数据变换成与所述多个显示平面相关联的表面布局。示例5可以包括如示例1所述的装置,其中,所述相邻存储器位置将处于单个高速缓存行内。示例6可以包括如示例1所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:渲染与所述多个显示平面中的第一显示平面相关联的源视图;将经渲染源视图重投影到所述多个显示平面中的第二显示平面以便获得重投影视图;并且基于与所述源视图相对应的扩展视场数据、与所述源视图相对应的光栅化数据或与所述重投影视图相对应的光栅化数据中的一项或多项来填充所述重投影视图中的一个或多个孔。示例7可以包括如示例6所述的装置,其中,当基于所述扩展视场数据填充所述一个或多个孔时,所述重投影视图具有非扩展视场。示例8可以包括如示例7所述的装置,其中,当基于与所述源视图相对应的所述光栅化数据填充所述一个或多个孔时,耦合至所述一个或多个衬底的所述逻辑用于:在渲染所述源视图期间禁用深度测试;并且在填充所述重投影视图中的所述一个或多个孔期间进行所述深度测试。示例9可以包括如示例7所述的装置,其中,当基于与所述重投影视图相对应的所述光栅化数据填充所述一个或多个孔时,耦合至所述一个或多个衬底的所述逻辑用于:在对经渲染源视图进行重投影期间预先充填深度缓冲器;并且在填充所述一个或多个孔期间基于所述深度缓冲器中的数据进行深度测试。示例10可以包括如示例1所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:相对于所述多个显示平面确定焦点;并且基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的分辨率。示例11可以包括如示例10所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图密度。示例12可以包括如示例10所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图更新频率。示例13可以包括如示例10所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于将外围视图分入具有不同分辨率、不同视图密度或不同更新频率中的一者或多者的数个仓。示例14可以包括如示例1所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:确定与所述多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例15可以包括如示例14所述的装置,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例16可以包括如示例15所述的装置,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例17可以包括如示例16所述的装置,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例18可以包括如示例1所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例19可以包括如示例18所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例20可以包括一种装置,所述装置包括:一个或多个衬底;以及逻辑,耦合至所述一个或多个衬底,其中,所述逻辑采用可配置逻辑或固定功能硬件逻辑中的一个或多个来实施,耦合至所述一个或多个衬底的所述逻辑用于:渲染与多个显示平面中的第一显示平面相关联的源视图,将经渲染源视图重投影到所述多个显示平面中的第二显示平面以便获得重投影视图,并且基于与所述源视图相对应的扩展视场数据、与所述源视图相对应的光栅化数据或与所述重投影视图相对应的光栅化数据中的一项或多项来填充所述重投影视图中的一个或多个孔。示例21可以包括如示例20所述的装置,其中,当基于所述扩展视场数据填充所述一个或多个孔时,所述重投影视图具有非扩展视场。示例22可以包括如示例20所述的装置,其中,当基于与所述源视图相对应的所述光栅化数据填充所述一个或多个孔时,耦合至所述一个或多个衬底的所述逻辑用于:在渲染所述源视图期间禁用深度测试;并且在填充所述重投影视图中的所述一个或多个孔期间进行所述深度测试。示例23可以包括如示例20所述的装置,其中,当基于与所述重投影视图相对应的所述光栅化数据填充所述一个或多个孔时,耦合至所述一个或多个衬底的所述逻辑用于:在对经渲染源视图进行重投影期间预先充填深度缓冲器;并且在填充所述一个或多个孔期间基于所述深度缓冲器中的数据进行深度测试。示例24可以包括如示例20所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:相对于所述多个显示平面确定焦点;并且基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的分辨率。示例25可以包括如示例24所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图密度。示例26可以包括如示例24所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图更新频率。示例27可以包括如示例24所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于将外围视图分入具有不同分辨率、不同视图密度或不同更新频率中的一者或多者的数个仓。示例28可以包括如示例20所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:确定与所述多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例29可以包括如示例28所述的装置,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例30可以包括如示例29所述的装置,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例31可以包括如示例30所述的装置,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例32可以包括如示例20所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例33可以包括如示例32所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例34可以包括一种装置,所述装置包括:一个或多个衬底;以及逻辑,耦合至所述一个或多个衬底,其中,所述逻辑采用可配置逻辑或固定功能硬件逻辑中的一个或多个来实施,耦合至所述一个或多个衬底的所述逻辑用于:相对于多个显示平面确定焦点,并且基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的分辨率。示例35可以包括如示例34所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图密度。示例36可以包括如示例34所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图更新频率。示例37可以包括如示例34所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于将外围视图分入具有不同分辨率、不同视图密度或不同更新频率中的一者或多者的仓。示例38可以包括如示例34所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:确定与所述多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例39可以包括如示例38所述的装置,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例40可以包括如示例39所述的装置,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例41可以包括如示例40所述的装置,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例42可以包括如示例34所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例43可以包括如示例42所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例44可以包括一种装置,所述装置包括:一个或多个衬底;以及逻辑,耦合至所述一个或多个衬底,其中,所述逻辑采用可配置逻辑或固定功能硬件逻辑中的一个或多个来实施,耦合至所述一个或多个衬底的所述逻辑用于:确定与多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例45可以包括如示例44所述的装置,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例46可以包括如示例45所述的装置,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝位于最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例47可以包括如示例46所述的装置,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例48可以包括如示例44所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例49可以包括如示例48所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例50可以包括一种装置,所述装置包括:一个或多个衬底;以及逻辑,耦合至所述一个或多个衬底,其中,所述逻辑采用可配置逻辑或固定功能硬件逻辑中的一个或多个来实施,耦合至所述一个或多个衬底的所述逻辑用于:识别与多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据,识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化,并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例51可以包括如示例50所述的装置,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例52可以包括一种操作性能增强的图形装置的方法,所述方法包括:关于多个显示平面识别像素位置;将与所述像素位置和所述多个显示平面相关联的图像数据存储到相邻存储器位置;并且跨所述多个显示平面同时渲染来自所述相邻存储器位置的所述图像数据。示例53可以包括如示例52所述的方法,所述方法进一步包括将单指令多数据(simd)指令分派给多个图形执行单元以便同时渲染所述图像数据。示例54可以包括如示例52所述的方法,其中,所述图像数据进一步与包含所述像素位置的像素子跨度相关联。示例55可以包括如示例52所述的方法,所述方法进一步包括将所述同时渲染的图像数据变换成与所述多个显示平面相关联的表面布局。示例56可以包括如示例52所述的方法,其中,所述相邻存储器位置处于单个高速缓存行内。示例57可以包括如示例52所述的方法,所述方法进一步包括:渲染与所述多个显示平面中的第一显示平面相关联的源视图;将经渲染源视图重投影到所述多个显示平面中的第二显示平面以便获得重投影视图;并且基于与所述源视图相对应的扩展视场数据、与所述源视图相对应的光栅化数据或与所述重投影视图相对应的光栅化数据中的一项或多项来填充所述重投影视图中的一个或多个孔。示例58可以包括如示例57所述的方法,其中,当基于所述扩展视场数据填充所述一个或多个孔时,所述重投影视图具有非扩展视场。示例59可以包括如示例58所述的方法,其中,当基于与所述源视图相对应的所述光栅化数据填充所述一个或多个孔时,所述方法进一步包括:在渲染所述源视图期间禁用深度测试;并且在填充所述重投影视图中的所述一个或多个孔期间进行所述深度测试。示例60可以包括如示例58所述的方法,其中,当基于与所述重投影视图相对应的所述光栅化数据填充所述一个或多个孔时,所述方法进一步包括:在对经渲染源视图进行重投影期间预先充填深度缓冲器;并且在填充所述一个或多个孔期间基于所述深度缓冲器中的数据进行深度测试。示例61可以包括如示例52所述的方法,所述方法进一步包括:相对于所述多个显示平面确定焦点;并且基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的分辨率。示例62可以包括如示例61所述的方法,其中,所述方法进一步包括基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图密度。示例63可以包括如示例61所述的方法,其中,所述方法进一步包括基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图更新频率。示例64可以包括如示例61所述的方法,其中,所述方法进一步包括将外围视图分入具有不同分辨率、不同视图密度或不同更新频率中的一者或多者的数个仓。示例65可以包括如示例52所述的方法,所述方法进一步包括:确定与所述多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例66可以包括如示例65所述的方法,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例67可以包括如示例66所述的方法,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝位于最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例68可以包括如示例67所述的方法,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例69可以包括如示例52所述的方法,所述方法进一步包括:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例70可以包括如示例69所述的方法,所述方法进一步包括:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例71可以包括一种操作性能增强的装置的方法,所述方法包括:渲染与所述多个显示平面中的第一显示平面相关联的源视图;将经渲染源视图重投影到多个显示平面中的第二显示平面以便获得重投影视图;并且基于与所述源视图相对应的扩展视场数据、与所述源视图相对应的光栅化数据或与所述重投影视图相对应的光栅化数据中的一项或多项来填充所述重投影视图中的一个或多个孔。示例72可以包括如示例71所述的方法,其中,当基于所述扩展视场数据填充所述一个或多个孔时,所述重投影视图具有非扩展视场。示例73可以包括如示例71所述的方法,其中,当基于与所述源视图相对应的所述光栅化数据填充所述一个或多个孔时,所述方法进一步包括:在渲染所述源视图期间禁用深度测试;并且在填充所述重投影视图中的所述一个或多个孔期间进行所述深度测试。示例74可以包括如示例71所述的方法,其中,当基于与所述重投影视图相对应的所述光栅化数据填充所述一个或多个孔时,所述方法进一步包括:在对经渲染源视图进行重投影期间预先充填深度缓冲器;并且在填充所述一个或多个孔期间基于所述深度缓冲器中的数据进行深度测试。示例75可以包括如示例71所述的方法,所述方法进一步包括:相对于所述多个显示平面确定焦点;并且基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的分辨率。示例76可以包括如示例75所述的方法,其中,所述方法进一步包括基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图密度。示例77可以包括如示例75所述的方法,其中,所述方法进一步包括基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图更新频率。示例78可以包括如示例75所述的方法,其中,所述方法进一步包括将外围视图分入具有不同分辨率、不同视图密度或不同更新频率中的一者或多者的数个仓。示例79可以包括如示例71所述的方法,所述方法进一步包括:确定与所述多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例80可以包括如示例79所述的方法,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例81可以包括如示例80所述的方法,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝位于最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例82可以包括如示例81所述的方法,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例83可以包括如示例71所述的方法,所述方法进一步包括:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例84可以包括如示例83所述的方法,所述方法进一步包括:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例85可以包括一种操作性能增强的装置的方法,所述方法包括:相对于多个显示平面确定焦点;并且基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的场景内容的分辨率。示例86可以包括如示例85所述的方法,其中,所述方法进一步包括基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图密度。示例87可以包括如示例85所述的方法,其中,所述方法进一步包括基于所述焦点逐显示平面地改变呈现在所述多个显示平面上的所述场景内容的视图更新频率。示例88可以包括如示例85所述的方法,其中,所述方法进一步包括将外围视图分入具有不同分辨率、不同视图密度或不同更新频率中的一者或多者的数个仓。示例89可以包括如示例85所述的方法,所述方法进一步包括:确定与所述多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例90可以包括如示例89所述的方法,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例91可以包括如示例90所述的方法,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝位于最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例92可以包括如示例91所述的方法,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例93可以包括如示例85所述的方法,所述方法进一步包括:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例94可以包括如示例93所述的方法,所述方法进一步包括:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例95可以包括一种操作性能增强的装置的方法,所述方法包括:确定与多个显示平面相关联的一组图元,并且对所述一组图元进行分层拣选操作序列。示例96可以包括如示例95所述的方法,其中,所述分层拣选操作序列包括近平面-远平面拣选操作,所述近平面-远平面拣选操作拒绝位于所述多个显示平面中的最远显示平面后面的图元并且拒绝位于所述多个显示平面中的最近显示平面前面的图元。示例97可以包括如示例96所述的方法,其中,所述分层拣选操作序列包括逐眼睛地并且在所述近平面-远平面拣选操作之后进行的粗糙视锥体拣选操作,并且其中,所述粗糙视锥体拣选操作用于拒绝位于最顶部视口的顶部视锥体平面、最底部视口的底部视锥体平面、最左边视口的左视锥体平面以及最右边视口的右视锥体平面之外的图元。示例98可以包括如示例97所述的方法,其中,所述分层拣选操作序列包括在所述粗糙视锥体拣选操作之后进行的精细视锥体拣选操作,并且其中,耦合至所述一个或多个衬底的所述逻辑用于用通过所述精细视锥体拣选操作的图元来充填一个或多个图块仓。示例99可以包括如示例95所述的方法,其中,耦合至所述一个或多个衬底的所述逻辑用于:识别与所述多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例100可以包括如示例98所述的方法,所述方法进一步包括:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例101可以包括一种操作性能增强的装置的方法,所述方法包括:识别与多个显示平面中的第一显示平面上的场景内容相关联的第一图像数据;识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第二显示平面上的所述场景内容之间的第一位置变化;并且基于所述第一图像数据和所述第一位置变化来近似估计与所述第二显示平面上的所述场景内容相关联的第二图像数据。示例102可以包括如示例101所述的方法,所述方法进一步包括:识别所述多个显示平面中的所述第一显示平面上的所述场景内容与第三显示平面上的所述场景内容之间的第二位置变化;并且基于所述第一图像数据和所述第二位置变化来近似估计与所述第三显示平面上的所述场景内容相关联的第三图像数据。示例103可以包括一种性能增强的图形设备,所述性能增强的图形设备包括用于执行如示例52至示例102所述的方法中的任一个的装置。示例104可以包括至少一种计算机可读介质,所述至少一种计算机可读介质包括指令集,所述指令集当由计算系统执行时使所述计算系统执行如示例52至示例102中任一项所述的方法。实施例适用于所有类型的半导体集成电路(“ic”)芯片。这些ic芯片的示例包括但不限于:处理器、控制器、芯片组部件、可编程逻辑阵列(pla)、存储器芯片、网络芯片、片上系统(soc)、ssd/nand控制器asic等。另外,在一些附图中,利用线条表示信号导体线。一些线条可以是不同的以指示更多组成的信号路径,具有数字标记以指示组成的信号路径的编号和/或在一端或多端具有箭头以指示主要信息流方向。然而,这不应当以限制的方式进行解释。相反,可结合一个或多个示例性实施例来使用这种附加细节,以便于更容易理解电路。不管是否具有附加的信息,任何所表示的信号线都可实际包括可在多个方向上行进的一个或多个信号,并且可用任何合适类型的信号方案来实施,例如用差分对实施的数字或模拟线、光纤线和/或单端线。此处使用的术语“耦合”是指讨论部件之间的任何类型的关系,直接的或间接的,并且可以应用于电的、机械的、流体的、光学的、电磁的、电动机械的或其他连接。此外,此处使用的术语“第一”,“第二”等只促进讨论,除非另外指明,其不带有特殊的时间或级别意义。此外,将理解的是,不定冠词“一个(a)”或“一种(an)”承载“一个或多个”或“至少一个”的意义。如在本申请和权利要求书中所使用的,由术语“中的一项或多项”联接的一系列项目可意指所列术语的任何组合。例如,短语“a、b或c中的一项或多项”可意指a、b、c;a和b;a和c;b和c;或a、b和c。以上参照具体实施例已经描述了各实施例。然而,本领域技术人员将理解,在不偏离所附权利要求中阐述的实施例的更广精神和范围的情况下可对这些实施例进行各种修改和改变。因此,上述描述和附图要以说明性而非限制性的含义来看待。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1