本发明属于计算机图形学领域,尤其涉及一种乱序OpenGL接口处理方法。
背景技术:
OpenGL接口规定了API接口定义及图形功能处理过程,但未规定其实现形式,目前公开资料中,OpenGL接口实现以顺序的ringbuffer存储图形指令形式实现,无乱序操作的相关研究。
技术实现要素:
本发明的目的是:
本发明主要提供一种乱序OpenGL接口处理方法,通过调整OpenGL API所包含操作的运行顺序,提高处理性能。
本发明的解决方案是:
一种乱序OpenGL接口处理方法,包括:
步骤1:OpenGL接口执行时分为影响绘图效果类操作和不影响绘图效果类操作;
其中,影响绘图效果类操作指执行该操作后会导致帧缓冲中的绘图效果;
不影响绘图效果类操作指执行该操作不后会导致帧缓冲中的绘图效果;
步骤2:将影响绘图效果类操作生成的图形指令和不影响绘图效果类操作生成的图形指令发送给同步管理/性能决策;
步骤3:不影响绘图类的操作生成的图形指令包括当前运行状态设置指令、属性设置指令和数据搬运操作指令,经过同步管理/性能决策单元,将根据当前运行状态设置指令、属性设置指令多次设置的同一属性参数按照最终的设置参数放入顺序执行缓冲;将能够提前执行的数据搬运操作指令立即执行,与图形命令处理并行操作,加速数据处理;
影响绘图类的操作生成的图形指令包括图元绘制指令、像素操作指令,经过同步管理/性能决策单元,将在当前视口范围内需要绘制的图元绘制指令、像素操作指令放入顺序执行缓冲。
一个OpenGL接口可只包含影响绘图效果类操作或不影响绘图效果类操作的一种,或者两种都包含;若两种都包含需要顺序处理。
本发明的优点是:本发明提供的一种染色器驱动运行时重构方法,通过搜集染色器应用运行时所包含的染色器属性信息、染色器处理数据信息、染色器运行管理信息、染色器驱动软件,然后本次染色器运行有针对的优化染色器驱动软件,使得染色器应用在保证功能正确的情况下高性能的运行。
附图说明
图1为本发明的方法模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图和具体实施例对本发明的技术方案做进一步详细描述。
如图1所示,本发明实施例的一种乱序OpenGL接口处理方法,包括:
步骤1:OpenGL接口执行时分为影响绘图效果类操作和不影响绘图效果类操作;
其中,影响绘图效果类操作指执行该操作后会导致帧缓冲中的绘图效果;
不影响绘图效果类操作指执行该操作不后会导致帧缓冲中的绘图效果;
步骤2:将影响绘图效果类操作生成的图形指令和不影响绘图效果类操作生成的图形指令发送给同步管理/性能决策;
步骤3:不影响绘图类的操作生成的图形指令包括当前运行状态设置指令、属性设置指令和数据搬运操作指令,经过同步管理/性能决策单元,将根据当前运行状态设置指令、属性设置指令多次设置的同一属性参数按照最终的设置参数放入顺序执行缓冲;将能够提前执行的数据搬运操作指令立即执行,与图形命令处理并行操作,加速数据处理;
影响绘图类的操作生成的图形指令包括图元绘制指令、像素操作指令,经过同步管理/性能决策单元,将在当前视口范围内需要绘制的图元绘制指令、像素操作指令放入顺序执行缓冲。
一个OpenGL接口可只包含影响绘图效果类操作或不影响绘图效果类操作的一种,或者两种都包含;若两种都包含需要顺序处理。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细地说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。