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

封装图形库和硬件的图形引擎和环境制造技术

技术编号:17415914 阅读:28 留言:0更新日期:2018-03-07 11:03
本公开涉及图形系统的操作以及用于设计和/或操作图形系统的多种架构,所述架构从输出应用程序跨越并延伸到以像素形式或其他形式展示视觉内容。一般来讲,本发明专利技术的许多实施方案设想了根据关于如何最好地使用特定的可用硬件和软件所作出的即时决定来处理图形编程。在一些实施方案中,可以使用软件布置来评估特定系统硬件和软件的能力,然后作出关于针对任何特定的图形请求哪一个是要遵循的最佳图形编程路径的决定。可以在鉴于要处理的图形程序的细节针对所述路径评估硬件和软件的替代方案之后作出关于所述最佳路径的决定。

Graphics engines and environments that encapsulate graphics libraries and hardware

The disclosure relates to the operation of graphics system and a variety of architectures for designing and / or manipulating graphics systems, which span and extend from output applications to visual contents in pixel form or other forms. Generally speaking, many implementations of the invention envisage the graphic programming based on immediate decisions about how best to use specific available hardware and software. In some implementation plans, software layout can be used to assess the ability of specific system hardware and software, and then make decisions about which best graphical programming path to follow for any particular graph. The decision of the best path can be made after considering the details of the graphics program to be processed according to the alternatives of the hardware and software.

【技术实现步骤摘要】
【国外来华专利技术】封装图形库和硬件的图形引擎和环境相关申请的交叉引用本申请要求2016年3月25日提交的名称为“GraphicsEngineAndEnvironmentForEncapsulatingGraphicsLibrariesAndHardwares”的美国非临时专利申请号15/081,451的优先权,后者要求2015年6月7日提交的名称为“GraphicsEngineAndEnvironmentForEncapsulatigGraphicsLibrariesAndHardwares”的美国临时专利申请号62/172,114的优先权,这两个专利申请据此全文以引用方式并入本文。
技术介绍
本文所公开的专利技术涉及图形处理领域,并且不限于将来自应用程序的图形请求定向至渲染或呈现硬件的软件操纵。图形处理单元(GPU)对于处理数据并行图形任务来说已经变得重要。开发者现在认识到非图形数据并行任务也可由GPU处理,从而利用其大规模并行能力。供应商和标准化组织已经创建了使图形数据并行任务更易于编程的应用编程接口(API),这得益于高层级的开发者编程交互。但是,还存在更靠近硬件并且一般通过应用高层级API的输出而被采用的低层级API(或库/框架等)。换句话讲,高层级API一般只是准备应用于低层级API的程序代码。考虑到图形编程技术的多样化以及图形硬件能力的不断变化,每个从应用程序运行通过标准路径到达硬件的图形请求可能无法使用可获得的最佳资源,以尽可能快速且有效地得到执行。此外,由于可用框架相对固定和标准的性质,图形请求的路径可不考虑其他系统状态问题或上下文信息,如果知晓,可能会影响任何特定图形请求的路径选择。
技术实现思路
本公开整体涉及计算机编程领域。更具体地,但不作为限制,其涉及编程语言的有效操纵以及应用程序和图形硬件之间的图形流水线的该部分的灵活重新配置。更具体地,在一些实施方案中,通过虚拟逻辑机制捕获应用程序产生的图形请求,所述虚拟逻辑机制评估请求的性质,并且基于系统中的可用库/框架和/或硬件来开发最佳渲染路径。虚拟逻辑可以结合高层级框架(例如,AppleInc.的SpriteKit)和低层级图形库(例如,OpenGL)或与其联合工作。在至少一个实施方案中,虚拟化逻辑机制被构建在高层级图形框架中,在其中所护虚拟化逻辑机制评估图形请求并基于每个请求确定要使用的最佳硬件和低层级库。在其他实施方案中,虚拟化机制位于系统的高层级框架和低层级库之间,在其中所述虚拟化机制可以评估系统状态、可用资源和图形请求的性质,然后针对每个请求从属地定制图形后端。定制可涉及低层级库的选择、特定硬件处理资源的选择以及许多其他选项。这些实施方案所指示的架构在应用程序使用图形和实际渲染图形的方式之间提供了一定程度的间接性。因此,上述实施方案允许应用程序(及其开发者)忽略图形后端。这有很多优点。例如,通过独立管理图形后端,在后端进行的任何改进都可能会归于应用程序而不会对应用程序代码进行任何更改。因此,如果存在新的经改进硬件和旨在利用该硬件的经改进的低层级库,则在一些专利技术实施方案下,即使是旧的应用程序也可利用新的功能。在本公开的一些实施方案中,软件架构促进了上面讨论的期望的间接性以及新功能和后端资源的增加。在许多这些实施方案中,通过操纵抽象语法树(“AST”)来实现源代码语言的变换和简化。在一个或多个实施方案中,原始图形程序用AST表示。然后操纵AST将编程语言变换为通用中间形式。在做出关于特定程序的后端路径的决策后,可以进一步操纵AST以适应新的所选择的语言(例如,低层级库)和/或所选择的硬件。本文公开的一些实施方案涉及图形代码的灵活和有效管理,使得可根据该情况动态地改变图形流水线的后端部分。附图说明图1示出了可例如被用作终端用户机器或开发者机器的一种代表性计算机节点。图2示出了与本专利技术的实施方案相关联的一种示例性网络环境。图3示出了一种示例性软件层和架构示意图。图4A、图4B和图4C示出了例示性系统架构。图5示出了例示性系统架构。图6示出了例示性系统架构。图7示出了与本专利技术的一些实施方案相关联的过程。图8示出了与本专利技术的一些实施方案相关联的过程。具体实施方式本公开涉及用于改进图形系统的操作的系统、方法和计算机可读介质。本公开还涉及用于设计和/或操作图形系统的多种架构,所述架构从应用程序开始并且延伸到以像素形式或其他形式展示视觉内容。一般来讲,本专利技术的许多实施方案设想了根据关于如何最好地使用特定的可用硬件和软件所作出的即时决定来处理图形编程。在一些实施方案中,软件布置用于评估特定系统硬件和软件的能力,然后作出关于要遵循的最佳图形编程路径的决定。可以在鉴于要处理的图形程序的细节针对所述路径评估硬件和/或软件的替代方案之后作出关于所述最佳路径的决定。上述软件安排可以用来将应用程序与整个图形后端隔离,从而产生显著益处。例如,可以修改图形后端以考虑系统中可用的新硬件或图形库,使得传统程序(在新硬件和/或库可用之前写入且未更改)可以利用新的后端能力。这为开发人员节省了时间并允许终端用户立即获得新图形硬件和软件平台的益处,而无需等待应用程序更新。在以下描述中,为了解释的目的,阐述了很多具体细节以便提供对所公开构思的彻底理解。作为该描述的一部分,本公开的附图中的一些附图以框图形式表示结构和设备,以避免模糊所公开构思的新颖方面。为了清晰起见,不对实际的具体实施的所有特征进行描述。此外,本公开中所使用的语言主要是为了可读性和指导性目的而选择的,并且可能并未被选择为描绘或界定本专利技术的主题,从而可能必需凭借权利要求来确定此类专利技术主题。在本公开中提到“一个实施方案”或“实施方案”意指结合该实施方案所述的特定特征、结构或特性被包括在所公开主题的至少一个实施方案中,并且多次提到“一个实施方案”或“实施方案”不应被理解为必然地全部涉及相同的实施方案。应当理解,在任何实际具体实施的开发中(如在任何软件和/或硬件开发项目中那样),必须要作出许多决策以实现开发者的特定目标(例如,符合与系统和商务相关的约束条件),并且这些目标在不同具体实施之间可能是不同的。还应当理解,此类开发努力可能是复杂且耗时的,但是尽管如此,对于受益于本公开的在设计和实施用户接口和响应系统和/或手势识别处理系统中的普通技术人员而言会是一项常规任务。示例性硬件和软件本文所述的专利技术实施方案可在所有类型的设备中以及相对于所有类型的设备有所涉及和使用,所述设备包括单处理器和多处理器计算系统以及包含单处理和多处理计算系统的直立式设备(例如,相机、游戏系统、电器等)。本文中的讨论是参考可作为软件开发系统或终端用户系统进行讨论的一种常见计算配置来进行的。这个通用计算配置可具有包括一个或多个微处理器的CPU资源。本论述仅用于关于样本实施方案的举例说明,并非意图要将本专利技术的应用限制到所公开的硬件。具有其他(现在或未来)已知或常见硬件配置的其他系统也完全被设想和预期到。在考虑上述声明的情况下,以下讨论一种典型的硬件和软件操作环境。硬件配置可例如存在于服务器、工作站、膝上型电脑、平板电脑、台式计算机、游戏平台(不管是否是便携式的)、电视机、娱乐系统、智能电话、电话、或任何其他计算设备(不管是移动式的还是固定式的)中。参考图1,所公开实施方本文档来自技高网
...
封装图形库和硬件的图形引擎和环境

【技术保护点】
一种方法,包括:接收以第一图形源代码语言表达并限定第一图形的图形请求;将所述图形请求转换为第二图形源代码语言,所述第二图形源代码语言为通用语言,其中所述通用语言的特征在于具有与所述第一图形源代码语言和多个可用低级图形库的兼容性;以限定所述第一图形的抽象语法树(AST)来表示所述图形请求;检查所述AST,包括确定所述第一图形并识别所述可用低级图形库;至少基于所述图形请求和所述可用低级图形库之间的关系来确定目标低级图形库;通过操纵所述AST来将所述第二图形源代码语言转换为与所述目标低级图形库兼容的第三图形源代码语言,使得所述图形请求以所述第三图形源代码语言来体现;以及将以所述第三图形源代码语言体现的所述图形请求发送到硬件驱动程序。

【技术特征摘要】
【国外来华专利技术】2015.06.07 US 62/172,114;2016.03.25 US 15/081,4511.一种方法,包括:接收以第一图形源代码语言表达并限定第一图形的图形请求;将所述图形请求转换为第二图形源代码语言,所述第二图形源代码语言为通用语言,其中所述通用语言的特征在于具有与所述第一图形源代码语言和多个可用低级图形库的兼容性;以限定所述第一图形的抽象语法树(AST)来表示所述图形请求;检查所述AST,包括确定所述第一图形并识别所述可用低级图形库;至少基于所述图形请求和所述可用低级图形库之间的关系来确定目标低级图形库;通过操纵所述AST来将所述第二图形源代码语言转换为与所述目标低级图形库兼容的第三图形源代码语言,使得所述图形请求以所述第三图形源代码语言来体现;以及将以所述第三图形源代码语言体现的所述图形请求发送到硬件驱动程序。2.根据权利要求1所述的方法,其中所述图形请求为着色器程序。3.根据权利要求1所述的方法,其中所述图形请求是从应用程序接收的。4.根据权利要求1所述的方法,其中在将所述图形请求转换为第二图形源代码语言之前,所述图形请求以所述AST表示。5.根据权利要求1所述的方法,其中检查所述AST包括以下中的一者:确定可用硬件项目的标识;确定系统的热曲线;确定所述可用硬件项目中的一个或多个可用硬件项目的所述热曲线;或者确定系统优先级。6.根据权利要求5所述的方法,还包括基于所述图形请求和可用硬件项目的所述标识之间的关系来确定目标硬件项目。7.根据权利要求6所述的方法,其中所述目标硬件项目为GPU。8.一种非暂态程序存储设备,所述非暂态程序存储设备能够由处理器读取并且包括存储在其上的指令以使得一个或多个处理器:接收以第一图形源代码语言表达并限定第一图形的图形请求;将所述图形请求转换为第二图形源代码语言,所述第二图形源代码语言为通用语言,其中所述通用语言的特征在于具有与所述第一图形源代码语言和多个可用低级图形库的兼容性;以限定所述第一图形的抽象语法树(AST)来表示所述图形请求;检查所述AST,包括确定所述第一图形并识别所述可用低级图形库;至少基于所述图形请求和所述可用低级图形库之间的关系来确定目标低级图形库;通过操纵所述AST来将所述第二图形源代码语言转换为与所述目标低级图形库兼容的第三图形源代码语言,使得所述图形请求以所述第三图形源代码语言来体现;以及将以所述第三图形源代码语言体现的所述图形请求发送到硬件驱动程序。9.根据权利要求8所述的非暂态程序存储设备,其中所述图形请求是从应用程序接收的。10.根据权利要求8所述的非暂态程序存储设备,其中在将所述图形请求转换为所述第二图形源代码语言之前,所述图形请求以所述AST表...

【专利技术属性】
技术研发人员:J·P·加瑟林德里奇博格D·P·珀西诺T·R·欧瑞奥
申请(专利权)人:苹果公司
类型:发明
国别省市:美国,US

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

1