当前位置: 首页 > 专利查询>微软公司专利>正文

图形流水线状态的快速重新配置制造技术

技术编号:8453443 阅读:156 留言:0更新日期:2013-03-21 18:53
本发明专利技术涉及图形流水线状态的快速重新配置。提供了用于将资源绑定到与图形流水线中的着色器相关联的特定槽的技术和方法。可确定由每一着色器利用的资源之间的资源依赖性,并且基于这些资源依赖性,可计算公共资源/槽关联。每一公共资源/槽关联标识了要与特定的一个槽相关联的特定的一个资源。

【技术实现步骤摘要】

本专利技术涉及优化图形流水线。
技术介绍
在屏幕上渲染并显示三维(3-D)图形通常涉及许多运算和计算。在简单的图形系统中,这一计算根据中央处理单元(CPU)和图形处理单元(GPU)的某一等级的协作或共享处理来发生。在一个示例性场景中,在处理了指令并且在CPU中发生了某些初始计算之后, 将定义要渲染的对象的一组坐标点或顶点存储在视频存储器中以供图形流水线中的GPU 进一步处理。当图形程序员经由一组可用的图形API来开发图形应用程序时,该程序员一般指示要由一组算法元素来处理的一组顶点。该数据被发送到图形流水线,且每一顶点通过图形流水线中一组固定的GPU子单元来流传送。称为镶嵌器(tesselator)的这些子单元之一根据被设计成有效地覆盖所表示的对象的表面的预定算法将图形数据分成简单的多边形。之后,有时称为着色器或“着色器程序”的一个或多个可编程着色器单元可以处理该数据并对图形数据执行专门的操作。着色器可包括例如,顶点着色器、几何着色器和像素着色器。单个着色器可以接收着色器常量的不同组合,并且取决于所提供的特定着色器常量的组合,由着色器生成的输出将变化。这些着色器常量可以指定,例如如何组合像素、如何读入和读出数据、以及在纹理的情况下如何从该纹理中提取值。着色的过程是计算密集型的,并且是复杂的过程。当这些特定着色器在图形流水线中操作时,由于发生在每一阶段的操作,存在有规律的瓶颈。“状态”指的是由着色器程序解释的资源。在任何给定实例下,图形流水线包含大量的动态状态(渲染状态、着色器、着色器常量变量、资源/存储器绑定等)。状态的不同组合允许各种模拟材料和视觉效果。该状态的一个分量是在执行着色器程序之前需要被绑定到GPU的一组着色器常量。由于用于实现图形流水线的硬件在任何给定实例下可以仅处于一种配置,因此期望的是减少设置状态(例如,着色器常量)和向GPU发出命令所花费的时间。某些着色器利用了保存着色器常量的组或聚集的常量缓冲区(而非常量寄存器)。 常量缓冲区可以允许更迅速地将着色器常量设置到GPU,因为着色器常量的聚集被分组在一起。尽管有这些进步,但是仍期望高效地管理状态以避免冗余的求值和设备状态修改。例如,期望提供用于高效地安排在不同着色器处使用的常量缓冲区(或其它资源)以便更高效地将状态设置到GPU的技术。
技术实现思路
提供了用于重新配置包括多个资源的依赖性树的技术。该依赖性树跟踪不同着色器资源之间的关系或依赖性。每一特定资源被绑定到该依赖性树中的父对象的槽。根据这些技术,扫描该依赖性树中的每一依赖性,并且计算与该依赖性树的每一不同重新配置(着色器的重新映射或重新构建)相关联的成本。依赖性树的每一重新配置改变特定资源(CB) 所绑定到的具体槽。然后可以选择减少或最小化用于在更高级状态之间转换的设备重新配置的数量的该依赖性树的特定重新配置。换言之,可以选择最小化需要重新绑定以在当前加载的着色器之间转换/切换的槽的数量的依赖性树的特定重新配置。在一个实现中,这些技术可以对于离线内容生成和存储来执行(例如,如果着色器设置是事先已知的,则分析着色器,重新映射依赖性,然后将着色器保存回盘)。在一个替换实现中,在应用程序运行时 /加载时动态地执行该方法(例如,如果着色器设置事先未知)。提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。 本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。附图说明用于优化图形流水线的性能的系统和方法参考附图来进一步描述,附图中图I是表示具有其中可实现本专利技术的各种计算设备的示例性网络环境的框图2是表示其中可实现本专利技术的示例性非限制计算环境的框图3示出了包括图形子单元的示例性图形系统,该图形子单元包括图形处理单元 (GPU)和用于相关联的图形流水线的示例性硬件配置。图4是表示公共着色器核的硬件和软件组件的示例性、非限制性实施例的框图5A示出了依赖性树的示例性、非限制性框图5B是示出一个示例性、非限制性图形流水线中多个常量缓冲区对多个不同着色器程序的分配的示例性、非限制性框图6示出了图形流水线中用于最优地将资源绑定到与着色器相关联的特定槽的示例性、非限制性流程图7示出了用于计算公共资源/槽关联的示例性、非限制性流程图8示出了用于确定资源/槽绑定的示例性、非限制性流程图;以及图9示出了用于计算关于将每一资源绑定到第一个槽的成本的示例性、非限制性流程图。具体实施方式以下详细描述本质上仅是示例性的,而非旨在限制本专利技术或本申请以及本专利技术的用途。在此使用的词语“示例性”意味着“用作示例、实例或说明”。在此被描述为“示例性” 的任何实现并不一定要被解释为相比其它实现更优选或有利。以下所描述的所有实现都是被提供来使本领域的技术人员能够做出或使用本专利技术的示例性实现,而非旨在限制由所附权利要求书所定义的本专利技术的范围。此外,没有任何意图受到以上背景、简要概述或以下详细描述中所提出的任何所表达的或蕴含的理论的绑定。术语如此处所使用的,术语“着色器”可用于一般指GPU中执行着色的硬件子单元,或指被下载到GPU的、随后被加载到例如寄存器存储等存储器的、由着色器(硬件)用来执行着色的指令或令牌集。术语“着色器”也可以指一起工作的两者。在结合术语“着色器”还使用了术语“子单元”的情况下,术语“着色器”应被解释为指的是GPU中执行与着色相关联的处理的子单元。术语“着色器程序”一般可以指驻留并运行在图形流水线中、可用于在3D 屏幕上环境中帮助确定/定义图像或对象的最终的屏幕上表面特性的计算机程序或进程。 “着色器”可以每秒执行十亿次计算,以执行其特定任务。如此处所使用的,术语“资源”可以指着色器程序使用的输入,并且可包括例如纹理、采样器、常量缓冲区、或着色器程序所使用的任何其它资源。如此处所使用的,术语“着色器常量”可以指被馈送到着色器程序的不同参数或变量,其允许着色器程序基于所使用的特定着色器常量来产生不同结果。着色器程序可以接收关于每一着色器常量的一定范围的不同值。着色器常量变量在该着色器的调用期间不改变值。概览提供了用于跟踪着色器常量的运行时使用模式,然后生成关于着色器常量的使用模式的使用模式数据的技术。该使用模式数据然后可以被馈送到优化算法以有效地布置数据以获得给定特定试探下的最大性能。所考虑的因素包括,例如值的客户机更新的频率、特定着色器的使用、以及所得缓冲区的大小和数量。示例性联网和分布式环境本领域的普通技术人员可以理解,本专利技术可以结合任何计算机或可作为计算机网络的一部分来部署的其它客户机或服务器设备来实现,或可在分布式计算环境中实现。在这一点上,本专利技术涉及任何计算机系统或环境,其具有任意数目的存储器或存储单元,以及发生在任意数目的存储单元或卷上的任意数目的应用程序和进程,它们可结合根据本专利技术的用于图形流水线的非限制性实现的过程来使用。本专利技术可应用于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。本专利技术也可应用于具有编程语言功能、用于生成、接收和发送关于远程或本地服务的信息的解释和执行能力的独立计算设备。在游戏环境中,图形流水线尤其与在网络或分布式计算环境中操作的那些计算设备相关,且因此根据本专利技术的图本文档来自技高网
...

【技术保护点】
一种重新配置包括多个资源的依赖性树的方法,其中每一特定资源被绑定到所述依赖性树中的父对象的槽,所述方法包括:扫描所述依赖性树中的资源依赖性的每一个;计算与所述依赖性树的多个不同资源配置的每一个相关联的成本;以及选择所述依赖性树的特定资源重新配置,所述依赖性树的特定资源重新配置最小化当在不同着色器之间切换时的设备重新配置的量。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:R·斯里尼瓦桑R·马尔科维奇S·格拉森伯格
申请(专利权)人:微软公司
类型:发明
国别省市:

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

1