一种验证着色器函数的方法、装置及计算机存储介质制造方法及图纸

技术编号:24801647 阅读:28 留言:0更新日期:2020-07-07 21:24
本发明专利技术实施例公开了一种验证着色器函数的方法、装置及计算机存储介质;该方法可以包括:根据原始数据通过GPU中的着色器运行对应的着色器函数,捕获所述着色器函数的运行结果;通过GPU将所述着色器函数的运行结果传递至设定的缓冲区对象缓存;通过CPU根据所述原始数据模拟运行所述着色器函数,获取所述着色器函数的模拟结果;通过CPU读取所述缓冲区对象内的所述着色器函数运行结果;通过CPU将所述着色器函数运行结果与所述着色器函数的模拟结果进行比较以验证所述着色器函数。

【技术实现步骤摘要】
一种验证着色器函数的方法、装置及计算机存储介质
本专利技术实施例涉及图像处理器(GPU,GraphicProcessingUnit)
,尤其涉及一种验证着色器函数的方法、装置及计算机存储介质。
技术介绍
目前,在图形渲染管线中,可以通过着色器语言(SL,ShaderLanguage)编写着色器Shader函数以实现图形渲染管线中各种类型着色器的着色器程序。由于Shader函数运行于GPU中,基于CPU和GPU之间存储编译环境的不同,针对Shader函数的验证更加复杂。一般来说,目前针对Shader函数的验证方案,都是针对图形渲染管线的最终输出数据进行封装或解析,从而判断图形渲染管线在处理过程中所使用的Shader函数的执行结果是否正确。上述方案必须整个图形渲染管线执行完毕后才能够对输出数据进行解析,导致验证时流水线层级多,验证效率低。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种验证着色器函数的方法、装置及计算机存储介质;能够便捷地对Shader函数进行验证,提高了验证的灵活性。本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供了一种验证着色器函数的方法,包括:根据原始数据通过GPU中的着色器运行对应的着色器函数,捕获所述着色器函数的运行结果;通过GPU将所述着色器函数的运行结果传递至设定的缓冲区对象缓存;通过CPU根据所述原始数据模拟运行所述着色器函数,获取所述着色器函数的模拟结果;通过CPU读取所述缓冲区对象内的所述着色器函数运行结果;通过CPU将所述着色器函数运行结果与所述着色器函数的模拟结果进行比较以验证所述着色器函数。在上述方案中,所述着色器包括顶点着色器、几何着色器、片段着色器以及计算着色器中的至少一项;相应地,所述着色器函数包括顶点着色器函数、几何着色器函数、片段着色器函数以及计算着色器函数中的至少一项。在上述方案中,所述顶点着色器函数包括针对顶点数据进行处理的顶点函数以及用于通用计算的通用函数;所述几何着色器函数包括细分函数和几何处理函数。在上述方案中,所述通过GPU将所述着色器函数的运行结果传递至设定的缓冲区对象缓存,包括:通过GPU在所述着色器函数运行完毕后,将所述着色器函数的运行结果写入着色器存储缓冲器对象SSBO。第二方面,本专利技术实施例提供了一种验证着色器函数的装置,所述装置包括:存储器、CPU、GPU以及缓冲区对象缓存;其中,所述存储器用于存储原始数据;所述GPU,经配置以执行以下步骤:根据原始数据通过着色器运行对应的着色器函数,捕获所述着色器函数的运行结果;以及,将所述着色器函数的运行结果传递至所述缓冲区对象缓存;所述CPU,经配置已执行以下步骤:根据所述原始数据模拟运行所述着色器函数,获取所述着色器函数的模拟结果;以及,读取所述缓冲区对象缓存内的所述着色器函数运行结果;以及,将所述着色器函数运行结果与所述着色器函数的模拟结果进行比较以验证所述着色器函数。在上述方案中,所述着色器包括顶点着色器、几何着色器、片段着色器以及计算着色器中的至少一项;相应地,所述着色器函数包括顶点着色器函数、几何着色器函数、片段着色器函数以及计算着色器函数中的至少一项。在上述方案中,所述顶点着色器函数包括针对顶点数据进行处理的顶点函数以及用于通用计算的通用函数;所述几何着色器函数包括细分函数和几何处理函数。在上述方案中,所述GPU,还经配置以执行:在所述着色器函数运行完毕后,将所述着色器函数的运行结果写入着色器存储缓冲器对象SSBO。第三方面,本专利技术实施例提供了一种计算装置,所述计算装置包括第二方面任一项所述的验证着色器函数的装置。第四方面,本专利技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有验证着色器函数的程序,所述验证着色器函数的程序被至少一个处理器执行时实现第一方面任一项所述的验证着色器函数的方法的步骤。本专利技术实施例提供了一种验证着色器函数的方法、装置及计算机存储介质;着色器函数的运行结果在着色器函数运行完毕后传递至设定的缓冲区对象缓存,使得CPU在获得着色器函数的模拟结果后从该设定的缓冲区对象缓存中读取着色器函数的运行结果进行比对以验证所述着色器函数是否正确。由此,对于着色器函数的验证无需完成完整的图形渲染管线流程,减少验证所要执行的流水线长度,从而降低了验证执行的复杂度,而且通过CPU的模拟运算结果与GPU的真实运行结果进行比对,能够减少人为验证过程中的计算误差和格式转换误差,保证了着色器函数的验证正确性。附图说明图1为本专利技术实施例提供的一种计算装置的组成框图;图2为本专利技术实施例提供的一种GPU的组成框图。图3为本专利技术实施例提供的图形渲染管线与计算着色器的关系示意图。图4为本专利技术实施例提供的一种验证着色器函数的方法流程示意图。图5为本专利技术实施例提供的一种验证着色器函数的方法实施流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。参见图1,其示出了能够实现本专利技术实施例的计算装置100,该计算装置100可以包含但不限于以下各项:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器,等。在图1的实例中,计算装置100可以包括中央处理单元(CPU)102和经由可以包括存储器桥105的互连路径通信的系统存储器104。存储器桥105,例如北桥芯片,经由总线或其他通信路径106(例如超传输(HyperTransport)链路)连接到I/O(输入/输出)桥107。I/O桥107,例如南桥芯片,从一个或多个用户输入设备108(例如键盘、鼠标、轨迹球、能够作为组成部分并入显示设备110的触摸屏或其他类型的输入装置)接收用户输入并且经由路径106和存储器桥105将所述输入转发到CPU102。图形处理器112经由总线或其他通信路径113(例如PCIExpress、加速图形端口或超传输链路)耦合到存储器桥105;在一个实施例中,GPU112可以是将像素传递到显示设备110(例如传统的基于CRT或LCD的监视器)的图形子系统。系统盘114也连接到I/O桥107。开关116提供I/O桥107与诸如网络适配器118以及各种外插卡120和121的其他组件之间的连接。其他组件(未明确示出),包括USB或其他端口连接、CD驱动器、DVD驱动器、胶片录制设备及类似组件,也可以连接到I/O桥107。使图1中各种组件互连的通信路径可以使用任何适合的协议实现,诸如PCI(外围组件互连)、PCI-Express、AGP(加速图形端口)、超传输或者任何其他总线或点到点通信协议,并且不同设备间的连接可使用本本文档来自技高网...

【技术保护点】
1.一种验证着色器函数的方法,其特征在于,包括:/n根据原始数据通过GPU中的着色器运行对应的着色器函数,捕获所述着色器函数的运行结果;/n通过GPU将所述着色器函数的运行结果传递至设定的缓冲区对象缓存;/n通过CPU根据所述原始数据模拟运行所述着色器函数,获取所述着色器函数的模拟结果;/n通过CPU读取所述缓冲区对象内的所述着色器函数运行结果;/n通过CPU将所述着色器函数运行结果与所述着色器函数的模拟结果进行比较以验证所述着色器函数。/n

【技术特征摘要】
1.一种验证着色器函数的方法,其特征在于,包括:
根据原始数据通过GPU中的着色器运行对应的着色器函数,捕获所述着色器函数的运行结果;
通过GPU将所述着色器函数的运行结果传递至设定的缓冲区对象缓存;
通过CPU根据所述原始数据模拟运行所述着色器函数,获取所述着色器函数的模拟结果;
通过CPU读取所述缓冲区对象内的所述着色器函数运行结果;
通过CPU将所述着色器函数运行结果与所述着色器函数的模拟结果进行比较以验证所述着色器函数。


2.根据权利要求1所述的方法,其特征在于,所述着色器包括顶点着色器、几何着色器、片段着色器以及计算着色器中的至少一项;相应地,所述着色器函数包括顶点着色器函数、几何着色器函数、片段着色器函数以及计算着色器函数中的至少一项。


3.根据权利要求2所述的方法,其特征在于,所述顶点着色器函数包括针对顶点数据进行处理的顶点函数以及用于通用计算的通用函数;所述几何着色器函数包括细分函数和几何处理函数。


4.根据权利要求1至3任一项所述的方法,其特征在于,所述通过GPU将所述着色器函数的运行结果传递至设定的缓冲区对象缓存,包括:
通过GPU在所述着色器函数运行完毕后,将所述着色器函数的运行结果写入着色器存储缓冲器对象SSBO。


5.一种验证着色器函数的装置,其特征在于,所述装置包括:存储器、CPU、GPU以及缓冲区对象缓存;其中,
所述存储器用于存储原始数据;
所述GPU,经配置以执行以下步骤:
根...

【专利技术属性】
技术研发人员:张斌马栋刘微
申请(专利权)人:西安芯瞳半导体技术有限公司
类型:发明
国别省市:陕西;61

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

1