CN106708594B - 一种层次化OpenGL运行时编译软件实现方法 - Google Patents
一种层次化OpenGL运行时编译软件实现方法 Download PDFInfo
- Publication number
- CN106708594B CN106708594B CN201611139586.5A CN201611139586A CN106708594B CN 106708594 B CN106708594 B CN 106708594B CN 201611139586 A CN201611139586 A CN 201611139586A CN 106708594 B CN106708594 B CN 106708594B
- Authority
- CN
- China
- Prior art keywords
- instruction
- interface
- layer
- mapping
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明属于计算机图形领域,尤其涉及一种层次化OpenGL运行时编译软件实现方法,包括:检测当前的运行状态并对接口分类层(1)传输的参数,并将处理后的参数传输到指令映射层(3)进行指令映射;对接口分类层(1)中的需指令映射接口进行图形指令映射,并将映射后的图形指令传输到指令执行分类层(4)进行分类;将延时执行指令和立即执行指令传输到指令编码生成层(5)进行图形指令生成;将指令执行分类层(4)传输的两类指令编码生成对应的二进制图形指令,传输到指令编码存储层(6)存储。通过对OpenGL接口进行分层处理,实现OpenGL接口到图形指令的高效映射并达到图形指令的高效执行。
Description
技术领域
本发明属于计算机图形学领域,尤其涉及一种层次化OpenGL运行时编译软件实现方法。
背景技术
OpenGL运行时编译软件是OpenGL产品的重要组成部分,其功能、性能直接决定OpenGL接口的功能、性能,各图形处理器研发厂商都有自己的实现方法,但大都未公开,公开资料中,对OpenGL接口实现主要直接对应图形编码的方式,尚未发现有层次化的实现方法。
发明内容
本发明的目的是:
本发明主要提供一种层次化OpenGL运行时编译软件实现方法,通过对OpenGL接口通过分层处理,实现OpenGL接口到图形指令的高效映射并达到图形指令的高效执行。
本发明的解决方案是:
一种层次化OpenGL运行时编译软件实现方法,包括
步骤1、根据OpenGL接口的功能和实现方式将属性设置类接口分为需指令映射接口,将功能操作类命令分为直接指令生成接口,并将OpenGL接口输入参数传输到参数、状态处理层(2),对接口输入参数以及运行状态进行处理;
步骤2、检测当前的运行状态并对接口分类层(1)传输的参数进行处理,并将处理后的参数传输到指令映射层(3)进行指令映射;
步骤3、根据接口分类层(1)中的需指令映射接口,及参数、状态处理层(2)传输的参数对接口分类层(1)中的需指令映射接口进行图形指令映射,并将映射后的图形指令传输到指令执行分类层(4)根据图形指令功能对指令进行分类;
步骤4、对指令映射层(3)传输的指令根据功能分为延时执行指令和立即执行指令两类,如果所述指令映射层(3)传输的指令与之前传输的指令类型相同,则为延时执行类命令,否则即为立即执行命令;将延时执行指令和立即执行指令传输到指令编码生成层(5)进行图形指令生成;
步骤5、将指令执行分类层(4)传输的两类指令根据OpenGL接口实现所对应的命令编码生成对应的二进制图形指令,并将生成的图形指令传输到指令存储层(6)进行图形指令的存储;
步骤6、接收指令编码生成层(5)生成的图形指令编码并将影响绘图结果的存入延时执行缓冲,不影响绘图结果的存入立即执行缓冲。
本发明的优点是:本发明提供的一种染色器驱动运行时重构方法,通过搜集染色器应用运行时所包含的染色器属性信息、染色器处理数据信息、染色器运行管理信息、染色器驱动软件,然后本次染色器运行有针对的优化染色器驱动软件,使得染色器应用在保证功能正确的情况下高性能的运行。
附图说明
图1为本发明的方法模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图和具体实施例对本发明的技术方案做进一步详细描述。
如图1所示,本发明实施例的一种层次化OpenGL运行时编译软件实现方法,包括
步骤1、根据OpenGL接口的功能和实现方式将属性设置类接口分为需指令映射接口,将功能操作类命令分为直接指令生成接口,并将OpenGL接口输入参数传输到参数、状态处理层(2),对接口输入参数以及运行状态进行处理;
步骤2、检测当前的运行状态并对接口分类层(1)传输的参数进行处理,并将处理后的参数传输到指令映射层(3)进行指令映射;
步骤3、根据接口分类层(1)中的需指令映射接口,及参数、状态处理层(2)传输的参数对接口分类层(1)中的需指令映射接口进行图形指令映射,并将映射后的图形指令传输到指令执行分类层(4)根据图形指令功能对指令进行分类;
步骤4、对指令映射层(3)传输的指令根据功能分为延时执行指令和立即执行指令两类,如果所述指令映射层(3)传输的指令与之前传输的指令类型相同,则为延时执行类命令,否则即为立即执行命令;将延时执行指令和立即执行指令传输到指令编码生成层(5)进行图形指令生成;
步骤5、将指令执行分类层(4)传输的两类指令根据OpenGL接口实现所对应的命令编码生成对应的二进制图形指令,并将生成的图形指令传输到指令存储层(6)进行图形指令的存储;
步骤6、接收指令编码生成层(5)生成的图形指令编码并将影响绘图结果的存入延时执行缓冲,不影响绘图结果的存入立即执行缓冲。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细地说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (1)
1.一种层次化OpenGL运行时编译软件实现方法,其特征在于,包括
步骤1、根据OpenGL接口的功能和实现方式将属性设置类接口分为需指令映射接口,将功能操作类命令分为直接指令生成接口,并将OpenGL接口输入参数传输到参数、状态处理层(2),对接口输入参数以及运行状态进行处理;
步骤2、检测当前的运行状态并对接口分类层(1)传输的参数进行处理,并将处理后的参数传输到指令映射层(3)进行指令映射;
步骤3、根据接口分类层(1)中的需指令映射接口,及参数、状态处理层(2)传输的参数对接口分类层(1)中的需指令映射接口进行图形指令映射,并将映射后的图形指令传输到指令执行分类层(4)根据图形指令功能对指令进行分类;
步骤4、对指令映射层(3)传输的指令根据功能分为延时执行指令和立即执行指令两类,如果所述指令映射层(3)传输的指令与之前传输的指令类型相同,则为延时执行类命令,否则即为立即执行命令;将延时执行指令和立即执行指令传输到指令编码生成层(5)进行图形指令生成;
步骤5、将指令执行分类层(4)传输的两类指令根据OpenGL接口实现所对应的命令编码生成对应的二进制图形指令,并将生成的图形指令传输到指令存储层(6)进行图形指令的存储;
步骤6、接收指令编码生成层(5)生成的图形指令编码并将影响绘图结果的存入延时执行缓冲,不影响绘图结果的存入立即执行缓冲。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611139586.5A CN106708594B (zh) | 2016-12-12 | 2016-12-12 | 一种层次化OpenGL运行时编译软件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611139586.5A CN106708594B (zh) | 2016-12-12 | 2016-12-12 | 一种层次化OpenGL运行时编译软件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106708594A CN106708594A (zh) | 2017-05-24 |
CN106708594B true CN106708594B (zh) | 2020-06-09 |
Family
ID=58937201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611139586.5A Active CN106708594B (zh) | 2016-12-12 | 2016-12-12 | 一种层次化OpenGL运行时编译软件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106708594B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107945099B (zh) * | 2017-11-24 | 2021-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向OpenGL实现的属性配置优化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6046747A (en) * | 1997-08-04 | 2000-04-04 | Hewlett-Packard Company | Graphics application programming interface avoiding repetitive transfer of texture mapping data |
CN105677298A (zh) * | 2015-12-30 | 2016-06-15 | 李朝波 | 一种将计算机指令中立即数扩展的方法和装置 |
CN105849780A (zh) * | 2013-12-27 | 2016-08-10 | 高通股份有限公司 | 平铺块式基础架构上的经优化多遍次再现 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7530062B2 (en) * | 2003-05-23 | 2009-05-05 | Microsoft Corporation | Optimizing compiler transforms for a high level shader language |
-
2016
- 2016-12-12 CN CN201611139586.5A patent/CN106708594B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6046747A (en) * | 1997-08-04 | 2000-04-04 | Hewlett-Packard Company | Graphics application programming interface avoiding repetitive transfer of texture mapping data |
CN105849780A (zh) * | 2013-12-27 | 2016-08-10 | 高通股份有限公司 | 平铺块式基础架构上的经优化多遍次再现 |
CN105677298A (zh) * | 2015-12-30 | 2016-06-15 | 李朝波 | 一种将计算机指令中立即数扩展的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106708594A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825488A (zh) | 一种业务处理方法、装置及电子设备和存储介质 | |
CN103810020A (zh) | 虚拟机弹性伸缩方法及装置 | |
CN104985939B (zh) | 一种激光打标机控制方法和激光打标机 | |
CN110955410A (zh) | 一种代码自动生成方法、装置、设备及介质 | |
KR102061466B1 (ko) | 메모리 관리를 위한 보존 가비지 콜렉팅 및 정수 태깅 기법 | |
KR100678912B1 (ko) | 메소드 바이트코드 해석 방법 및 상기 방법에 의해동작하는 시스템 | |
CN107479866B (zh) | 基于重构技术实现开放终端应用数据与功能的方法 | |
CN113554161A (zh) | 一种神经网络加速器编译方法及装置 | |
CN107945099B (zh) | 一种面向OpenGL实现的属性配置优化方法 | |
CN106708594B (zh) | 一种层次化OpenGL运行时编译软件实现方法 | |
US10445074B2 (en) | Method of optimally compiling PLC command | |
CN110795162B (zh) | 生成容器镜像文件的方法和装置 | |
CN114201156B (zh) | 接入方法、装置、电子设备及计算机存储介质 | |
CN111061743A (zh) | 数据加工方法、装置和电子设备 | |
CN114327481A (zh) | 代码处理方法、装置、设备以及存储介质 | |
CN110968404A (zh) | 一种设备数据处理方法及装置 | |
CN106708518B (zh) | 一种染色器驱动运行时重构方法 | |
CN105427359A (zh) | 动画表现装置 | |
CN112799724B (zh) | 一种稳定控制装置策略表解析计算方法及装置 | |
CN115237390A (zh) | 一种继电保护装置逻辑图生成代码方法、装置及存储介质 | |
CN112445607B (zh) | 一种应用程序执行方法函数的方法及装置 | |
US20130342549A1 (en) | Apparatus and method for processing rendering data | |
US8495033B2 (en) | Data processing | |
WO2016189721A1 (ja) | ソースコード評価装置及びソースコード評価方法及びソースコード評価プログラム | |
EP4196874A1 (en) | Representing asynchronous state machine in intermediate code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |