本发明专利技术提供一种图形处理器(GPU)、操作方法和机器可读存储介质。GPU包括命令处理器电路以及几何管线电路。命令处理器电路将目前图元块发送给几何管线电路进行几何处理。几何管线电路根据硬件描述符决定启用粗粒度深度测试或是细粒度深度测试。当几何管线电路启用细粒度深度测试时,几何管线电路对命令处理器电路发送给几何管线电路的目前图元块的多个图元进行细粒度深度测试剔除,将细粒度深度测试结果存储在细粒度深度缓冲中,以及对目前图元块废弃绘图。块废弃绘图。块废弃绘图。
【技术实现步骤摘要】
图形处理器、操作方法和机器可读存储介质
[0001]本专利技术涉及一种电子装置,且特别涉及一种图形处理器、操作方法和机器可读存储介质。
技术介绍
[0002]图形处理器(Graphics Processing Unit,GPU),又称显示核心(display core)、视觉处理器(video processor)、显示芯片(display chip)或图形芯片(graphics chip),是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上执行绘图运算工作(例如渲染,rendering)的微处理器。为了提高渲染场景的真实感,阴影的绘制是一个重要的技术。
[0003]一种典型的阴影绘制方法是阴影贴图(shadow mapping)。阴影贴图分成两个动作(pass)。第一个动作以光源为视角将场景渲染一遍,产生场景物体的深度信息至深度缓冲(depthbuffer)。通常,渲染场景包含很多个光源,所以第一个动作需要对每个光源产生一个深度缓冲。更复杂的算法会针对每个光源产生不同分辨率的深度缓冲,以提高第二个动作着色(shading)的访存效率。第二个动作以实际场景相机(camera)为视角对整个场景再渲染一遍,然后根据第一个动作产生的深度信息决定每个像素(pixel)对应的物体部分是否在阴影中。
[0004]按照标准GPU的应用程序接口(applicationprogramming interface,API),一个渲染的动作(pass)至少需要包含顶点着色阶段(Vertex Shading stage)、光栅化阶段(Rasterization stage)和像素着色阶段(Pixel Shading stage)。映射到GPU的硬件架构,主流的架构包含立即模式渲染(Immediate Mode Rendering,IMR)和基于图块的延迟渲染(Tiled
‑
Based Deferred Rendering,TBDR)。两种架构是该行业中的基本概念,在此不做详细论述。TBDR架构通常分成两个管线(pipeline)硬件:合并管线(binning pipeline)和渲染管线(rendering pipeline)。其中,合并管线主要完成顶点着色以及一些初步的图元(primitive)剔除技术,例如背面朝向剔除(back
‑
face culling)、粗/细深度剔除(coarse/fine depth culling)等。将存活的图元按照图块(tile)颗粒度存储到内存(memory)中,作为渲染管线的输入。其中,图块是指渲染屏幕按照一定的颗粒度切分的最小单元。例如按照64x64为颗粒度切分一个512x512的屏幕,每个64x64我们称之为一个图块。当渲染几何体落入这个图块,后顶点(post
‑
vertex)信息被存储到该图块的内存中。渲染管线按照图块颗粒度执行光栅化(rasterization)和像素着色(pixel shading)。渲染管线从内存中按照图块为颗粒度,将顶点着色(vertex shading)的结果作为输入,进行光栅化和像素着色。以图块为颗粒度的方式能够大大减少深度缓冲对外部双倍数据率(Double Data Rate,DDR)内存的读写次数,对外部带宽需求和功耗有非常好的降低作用。虽然存在上述优点,TBDR架构因为存在两个动作,会增加一个有效图元的渲染时间。
[0005]阴影贴图(shadow mapping)中的第一个动作(pass),通常是一个唯深度动作(depth
‑
only pass)。也就是大部分场景下,对应的像素着色(pixel shading)部都是透传
的(passthrough),亦即在阴影贴图操作中像素着色部并没有做操作。尽管如此,在TBDR架构中,唯深度动作仍然需要完整地经过合并管线(binning pipeline)和渲染管线(rendering pipeline),相对于IMR架构存在很大的弊端。唯深度动作在场景渲染中占据了非常重的工作量(workload)。尽管很多情况下,深度动作的像素着色器(pixel shader)通常是透传的。对于主流的基于图块GPU(tile
‑
based GPU)架构,目前深度动作总是需要经历合并管线执行完顶点着色器(vertex shader),再到渲染管线执行三角形构建(triangle setup)、光栅化(rasterization)、深度测试(Z
‑
testing)和像素着色器。唯深度动作整个通路的时间被大大的拉长了,对渲染算法的性能产生较大的影响。
技术实现思路
[0006]本专利技术提供一种图形处理器(graphics processing unit,GPU)及其操作方法,以及机器可读存储介质,以缩短唯深度动作(depth
‑
onlypass)的时间。
[0007]在根据本专利技术的实施例中,所述图形处理器包括命令处理器(command processor,CP)电路以及几何管线(geometrypipeline,GP)电路。命令处理器电路用以将一个任务链(job chain)切分为对多个图元块(primitive block,PB)的渲染任务(rendering task),其中每一个图元块包括多个图元(primitives)。几何管线电路耦接至命令处理器电路。命令处理器电路将所述多个图元块中的一个发送给几何管线电路进行几何处理(geometry processing)。几何管线电路根据硬件描述符(hardware descriptor)决定启用粗粒度深度测试(coarse Z test)或是细粒度深度测试(fine Z test)。当几何管线电路启用细粒度深度测试时,几何管线电路对命令处理器电路发送给几何管线电路的目前图元块的多个图元进行细粒度深度测试剔除(fine depth test culling),将细粒度深度测试结果存储在细粒度深度缓冲(fine depthbuffer)中,以及对目前图元块废弃绘图(discard draw)。
[0008]在根据本专利技术的实施例中,所述操作方法包括:将一个任务链切分为对多个图元块的渲染任务,其中每一个图元块包括多个图元;将所述多个图元块中的一个发送给所述图形处理器的几何管线电路进行几何处理;由所述几何管线电路根据硬件描述符决定启用粗粒度深度测试或是细粒度深度测试;以及当所述几何管线电路启用所述细粒度深度测试时,由所述几何管线电路对发送给所述几何管线电路的目前图元块的多个图元进行细粒度深度测试剔除,将细粒度深度测试结果存储在细粒度深度缓冲中,以及对目前图元块废弃绘图。
[0009]在根据本专利技术的实施例中,所述机器可读存储介质用于存储非暂时性机器可读指令。当所述非暂时性机器可读指令由计算机执行时,可以实现所述图形处理器的操作方法。
[0010]基于上述,几何管线电路接到任务后按照正常动作完成着色任务操作。几何本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种图形处理器,其特征在于,所述图形处理器包括:命令处理器电路,用以将一个任务链切分为对多个图元块的渲染任务,其中每一个图元块包括多个图元;以及几何管线电路,耦接至所述命令处理器电路,其中所述命令处理器电路将所述多个图元块中的一个发送给所述几何管线电路进行几何处理,所述几何管线电路根据硬件描述符决定启用粗粒度深度测试或是细粒度深度测试,以及当所述几何管线电路启用所述细粒度深度测试时,所述几何管线电路对所述命令处理器电路发送给所述几何管线电路的目前图元块的所述多个图元进行细粒度深度测试剔除以及将细粒度深度测试结果存储在细粒度深度缓冲中,以及所述几何管线电路对所述目前图元块废弃绘图。2.根据权利要求1所述的图形处理器,其特征在于,当所述几何管线电路对所述目前图元块废弃绘图时,所述几何管线电路不给所述图形处理器的流处理器集群电路发送像素处理任务,以及所述几何管线电路返回任务完成信号给所述命令处理器电路表示已经完成所述目前图元块。3.根据权利要求1所述的图形处理器,其特征在于,当所述硬件描述符表示对所述目前图元的任务包括唯深度任务时,所述几何管线电路选择启用所述细粒度深度测试,否则所述几何管线电路选择启用所述粗粒度深度测试。4.根据权利要求1所述的图形处理器,其特征在于,所述几何处理包括:建构着色任务,以发送所述着色任务到所述图形处理器的流处理器集群电路去执行;以及取回经所述流处理器集群电路处理后的顶点信息以进一步进行视口变换。5.根据权利要求4所述的图形处理器,其特征在于,所述着色任务包括顶点着色任务、几何着色任务和曲面细分着色任务。6.根据权利要求4所述的图形处理器,其特征在于,所述视口变换包括背面朝向剔除或小图元剔除。7.根据权利要求1所述的图形处理器,其特征在于,当所述几何管线电路启用所述粗粒度深度测试时,所述几何管线电路对所述几何处理的处理结果进行粗粒度深度测试剔除,以及将粗粒度深度测试结果存储在粗粒度深度缓冲中,以便于在所述图形处理器的流处理器集群电路中的像素管线进行细粒度深度测试剔除。8.根据权利要求7所述的图形处理器,其特征在于,当所述几何管线电路启用所述粗粒度深度测试时,所述像素管线从所述粗粒度深度缓冲取用所述粗粒度深度测试结果进行所述细粒度深度测试剔除,以及将细粒度深度测试结果存储在细粒度深度缓冲中。9.根据权利要求1所述的图形处理器,其特征在于,在所述命令处理器电路接收到所述任务完成信号后,所述命令处理器电路下发对所述细粒度深度缓冲有依赖的任务。10.一种图形处理器的操作方法,其特征在于,所述操作方法包括:将一个任务链切分为对多个图元块的渲染任务,其中每一个图...
【专利技术属性】
技术研发人员:请求不公布姓名,
申请(专利权)人:上海壁仞智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。