CN116957900A - 图形处理器、系统、电子装置、设备及图形处理方法 - Google Patents
图形处理器、系统、电子装置、设备及图形处理方法 Download PDFInfo
- Publication number
- CN116957900A CN116957900A CN202210414535.8A CN202210414535A CN116957900A CN 116957900 A CN116957900 A CN 116957900A CN 202210414535 A CN202210414535 A CN 202210414535A CN 116957900 A CN116957900 A CN 116957900A
- Authority
- CN
- China
- Prior art keywords
- tile
- size
- sub
- block
- vrs
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 14
- 238000012360 testing method Methods 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 claims abstract description 42
- 239000012634 fragment Substances 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 18
- 238000000638 solvent extraction Methods 0.000 claims abstract description 13
- 239000000872 buffer Substances 0.000 claims description 56
- 238000009877 rendering Methods 0.000 claims description 19
- 238000005192 partition Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000002674 ointment Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开提供一种图形处理器、系统、方法、电子装置及设备。其图形处理器包括图块划分模块,被配置为:根据基本图块尺寸和VRS像素组尺寸对图像帧中的图元进行图块划分处理,划分的图块尺寸为基本图块尺寸与VRS像素组尺寸的乘积;深度测试模块,被配置为:逐个图块进行深度测试,且针对每个图块,分多个子图块进行深度测试,每个子图块尺寸为基本图块尺寸;片段着色器模块,被配置为:逐个图块进行片段计算,其中,每个图块内各个子图块的深度测试完成后,片段着色器模块被调用。
Description
技术领域
本公开涉及GPU(Graphics Processing Unit,图形处理器)技术领域,尤其涉及一种图形处理器、图形处理系统、电子装置、电子设备及图形处理方法。
背景技术
采用基于图块(tile based)的GPU架构可减少渲染时的内存带宽需求。对基于图块的GPU架构而言,渲染过程的光栅化和像素处理以图块粒度执行。光栅化和像素处理过程中,通过片上缓冲区(On-Chip Buffers)存储一个图块(tile)中像素点深度缓冲信息、几何缓冲信息等信息。其中,保存深度缓冲信息的片上缓冲区上的存储空间称为深度缓冲区(Depth Buffer),保存几何缓冲信息的片上缓冲区上的存储空间称为几何缓冲区(GBuffer)。深度缓冲区的尺寸决定了可在片上进行深度测试的样本(sample)或像素(pixel)的个数,几何缓冲区的尺寸决定了可在片上进行片段(fragment)计算的样本或像素的个数。深度缓冲区的尺寸和几何缓冲区的尺寸共同决定了可划分的图块尺寸。例如,如果图块的尺寸为16×16个像素,那么,深度缓冲区和几何缓冲区都需要提供对16×16个像素的片上处理能力。
在传统的基于图块的GPU架构中,图块尺寸的选择同时受深度缓冲区和几何缓冲区的限制。当使能VRS(Variable Rate Shading,可变速率着色)功能,片段计算的粒度降低,这意味着几何缓冲区的需求变小。若按照几何缓冲区的尺寸匹配图块尺寸,可以划分更大尺寸的图块。但深度测试限制了图块划分更大的尺寸。例如,深度缓冲区和几何缓冲区都支持16×16个像素的片上处理能力,使能VRS后,几何缓冲区支持划分大于16×16个像素的图块,但深度缓冲区限制了图块的最大尺寸为16×16个像素。由此可见,使能VRS后,传统的基于图块的GPU架构限制了图块尺寸的选择。
发明内容
本公开的目的是提供一种图形处理器、图形处理系统、图形处理方法、电子装置及电子设备,以便在使能VRS的情况下,可以根据几何缓冲区的尺寸进行图块划分。
根据本公开的一个方面,提供一种图形处理器,该图形处理器采用基于图块的渲染架构,该图形处理器至少包括:
图块划分模块,被配置为:根据基本图块尺寸和VRS像素组尺寸对图像帧中的图元进行图块划分处理,划分的图块尺寸大于基本图块尺寸,但不大于基本图块尺寸与VRS像素组尺寸的乘积;
深度测试模块,被配置为:逐个图块进行深度测试,且针对每个图块,分多个子图块进行深度测试,每个子图块尺寸受限于深度缓冲区的尺寸;
片段着色器模块,被配置为:逐个图块进行片段计算,其中,每个图块内各个子图块的深度测试完成后,片段着色器模块被调用。
可选的,划分的图块尺寸为基本图块尺寸与VRS像素组尺寸的乘积。
可选的,子图块尺寸为基本图块尺寸。
在上述任一图形处理器实施例的基础上,深度测试模块可以被配置为:将各个图块划分为多个子图块。或者,图块划分模块还被配置为:将各个图块划分为多个子图块。
若深度测试模块进行子图块的划分,进一步的,深度测试模块还可以被配置为:在每个图块的图块划分结果中标记子图块划分结果。
若图块划分模块进行子图块的划分,进一步的,图块划分模块还被配置为:分别保存每个图块的图块划分结果,并在每个图块的图块划分结果中标记子图块划分结果。
在上述任一图形处理器实施例的基础上,片段着色器模块可以被配置为:对同一VRS像素组中的像素进行一次片段计算。
在此基础上,可选的,片段着色器对应的几何缓冲区中仅对同一VRS像素组保存一个片段计算结果。
根据本公开的另一方面,还提供一种图形处理系统,该图形处理系统包括上述任一实施例中所述的图形处理器。
根据本公开的另一方面,还提供一种电子装置,该电子装置包括上述任一实施例中所述的图形处理系统。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
根据本公开的另一方面,还提供一种图形处理方法,该图形处理方法采用基于图块的渲染架构,该图形处理方法至少包括如下操作:
根据基本图块尺寸和VRS像素组尺寸对图像帧中的图元进行图块划分处理,划分的图块尺寸大于所述基本图块尺寸,但不大于基本图块尺寸与所述VRS像素组尺寸的乘积;
逐个图块进行深度测试,且针对每个图块,分多个子图块进行深度测试,每个子图块尺寸受限于深度缓冲区的尺寸;
逐个图块进行片段计算,其中,每个图块内各个子图块的深度测试完成后,片段着色器模块被调用。
可选的,划分的图块尺寸为基本图块尺寸与VRS像素组尺寸的乘积。
可选的,子图块尺寸为基本图块尺寸。
在上述任一图形处理方法实施例的基础上,分多个子图块进行深度测试之前,还可以将各个图块划分为多个子图块。
进一步的,可以在每个图块的图块划分结果中标记子图块划分结果。
在上述任一图形处理方法实施例的基础上,对同一VRS像素组中的像素进行一次片段计算。
在此基础上,可选的,片段着色器对应的几何缓冲区中仅对同一VRS像素组保存一个片段计算结果。
附图说明
图1为本公开一个实施例的图块划分示意图;
图2为本公开一个实施例的图形处理系统结构示意图;
图3为本公开一个实施例的图形处理方法流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
使能VRS功能后,在深度测试阶段,按像素或样本的粒度进行深度测试,但是在片段计算阶段,按VRS像素组(pixel group)的粒度进行片段计算,即一个像素组执行一次片段计算。因此,在使能VRS功能的情况下,几何缓冲区可以支持比不使能VRS功能时更大的处理能力。例如,在不使能VRS功能的情况下,几何缓冲区的尺寸为16×16,可以支持的图块尺寸为16×16;在使能VRS功能,且VRS像素组设置为1×2的情况下,几何缓冲区可以支持的图块尺寸为16×32。有鉴于此,本公开提供一种采用基于图块的渲染架构的图形处理器,该图形处理器可以对图块尺寸进行调整。具体的,在使能VRS的情况下,可以按照几何缓冲区的尺寸调整图块尺寸,从而有效利用几何缓冲区。不仅如此,通过增加图块尺寸,可以减少在片段计算阶段由于图块切换带来的与内存之间的数据交互。此外,由于使用更大的图块,可能减少图元(primitive)覆盖多个图块的情况,更有利于减少图块切换而重复使用图元信息的情况。增加图块尺寸后,图块尺寸可能超过深度缓冲区的尺寸,因此,本公开提供的图形处理器,在深度测试阶段对每个图块按照子图块的粒度进行深度测试,以匹配深度缓冲区的尺寸。此处按照子图块的粒度进行深度测试,是指图块被划分为多个子图块,针对图块的深度测试,转换为每次读取一个子图块的数据,针对一个子图块进行深度测试,直至针对图块的所有子图块都进行深度测试。
其中,GPU是指通过硬件实现、具有计算功能的处理器,其包括计算单元、缓存等等组成部件,可以是GPGPU(general-purpose graphics processing unit,通用图形处理器),也可以是GPU。
本公开实施例提供的图形处理器适用于任何基于图块的渲染架构,例如,TBR(Tile Based Render,基于图块的渲染)、TBDR(Tile Based Deferred Rendering,基于图块的延迟渲染)等。
本公开的一个实施例提供一种图形处理器,该图形处理器采用基于图块的渲染架构,其至少包括图块划分模块、深度测试模块和片段着色器模块。
本公开中,图块划分模块被配置为:根据基本图块尺寸和VRS像素组尺寸对图像帧中的图元进行图块划分处理,划分的图块尺寸大于基本图块尺寸,但不大于基本图块尺寸与VRS像素组尺寸的乘积。
本公开实施例中,基本图块尺寸是指在未使能VRS功能的情况下进行图块划分的图块尺寸。基本图块尺寸是根据几何缓冲区的尺寸和深度缓冲区的尺寸等片上缓冲区的尺寸确定的。
本公开实施例中,如图1所示,假设基本图块尺寸为4×4,设置水平相邻的两个像素构成一个像素组(即VRS像素组尺寸为1×2,图1中椭圆实线框所示),那么,基本图块尺寸与VRS像素组尺寸的乘积为4*1×4*2=4×8。图1所示的实施例中,划分的图块尺寸为基本图块尺寸与VRS像素组尺寸的乘积,因此,图1中使用矩形实线框示出了一个图块的尺寸。
根据Direct3D12的要求,VRS所支持的像素组尺寸包括:1×2,2×1,2×2,2×4,4×2和4×4。对于不同的VRS像素组尺寸,图块划分模块进行的图块尺寸调整的规则如表1所示。表1中,a×b表示设置的基本图块尺寸。
表1tile size分配
本公开中,深度测试模块被配置为:逐个图块进行深度测试,且针对每个图块,分多个子图块(subtile)进行深度测试,每个子图块尺寸不大于深度缓冲区的尺寸。
在一些实施例中,子图块尺寸为基本图块尺寸。仍以图1所示的图块划分方式为例,图1中的虚线矩形框示出了子图块尺寸。
具体的,是对图块内的像素进行深度测试。本公开实施例不限定对哪些像素进行深度测试。在一些实施例中,对图元覆盖的所有像素进行深度测试。在另一些实施例中,对图元覆盖的屏幕可见像素进行深度测试。本公开不限定深度测试的粒度,可按照像素为粒度进行深度测试,也可按照样本为粒度进行深度测试。
深度测试模块按照预定的处理顺序对各个图块中的像素进行深度测试。其中,对于每个图块的像素的深度测试是以子图块为粒度执行的。本公开中,每个图块按照相同的子图块划分规则被划分为多个子图块。以第i个图块为例,每次读取一个子图块内的数据进行深度测试,在完成一个子图块的深度测试后,再按照预定的顺序读取下一个子图块内的数据进行深度测试,直至第i个图块内所有子图块完成深度测试。第i个图块内所有子图块完成深度测试后,可以调用片段着色器模块针对第i个图块进行片段计算。本公开实施例中,既可以由深度测试模块调用片段着色器模块,也可以由图形处理器中的其他硬件模块调用片段着色器模块。
其中,片段着色器模块被配置为:逐个图块进行片段计算,其中,每个图块内各个子图块的深度测试完成后,片段着色器模块被调用。
本公开实施例中,VRS使能的情况下,图块划分模块划分的图块尺寸不仅可以是基本图块尺寸与VRS像素组尺寸的乘积,还可以是上述约束条件下的其他选择,本公开对此不作限定。
本公开实施例中,子图块尺寸不仅可以说基本图块尺寸,还可以是上述约束条件下的其他选择,本公开对此不作限定。
本公开实施例中,子图块划分的功能可以由深度测试模块实现,也可以由图块划分模块实现,当然还可以由其他模块实现,本公开对此不作限定。
若由深度测试模块划分子图块,那么,深度测试模块可以被配置为:将各个图块划分为多个子图块。
将各个图块划分为多个子图块,具体是指在覆盖图块的图元中,确定覆盖各个子图块的图元。其具体实现方式可以参照图块划分的实现方式,此处不再赘述。
子图块的划分结果可以在单独的数据结构中保存,其数据结构可以参照图块划分结果的数据结构。但与图块划分结果的数据结构可能存在以下不同:在子图块的划分结果中标记子图块与图块的关联关系。本公开不对关联关系的具体标记方式进行限定。例如,每个子图块的划分结果中包括子图块标识,该子图块标识中通过至少一个标识位标记该子图块所属的图块。又例如,在每个图块的最后一个子图块的划分结果中标记图块结束。当然,子图块划分结果的数据结构中也可以不标记上述关联关系,那么,深度测试模块可以通过图块划分结果与子图块划分结果的比对来确认一个图块的深度测试结束,或者根据读取次数确认一个图块的深度测试结束,本公开对此不作限定。
子图块的划分结果也可以保存在图块划分结果中。也就是说,在每个图块的图块划分结果中标记子图块划分结果。本公开不对子图块划分结果的标记方式进行限定。每个图块的图块划分结果包括图块标识和覆盖图块的图元索引,作为举例而非限定,可以增加每个图元的图元索引对应的标识信息,该标识信息包括被该图元覆盖的子图块的子图块标记。
若由图块划分模块划分子图块,那么,图块划分模块还被配置为:将各个图块划分为多个子图块。其具体实现方式可以参照上述实施例的描述,此处不再赘述。
如上所述,子图块的划分结果可以在单独的数据结构中保存,也可以保存在图块划分结果中,其具体实现方式可以参照上述实施例的描述,此处不再赘述。
若由图块划分模块划分子图块,图块划分和子图块划分可以在同一处理过程中完成。作为举例而非限定:图块划分模块确定覆盖各个子图块的图元,这一过程实际上既实现了子图块的划分,也实现了图块的划分。
在上述任意子图块划分的实施例中,若图块的尺寸为基本图块尺寸与VRS像素组尺寸的乘积,作为举例而非限定,分块规则是以基本图块尺寸为粒度进行子图块的划分。若图块的尺寸小于基本图块尺寸与VRS像素组尺寸的乘积,作为举例而非限定,分块规则是将图块均分为N个子图块。
在上述任一图形处理器实施例的基础上,片段着色器模块可以被配置为:对同一VRS像素组中的像素进行一次片段计算。
在此基础上,可选的,片段着色器对应的几何缓冲区中仅对同一VRS像素组保存一个片段计算结果。
本公开实施例还提供一种图形处理系统,该图形处理系统包括上述任一实施例中所述的图形处理器。
本公开实施例中,图形处理系统的产品形态可以为SOC(System on Chip,片上系统)芯片。
本公开实施例中的图形处理器系统可以是单die(晶片)SOC芯片,也可以是多die互联的SOC芯片。
下面以一个die为例,对本公开提供的图形处理系统的架构及工作原理进行说明。
在图2所示的一个实施例中,单die的图形处理系统包括GPU核,该GPU核即上述的图形处理器。
GPU核用来处理绘图的指令,根据绘图指令,执行图像渲染的Pipeline,还可以用来执行其他运算指令。GPU核中进一步包括:计算单元,用于执行着色器编译后的指令,属于可编程模块,由大量的ALU组成;缓存(Cache),用于GPU核数据的缓存,以减少对内存的访问;光栅化模块,3D渲染管线的一个固定的阶段;图块划分(Tilling)模块,TBR和TBDR GPU架构中对一帧进行图块划分处理;裁剪模块,3D渲染管线的一个固定的阶段,裁剪掉观察范围外,或者背面不显示的图元;后处理模块,用于对画完的图进行缩放,裁剪,旋转等操作;微核(Micro core),用于GPU核上各个管线硬件模块之间的调度,或者用于多GPU核的任务调度。
GPU核连接到片上网络。其中,片上网络用于图形处理系统上各个主(master)和从(salve)之间的数据交换,本实施例中,片上网络包括配置总线、数据通信网络、通信总线等等。
如图2所示,图形处理系统还可以包括:
通用DMA(Direct Memory Access,直接存储器访问),用于执行主机端到图形处理系统内存(例如显卡内存)之间的数据搬移,例如,通过DMA将3D画图的顶点(vertex)数据从主机端搬到图形处理系统内存;
PCIe控制器,用于和主机通信的接口,实现PCIe协议,使图形处理系统通过PCIe接口连接到主机上,主机上运行了图形API以及显卡的驱动等程序;
应用处理器,用于图形处理系统上各个模块任务的调度,例如GPU渲染完一帧图后通知应用处理器,应用处理器再启动显示控制器将GPU画完的图显示到屏幕上;
内存控制器,用于连接内存设备,用于保存SOC上的数据;
显示控制器,控制将内存里的frame buffer以显示接口(HDMI,DP等)输出到显示器上;
视频解码,可以将主机硬盘上的编码的视频解码成能显示的画面;
视频编码,可以将主机硬盘上原始的视频码流编码成指定的格式返回给主机。
基于图2所示的图形处理系统架构,在一个实施例中,图形渲染过程如下:
主机的图形API(实际应用中,对于移动端的图形处理系统,也可以由应用处理器上的软件)向SOC芯片发送绘图指令,要求对图像帧进行渲染。
其中,图像帧中包括至少一个物体。
通用DMA将图像帧中各个物体的顶点坐标信息从主机端搬运至图形处理系统内存。
GPU核的计算单元获取上述绘图指令后,对该绘图指令进行译码。
GPU核的顶点着色器(由计算单元实现其功能)从系统内存中获取图像帧中各个物体的顶点坐标信息,并将物体的顶点坐标信息传输给几何着色器(由计算单元实现其功能),几何着色器将物体顶点的3D坐标转换为展开的纹理坐标(即(u,v)坐标)。另外,计算单元还根据物体的顶点坐标信息进行图元装配,从而确定各个图元的顶点坐标。其中,纹理图中顶点坐标对应的纹理坐标处的取值为顶点颜色信息。
图元的顶点坐标信息和顶点纹理坐标被保存到图元在系统内存中的数据结构中。
几何处理结束后,GPU核中的图块划分模块识别VRS是否使能,若VRS未使能,按照基本图块尺寸对图像帧中的图元进行图块划分处理,如果VRS使能,按照扩展图块尺寸对图像帧中的图元进行图块划分处理。其中,扩展图块尺寸为基本图块尺寸与VRS像素组尺寸的乘积。图块划分模块将图块划分结果保存至图块缓冲区,每个图块的图块划分结果包括图块标识和覆盖图块的图元的图元索引。
图块划分结束后,光栅化模块进行光栅化处理。光栅化模块逐个图块进行处理,每次从图块缓冲区读取覆盖当前图块的图元的图元索引;光栅化模块通过图元索引读取该图元的图元信息,并利用该图元的图元信息进行像素覆盖测试,以确定该图元覆盖的像素,进而通过插值计算确定该图元覆盖的像素对应的纹理坐标,然后进行至少一项像素测试,以确定像素的可见性(作为举例而非限定,像素测试可以包括深度测试、模板测试等)。
其中,光栅化模块进行深度测试之前,按照基本图块尺寸将各个图块划分为多个子图块,并在每个图块的图块划分结果中标记子图块划分结果。然后,光栅化模块根据子图块划分结果,每次从内存中加载一个子图块的数据到深度缓冲区,进行深度测试。
作为举例而非限定,光栅化模块根据图块标识从图块缓冲区中识别当前待处理的图块,并从图块缓冲区中当前图块对应的图元索引中查找当前子图块对应的图元索引;进而根据查找到的图元索引查找图元的图元信息,图元信息中包括图元的深度信息,加载当前子图块对应图元的深度信息。
对一个子图块执行完深度测试结束后,再通知加载另一个子图块的数据。当一个图块中所有子图块的深度测试完成后,调用片段着色器对改图框进行着色计算(即片段计算)。
本公开实施例中,深度缓冲区中保存了一个子图块中所有像素的深度信息,可在深度测试过程中反复读取和更新,知道一个子图块中所有像素深度测试结束。
GPU核的片段着色器(由计算单元实现其功能)对图块内的像素进行着色计算(例如光照计算)。
其中,根据VRS设置的着色速率对一个像素组里像素调用一次片段着色器。片段着色计算的结果保存在几何缓冲区中。
几何缓冲区中并不复制片段着色结果到像素组中的每一个像素,而是对一个像素组只保存一个片段着色的结果。片段着色器也可以读取几何缓冲区中的数据进行计算,直到一个图块中的像素全部渲染完。
本公开实施例还提供一种电子装置,该电子装置包括上述任一实施例中所述的图形处理系统。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为CPU主板。
本公开实施例还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
基于相同的发明构思,本公开实施例还提供一种图形处理方法,采用基于图块的渲染架构,如图3所示,该方法至少包括如下步骤:
步骤301、根据基本图块尺寸和VRS像素组尺寸对图像帧中的图元进行图块划分处理,划分的图块尺寸大于所述基本图块尺寸,但不大于基本图块尺寸与所述VRS像素组尺寸的乘积;
步骤302、逐个图块进行深度测试,且针对每个图块,分多个子图块进行深度测试,每个子图块尺寸受限于深度缓冲区的尺寸;
步骤303、逐个图块进行片段计算,其中,每个图块内各个子图块的深度测试完成后,片段着色器模块被调用。
可选的,划分的图块尺寸为基本图块尺寸与VRS像素组尺寸的乘积。
可选的,子图块尺寸为基本图块尺寸。
在上述任一图形处理方法实施例的基础上,分多个子图块进行深度测试之前,还可以将各个图块划分为多个子图块。
进一步的,在每个图块的图块划分结果中标记子图块划分结果。
在上述任一图形处理方法实施例的基础上,对同一VRS像素组中的像素进行一次片段计算。
在此基础上,可选的,片段着色器对应的几何缓冲区中仅对同一VRS像素组保存一个片段计算结果。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (15)
1.一种图形处理器,采用基于图块的渲染架构,所述图形处理器包括:
图块划分模块,被配置为:根据基本图块尺寸和VRS像素组尺寸对图像帧中的图元进行图块划分处理,划分的图块尺寸为所述基本图块尺寸与所述VRS像素组尺寸的乘积;
深度测试模块,被配置为:逐个图块进行深度测试,且针对每个图块,分多个子图块进行深度测试,每个子图块尺寸为所述基本图块尺寸;
片段着色器模块,被配置为:逐个图块进行片段计算,其中,每个图块内各个子图块的深度测试完成后,所述片段着色器模块被调用。
2.根据权利要求1所述的图形处理器,所述深度测试模块被配置为:将各个图块划分为多个子图块。
3.根据权利要求2所述的图形处理器,所述深度测试模块还被配置为:在每个图块的图块划分结果中标记子图块划分结果。
4.根据权利要求1所述的图形处理器,所述图块划分模块还被配置为:将各个图块划分为多个子图块。
5.根据权利要求4所述的图形处理器,所述图块划分模块还被配置为:分别保存每个图块的图块划分结果,并在每个图块的图块划分结果中标记子图块划分结果。
6.根据权利要求1至5任一项所述的图形处理器,所述片段着色器模块被配置为:对同一VRS像素组中的像素进行一次片段计算。
7.根据权利要求6所述的图形处理器,所述片段着色器对应的几何缓冲区中仅对同一VRS像素组保存一个片段计算结果。
8.一种图形处理系统,包括权利要求1至7任一项所述的图形处理系统。
9.一种电子装置,包括权利要求8所述的系统。
10.一种电子设备,包括权利要求9所述的电子装置。
11.一种图形处理方法,采用基于图块的渲染架构,所述图形处理方法包括:
根据基本图块尺寸和VRS像素组尺寸对图像帧中的图元进行图块划分处理,划分的图块尺寸为所述基本图块尺寸与所述VRS像素组尺寸的乘积;
逐个图块进行深度测试,且针对每个图块,分多个子图块进行深度测试,每个子图块尺寸为所述基本图块尺寸;
逐个图块进行片段计算,其中,每个图块内各个子图块的深度测试完成后,所述片段着色器模块被调用。
12.根据权利要求11所述的方法,所述分多个子图块进行深度测试之前,所述方法还包括:
将各个图块划分为多个子图块。
13.根据权利要求12所述的方法,所述方法还包括:
在每个图块的图块划分结果中标记子图块划分结果。
14.根据权利要求11至13任一项所述的方法,对同一VRS像素组中的像素进行一次片段计算。
15.根据权利要求14所述的方法,片段计算对应的几何缓冲区中仅对同一VRS像素组保存一个片段计算结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210414535.8A CN116957900A (zh) | 2022-04-20 | 2022-04-20 | 图形处理器、系统、电子装置、设备及图形处理方法 |
PCT/CN2023/085937 WO2023202366A1 (zh) | 2022-04-20 | 2023-04-03 | 图形处理器、系统、电子装置、设备及图形处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210414535.8A CN116957900A (zh) | 2022-04-20 | 2022-04-20 | 图形处理器、系统、电子装置、设备及图形处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116957900A true CN116957900A (zh) | 2023-10-27 |
Family
ID=88419074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210414535.8A Pending CN116957900A (zh) | 2022-04-20 | 2022-04-20 | 图形处理器、系统、电子装置、设备及图形处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116957900A (zh) |
WO (1) | WO2023202366A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140347357A1 (en) * | 2013-05-24 | 2014-11-27 | Hong-Yun Kim | Graphic processing unit and tile-based rendering method |
CN106204407A (zh) * | 2014-07-03 | 2016-12-07 | 联发科技股份有限公司 | 图形处理系统及其相关图形处理方法 |
US20170293995A1 (en) * | 2016-04-08 | 2017-10-12 | Qualcomm Incorporated | Per-vertex variable rate shading |
CN110868580A (zh) * | 2018-08-09 | 2020-03-06 | 辉达公司 | 使用可变速率着色的运动自适应渲染 |
CN111275604A (zh) * | 2018-12-04 | 2020-06-12 | 畅想科技有限公司 | 图块区域保护 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152764B2 (en) * | 2015-03-24 | 2018-12-11 | Intel Corporation | Hardware based free lists for multi-rate shader |
US10510185B2 (en) * | 2017-08-25 | 2019-12-17 | Advanced Micro Devices, Inc. | Variable rate shading |
US11158106B2 (en) * | 2019-12-20 | 2021-10-26 | Advanced Micro Devices, Inc. | VRS rate feedback |
-
2022
- 2022-04-20 CN CN202210414535.8A patent/CN116957900A/zh active Pending
-
2023
- 2023-04-03 WO PCT/CN2023/085937 patent/WO2023202366A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140347357A1 (en) * | 2013-05-24 | 2014-11-27 | Hong-Yun Kim | Graphic processing unit and tile-based rendering method |
CN104183005A (zh) * | 2013-05-24 | 2014-12-03 | 三星电子株式会社 | 图形处理单元和基于图块的渲染方法 |
CN106204407A (zh) * | 2014-07-03 | 2016-12-07 | 联发科技股份有限公司 | 图形处理系统及其相关图形处理方法 |
US20170293995A1 (en) * | 2016-04-08 | 2017-10-12 | Qualcomm Incorporated | Per-vertex variable rate shading |
CN110868580A (zh) * | 2018-08-09 | 2020-03-06 | 辉达公司 | 使用可变速率着色的运动自适应渲染 |
CN111275604A (zh) * | 2018-12-04 | 2020-06-12 | 畅想科技有限公司 | 图块区域保护 |
Also Published As
Publication number | Publication date |
---|---|
WO2023202366A1 (zh) | 2023-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101034925B1 (ko) | 텍스쳐 정보를 엔코딩하는 방법 및 장치 | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
US9437040B2 (en) | System, method, and computer program product for implementing anti-aliasing operations using a programmable sample pattern table | |
US9092906B2 (en) | Graphic processor and method of early testing visibility of pixels | |
CN109785417B (zh) | 一种实现OpenGL累积操作的方法及装置 | |
US9230363B2 (en) | System, method, and computer program product for using compression with programmable sample locations | |
JP5684089B2 (ja) | デプスエンジンの動的な再配置を用いたグラフィックシステム | |
US9230362B2 (en) | System, method, and computer program product for using compression with programmable sample locations | |
CN111062858A (zh) | 高效的提前渲染方法、装置及计算机存储介质 | |
CN110675480B (zh) | 用于获取纹理操作的采样位置的方法和装置 | |
CN112801855B (zh) | 基于图元的渲染任务调度的方法、装置及存储介质 | |
CN117058288A (zh) | 图形处理器及方法、多核图形处理系统、电子装置及设备 | |
US11908039B2 (en) | Graphics rendering method and apparatus, and computer-readable storage medium | |
US10192348B2 (en) | Method and apparatus for processing texture | |
WO2017105595A1 (en) | Graphics processor logic for encoding increasing or decreasing values | |
CN116263982B (zh) | 图形处理器、系统、方法、电子装置及设备 | |
WO2023202367A1 (zh) | 图形处理器、系统、装置、设备及方法 | |
US7492373B2 (en) | Reducing memory bandwidth to texture samplers via re-interpolation of texture coordinates | |
CN116957900A (zh) | 图形处理器、系统、电子装置、设备及图形处理方法 | |
CN116263981B (zh) | 图形处理器、系统、装置、设备及方法 | |
CN115880127A (zh) | 一种渲染格式选择方法及其相关设备 | |
WO2023202365A1 (zh) | 图形处理器、系统、装置、设备及方法 | |
US7737988B1 (en) | Using font filtering engines for texture blitting | |
CN116957898A (zh) | 图形处理器、系统、方法、电子装置及电子设备 | |
US7167183B1 (en) | Reorganized anisotropic sampling order |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |