用于在虚拟执行环境中进行高效的图形处理的装置和方法_6

文档序号:9756863阅读:来源:国知局
将S0作为渲染目标绑定至环境时,EGAT 1620接着绑 定TS0'而不是S0'。当客户应用程序创建纹理T0 2202时,EGAT创建纹理T0' 2205。最 终,在2203处,当客户应用程序交换S0的图形缓冲器以进行显示时,EGAT 1620使用纹理 TS0'作为输入并对仿真器的表面进行渲染,其然后在2206处被交换至主机系统并经由表 面组合器在仿真器的应用程序窗口中显示。
[0175] 客户应用程序也可以使用纹理作为其渲染目标。在起初将表面绑定至其渲染目标 并执行画之后,客户应用程序可以接着将纹理绑定至渲染目标并画另一图像。客户应用程 序可以进一步解绑纹理,将纹理作为输入,并将其画至原始表面。利用该技术,图形应用程 序可以对多个纹理进行渲染,并将它们绑定以创建更有效的3D效果。
[0176] 通过监测客户的纹理渲染的使用并动态调整渲染目标,EGAT 1620的一个实施例 优雅地支持客户应用程序也可以使用对纹理特征进行的渲染的使用模型。当客户应用程序 显示表面时,本发明的一个实施例直接将纹理传递至表面组合器,跳过将像素缓冲器(纹 理)提取出离线表面的耗时的步骤。
[0177] 图23示出了根据本发明的一个实施例的由客户应用程序1105(在主机OS 1102 上执行)和EGAT 1620执行的操作的额外细节。在一个实施例中,当客户应用程序1105创 建表面S0时,EGAT 1620创建表面S0'和对应的纹理TS0'。表面S0'保留最小资源并在一 个实施例中用于辅助仿真。在2301处,当客户应用程序将S0绑定至环境作为渲染目标时, 在2311处,EGAT1620将TS0'代替S0'绑定至渲染目标。因此,在2302处,当客户应用程 序渲染/画至表面S0时,在2312处,EGAT 1620画至纹理TS0'。
[0178] 在一个实施例中,当客户应用程序1105创建纹理T0时,EGAT 1620创建纹理T0'。 在2303处,当客户应用程序绑定纹理TO至渲染目标时,在2313处,EGAT解绑纹理TS0'并 绑定纹理T0'至渲染目标。在2304处,当客户应用程序画至纹理T0时,在2314处,EGAT画 至纹理T0'。
[0179] 随后,当客户应用程序1105解绑TO至渲染目标时,EGAT 1620解绑纹理TO'并绑 定纹理TS0'至渲染目标。然后,在2306处,当客户应用程序画至S0时,在2316处,EGAT 1620画至TS0'。最终,在2307处,当客户应用程序1105交换SO的图形缓冲器以进行显示 时,EGAT 1620将TS0'传递至表面组合器以进行渲染和显示。在一个实施例中,EGAT 1620 使用纹理TS0'作为输入以渲染仿真器的表面,接着将仿真器的表面交换至主机系统并且在 仿真器的应用程序窗口中显示。
[0180] 上文所描述的本发明的实施例提供对先前的系统的许多改进。对表面进行仿真是 具有挑战性的并且是资源密集的。客户可以具有同时运行的多个应用程序,因此可以有多 个同时的表面。由于多种原因,将客户应用程序的表面映射至主机表面是非常昂贵的。首 先,表面要求大量执行资源,这是因为表面与多个图形缓冲器关联(要求和主机窗口系统 交换)。此外,在主机侧的一个仿真器应用程序中创建多个表面会消耗大量GPU内存。相 反,如本文中所描述的渲染至纹理比渲染至表面消耗显著更少的GPU资源并且更加快速。 最终,在多个应用程序表面需要在显示之前被组合的客户0S中,需要额外的步骤以从表面 拷贝像素缓冲器以进行组合,这是一个消耗时间的过程。
[0181] 在本发明的一个实施例中,执行下面的伪代码操作以渲染至纹理而不是表面(尽 管应该注意的是,本发明的基本原理不限于该特定的实施):初始化当前的渲染目标RT,其 绑定为 Bind (RT) = NULL;
[0182]
[0183]
[0184] 如图24中所示,上文中所描述的用于改进效率的所有技术(利用这些技术在虚拟 执行环境中处理图形指令)可以被结合在单个系统中以极大地改善图形处理的效率。特 别地,如上文所述,图24中示出的组合的实施例包括用于编译API调用1210-1212的分组 的推测分组发现(SGD)模块1205,以及用于执行API调用的分组并缓存结果的推测分组执 行(SGE)模块1215。此外,该实施例还通过区分普通的图形应用程序和系统服务应用程序 (例如,上文所述的"表面组合器")的转换,改进仿真的图形应用程序的图形性能。特别地, EGAT 1620的第一转换器1611可以转换源自应用程序1105-1106的图形API调用,而第二 转换器1612可以转换源自系统组件(例如,表面组合器1115)的图形API调用。此外,该 实施例包括分别被转换器1611和1612所利用的纹理渲染逻辑2401和2402,以将客户表面 转换成主机纹理。如上文所讨论的,在本申请中所描述的转换至纹理,比将客户的表面转换 至主机表面(如在现有的图形转换系统中完成的一样)更快且具有更小的资源密集性。如 图24所示的那样将所有这些实施例组合成一个单独的实施例极大地改善了在虚拟执行环 境中图形处理的效率。
[0185] 本发明的实施例可以包括多个步骤,其在上文中已经进行了描述。所述步骤可以 实施在可以用于使通用或专用处理器执行所述步骤的机器可执行指令中。或者,这些步骤 可以由包含用于执行这些步骤的硬接线逻辑的专用硬件组件执行,或由编程的计算机组件 和定制硬件组件的任意组合执行。
[0186] 如本文所描述的,指令可以涉及硬件的特定配置,例如被配置为执行特定操作的 专用集成电路(ASIC),或具有存储在存储器中的、在非瞬时计算机可读介质中实施的预先 确定的功能或软件指令。因此,在图中示出的技术可以使用在一个或多个电子设备(例如, 终端站、网络元件等)上存储并执行的代码和数据来实现。这些电子设备使用计算机机器 可读介质(例如,非瞬时计算机机器可读存储介质(例如,磁盘、光盘、随机存取存储器、只 读存储器、闪速存储器、相变存储器)和瞬时性计算机可读通信介质(例如,电气、光学、声 学或其他形式的传播信号-例如载波、红外信号、数字信号等))来存储并传送(内部地和/ 或利用其它电子设备通过网络)代码和数据。此外,这些电子设备通常包括一组耦合至一 个或多个其他组件的一个或多个处理器,其中其他组件例如一个或多个存储设备(非瞬时 计算机可读存储介质)、用户输入/输出设备(例如,键盘、触摸屏、和/或显示器)、以及网 络连接。处理器组合和其他组件的组的耦合通常通过一个或多个总线和桥(也被称为总线 控制器)。携带网络业务的存储设备和信号分别表示一个或多个机器可读存储介质和机器 可读通信介质。因此,给定的电子设备的存储设备通常存储代码和/或数据以用于在那个 电子设备的一个或多个处理器的组上执行。当然,本发明的实施例的一个或多个部分可以 使用软件、固件和/或硬件的不同的组合来实施。出于解释的目的,为了提供本发明的透彻 的理解,该【具体实施方式】全文阐述了许多具体细节。然而,对本领域的技术人员显而易见的 是,可以在没有这些具体细节中的一些的情况下实践本发明。在某些实例中,为了避免模糊 本发明的主题,没有对公知的结构和功能进行细节描述。相应地,本发明的范围和精神应该 根据下文的权利要求书来进行判断。
【主权项】
1. 一种系统,包括: 分类模块,其用于检测客户执行环境中的图形应用编程接口(API)调用,并响应性地 将所述图形API调用分类为源自应用程序或源自系统组件; 所述分类模块用于将信息与所述图形API调用中的每一个相关联,以指示所述图形 API调用中的每一个是源自所述应用程序还是源自所述系统组件;以及 增强的图形API转换器(EGAT),其用于将所述图形API调用转换成能够在主机执行环 境中执行的格式,所述EGAT用于使用通过所述分类模块而与所述图形API调用相关联的所 述信息,将所述API调用中的每一个标识为源自所述应用程序或源自所述系统组件,其中 所述EGAT包括: 第一转换序列,其用于如果所述图形API调用源自所述应用程序,则将所述图形API调 用转换成第一组转换的图形API调用;以及 第二转换序列,其用于如果所述图形API调用源自所述系统组件,则将所述图形API调 用转换成第二组转换的图形API调用,其中所述第一组转换的图形API调用和所述第二组 转换的图形API调用是不同的。2. 根据权利要求1所述的系统,其中所述第一组转换的图形API调用和所述第二组转 换的图形API调用包括能够在所述主机执行环境中直接执行的本机图形API调用。3. 根据权利要求1所述的系统,还包括: 命令缓冲器,其用于在通过所述第一转换序列或所述第二转换序列的转换之前而存储 所述图形API调用,其中,所述分类模块用于将指示所述API调用是源自所述应用程序还是 源自所述系统组件的所述信息附加至所述命令缓冲器中的所述图形API调用。4. 根据权利要求1所述的系统,其中所述分类模块用于分析包括调用栈或过程名称的 调用环境,以确定所述图形API调用是源自所述应用程序还是源自所述系统组件。5. 根据权利要求1所述的系统,其中所述系统组件包括系统服务,所述系统服务组合 来自多个应用程序的表面并且使用来自所述多个应用程序的组合的表面来渲染最终组合 的表面。6. 根据权利要求5所述的系统,其中所述系统组件包括表面组合器。7. 根据权利要求1所述的系统,其中所述客户执行环境包括客户操作系统,而所述主 机执行环境包括主机操作系统,所述主机操作系统显示应用编程接口(API)以支持所述客 户操作系统的执行。8. 根据权利要求1所述的系统,其中,所述EGAT还包括: 纹理渲染模块,其能够由所述第一转换序列和所述第二转换序列使用,以将在所述图 形API调用中实施的客户表面转换成在所述第一组转换的图形API调用和所述第二组转换 的图形API调用中实施的主机纹理。9. 一种系统,包括: 推测分组发现(SGD)模块,其用于确定能够被一起推测地执行的第一分组图形应用编 程接口(API)调用; 推测分组执行器(SGE)模块,其用于响应于检测到所述第一分组中的所述图形API调 用中的第一图形API调用被调用,响应性地执行所述第一分组中的所述图形API调用中的 全部以生成第一分组结果,所述SGE模块用于在存储器中高速缓存所述第一分组结果; 所述SGE模块,其用于响应于所述第一分组中的所述图形API调用中的第二图形API 调用被调用,从高速缓存的分组结果中提供结果;以及 增强的图形API转换器(EGAT),其用于确定所述图形API调用是源自应用程序还是源 自系统组件,所述EGAT包括: 第一转换序列,其用于如果所述图形API调用源自所述应用程序,则将所述图形API调 用转换成第一组转换的图形API调用;以及 第二转换序列,其用于如果所述图形API调用源自所述系统组件,则将所述图形API调 用转换成第二组转换的图形API调用,其中所述第一组转换的图形API调用和所述第二组 转换的图形API调用是不同的。10. 根据权利要求9所述的系统,还包括: 命令缓冲器,其用于在通过所述第一转换序列或所述第二转换序列的转换之前,存储 所述图形API调用。11. 根据权利要求10所述的系统,还包括: 分类模块,其用于将指示所述图形API调用源自所述应用程序或所述系统组件的信息 附加至所述图形API调用,所述分类模块用于将所述图形API调用以及附加的信息存储在 所述命令缓冲器中。12. 根据权利要求9所述的系统,其中所述SGD模块和所述SGE模块要在客户执行环境 内被实现,并且其中所述EGAT要在主机执行环境内被实现。13. 根据权利要求12所述的系统,其中所述主机执行环境用于显示要在其上执行所述 客户执行环境的虚拟机。14. 根据权利要求13所述的系统,其中所述虚拟机包括由所述主机执行环境显示的应 用编程接口(API)。15. 根据权利要求12所述的系统,还包括: 纹理渲染模块,其能够由所述第一转换序列和所述第二转换序列使用,以将在所述图 形API调用中实施的客户表面转换成在所述第一组转换的图形API调用和所述第二组转换 的图形API调用中实施的主机纹理。16. 根据权利要求9所述的系统,其中所述第一转换序列用于使用第一组转换技术来 转换所述图形API调用,而所述第二转换序列用于使用与所述第一组转换技术不同的第二 组转换技术来转换所述图形API调用。17. -种系统,包括: 推测分组发现(SGD)模块,其用于确定可以被一起推测地执行的第一分组图形应用编 程接口(API)调用; 推测分组执行器(SGE)模块,其用于响应于检测到所述第一分组中的所述图形API调 用中的第一图形API调用被调用,响应性地执行所述第一分组中的所述图形API调用中的 全部以生成第一分组结果,所述SGE模块用于在存储器中高速缓存所述第一分组结果; 所述SGE模块,其用于响应于在所述第一分组中的所述图形API调用中的第二图形API 调用被调用,从高速缓存的分组结果中提供结果;以及 增强的图形API转换器(EGAT),其用于将所述图形API调用转换成一组转换的图形 API调用,其中所述图形API调用中的至少一些用于建立3维(3D)模型并对表面进行渲染: 以及 纹理渲染模块,其能够由所述EGAT使用以将由所述图形API调用渲染的表面转换成在 转换的图形API调用中实施的第一纹理。18.根据权利要求17所述的系统,其中当所述图形API调用被指向在显示器上渲染所 述表面时,所述纹理渲染模块用于使用所述纹理来向所述显示器进行渲染。
【专利摘要】描述了一种用于改善虚拟执行环境中的图形操作的效率的装置和方法。例如,系统的一个实施例包括:用于检测客户执行环境中的图形应用编程接口(API)调用,并响应地将图形API调用分类为源自应用程序或源自系统组件的分类模块;所述分类模块用于将信息和图形API调用中的每个关联,以指出图形API调用中的每一个是源自应用程序的还是源自系统组件的;以及用于将图形API调用转换成在主机执行环境中可执行的格式的增强的图形API转换器(EGAT),所述EGAT用于利用被分类模块将其与图形API调用关联的信息而将API调用的每一个识别为源自应用程序的或是源自系统组件的,其中所述EGAT包括:第一转换序列,其用于如果图形API调用是源自应用程序的,则将图形API调用转换成第一组转换的图形API调用;以及第二转换序列,其用于如果图形API调用是源自系统组件的,则将图形API调用转换成第二组转换的图形API调用,其中第一组转换的图形API调用和第二组转换的图形API调用不同。
【IPC分类】G06F9/46
【公开号】CN105518623
【申请号】CN201480026015
【发明人】L·尹, J·李
【申请人】英特尔公司
【公开日】2016年4月20日
【申请日】2014年11月21日
【公告号】WO2016078069A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1