CN116894906A - 图形渲染方法和处理器硬件架构 - Google Patents
图形渲染方法和处理器硬件架构 Download PDFInfo
- Publication number
- CN116894906A CN116894906A CN202311162624.9A CN202311162624A CN116894906A CN 116894906 A CN116894906 A CN 116894906A CN 202311162624 A CN202311162624 A CN 202311162624A CN 116894906 A CN116894906 A CN 116894906A
- Authority
- CN
- China
- Prior art keywords
- primitives
- rendering mode
- rendering
- preset number
- cache
- 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.)
- Withdrawn
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 205
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000003111 delayed effect Effects 0.000 claims abstract description 27
- 238000012360 testing method Methods 0.000 claims description 50
- 230000015654 memory Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004040 coloring Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004043 dyeing Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
本申请提供了一种图形渲染方法和处理器硬件架构,图形渲染方法包括:S1,从高速缓存中获取预定数量的图元;S2,根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对预定数量的图元进行批量渲染;S3,循环执行步骤S1和S2,直到完成高速缓存中预先存储的图元的渲染。根据本申请的图形渲染方法和处理器架构能够根据当前批次的图元的覆盖情况生成渲染模式指示信息,自适应地选择图形渲染模式,从而有效提高了图形渲染效率。
Description
技术领域
本申请涉及计算机图像处理领域,具体涉及一种图形渲染方法和处理器硬件架构。
背景技术
图形处理器(GPU)是一种在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。GPU渲染是指使用GPU将三维模型或场景转换成二维图像的过程。在GPU渲染任务中,一帧图像内的绘制任务会出现相互覆盖的情况,被覆盖的像素将不会最终显示在屏幕上,如果GPU对其中所有的像素都执行了像素染色,则会浪费渲染资源,降低渲染效率。
目前GPU主要有两种渲染方式:立即渲染和延迟渲染。立即渲染是指以图元为单位逐个渲染,这种渲染方式在图元覆盖率低的情况下效率高,但重复读写内存带来了巨大的带宽消耗,且在覆盖率高的情况下效率很低。延迟渲染是指先基于屏幕子块(tile)先收集一帧图像所有要绘制的图元,然后合并可见像素后再进行渲染,这种渲染方式在覆盖率高的情况下性能较好,但额外的带宽开销较大。
因此,需要提供一种能够有效提高图形渲染效率的方法。
发明内容
有鉴于此,本申请提供了一种图形渲染方法和处理器硬件架构,用于解决现有技术中的上述技术问题。
根据本申请的一个方面,提供了一种图形渲染方法,该方法包括:
S1,从高速缓存中获取预定数量的图元;
S2,根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对所述预定数量的图元进行批量渲染;
S3,循环执行步骤S1和S2,直到完成高速缓存中预先存储的图元的渲染,
其中,立即渲染模式包括:
对所述预定数量的图元中的每个图元进行光栅化和深度测试处理;
根据所述预定数量的图元的覆盖情况,设定所述渲染模式指示信息,
其中,延迟渲染模式包括:
对所述预定数量的图元进行屏幕子块划分,获得屏幕子块列表;
根据屏幕子块列表中的掩码信息,对屏幕子块中的图元进行光栅化处理并对屏幕子块中的图元中未被覆盖的像素点进行深度测试处理;
根据所述预定数量的图元的覆盖情况,设定所述渲染模式指示信息。
根据本申请的一些实施例,上述方法还包括,在首次执行步骤S2之前,将渲染模式指示信息设定为立即渲染模式和延迟渲染模式中任意一种渲染模式。
根据本申请的一些实施例,延迟渲染模式还包括,在深度测试过程中,通过计数器统计未被覆盖的像素点的数量。
根据本申请的一些实施例,根据预定数量的图元的覆盖情况,设定所述渲染模式指示信息的步骤包括:
若预定数量的图元的覆盖率小于预设阈值,则将所述渲染模式指示信息设定为立即渲染模式;
若预定数量的图元的覆盖率大于或等于预设阈值,则将所述渲染模式指示信息设定为延迟渲染模式。
根据本申请的一些实施例,所述图元是几何处理阶段获得的三角形,并且所述高速缓存为GPU芯片上的高速缓存。
根据本申请的一些实施例,上述方法在步骤S1之前还包括:
将几何处理阶段获得的图元存储到图元缓存中;
从图元缓存中获得预设数量的图元,并将所述预设数量的图元存储到高速缓存中。
根据本申请的一些实施例,所述立即渲染模式和延迟渲染模式还包括对经光栅化和深度测试处理后保留的像素点进行着色处理。
根据本申请的一方面,提供了一种用于图形渲染的处理器硬件架构,该硬件架构包括高速缓存、渲染模式控制单元、屏幕子块处理单元、以及光栅化和深度测试单元,
高速缓存被配置为存储预设数量的图元;
屏幕子块处理单元被配置为从所述高速缓存中获取预定数量的图元,并对预定数量的图元进行屏幕子块划分,获得屏幕子块列表;
光栅化和深度测试单元被配置为根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对所述预定数量的图元进行批量渲染;
其中,在立即渲染模式下,光栅化和深度测试单元被配置为:
对预定数量的图元中的每个图元进行光栅化和深度测试处理;
向渲染模式控制单元提供预定数量的图元的覆盖情况信息,
其中,在延迟渲染模式下,光栅化和深度测试单元被配置为:
根据屏幕子块列表中的掩码信息,对屏幕子块中的图元进行光栅化处理并对屏幕子块中的图元中未被覆盖的像素点进行深度测试处理;
向渲染模式控制单元提供所述预定数量的图元的覆盖情况信息,
并且其中,渲染模式控制单元被配置为根据所述预定数量的图元的覆盖情况信息提供渲染模式指示信息。
根据本申请的一方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现以上描述的方法。
根据本申请的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行以上描述的方法。
根据本申请实施例的图形渲染方法和图形处理器能够根据当前批次的图元的覆盖情况生成渲染模式指示信息,用于从立即渲染模式和延迟渲染模式中选择一种渲染模式对下一个批次的图元进行渲染,从而实现自适应地选择图元的渲染模式。因此,根据本申请实施例的图形渲染方法和图形处理器具备立即渲染与延迟渲染两者的优势,能够有效提高图形渲染效率。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
图1示出了本申请示例性实施例所提供的图形渲染方法的流程图;
图2示出了本申请示例性实施例所提供的图形处理器的硬件架构的结构示意图;
图3示出了本申请示例性实施例所提供的电子设备的结构框图。
具体实施方式
下面将参照附图来详细描述本申请的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,并不作为对本申请及其应用或使用的任何限制。本申请可以以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本申请透彻且完整,并且向本领域技术人员充分表达本申请的范围。
除非上下文另外明确地表明,如果未特意限定要素的数量,则该要素可以是一个也可以是多个。如本说明书使用的,术语“多个/若干/这些”意指两个或更多,并且术语“基于/根据”应解释为“至少部分地基于/根据”。此外,术语“和/或”以及“…中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
参考图1,其示出了本申请示例性实施例所提供的图形渲染方法的流程图。根据本申请的实施例的方法可以由通用的中央处理器(CPU)执行,并且优选地由图形处理器(GPU)执行。由于图形处理器具有专用的硬件架构(例如图2中示出的),因此可以获得更高的执行速度。
如图1所示,本申请示例性实施例所提供的图形渲染方法包括:
S1,从高速缓存中获取预定数量的图元;
S2,根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对所述预定数量的图元进行批量渲染;
S3,循环执行步骤S1和S2,直到完成高速缓存中预先存储的图元的渲染。
在步骤S1之前,几何处理阶段获完成后,装配好的图元被存储到图元缓存中,然后从图元缓存中获得预设数量的图元,并将预设数量的图元存储到高速缓存中。存储到高速缓存中的图元的数量可以根据需要预先设定,例如可以设定为100k个。
在步骤S1中,从高速缓存中获取预定数量的图元。高速缓存例如可以是中央处理器(CPU)或图形处理器(GPU)上的三级缓存(L3 Cache),从而使本申请实施例的方法能够快速获取预定数量的图元。根据本申请实施例的方法对图元进行批量渲染,其中一个批次包括预定数量的图元(例如128个图元)。图元指基本图形元素,在本申请实施例中优选为三角形。
在步骤S2中,根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对所述预定数量的图元进行批量渲染。在首次执行步骤S2之前,可以将渲染模式指示信息设定为立即渲染模式和延迟渲染模式中任意一种渲染模式,用于对从高速缓存中获取的首批图元进行渲染。在一些实施例中,也可以先统计首批图元的覆盖率,若首批的图元的覆盖率大于或等于预设阈值,则将渲染模式指示信息设定为延迟渲染模式;若首批的图元的覆盖率小于预设阈值,则将渲染模式指示信息设定为立即渲染模式。对于从高速缓存中获取的后续批次的图元,可以根据在先前批次的图元渲染中获得的渲染模式指示信息,从立即渲染模式和延迟渲染模式中选取一种渲染模式来对后续批次的图元进行渲染。
在步骤S3中,循环执行步骤S1和S2,直到完成高速缓存中预先存储的图元的渲染。在每轮循环过程中,无论采用立即渲染模式还是延迟渲染模式对图元进行渲染,都会根据在本批次图元的覆盖情况生成渲染模式指示信息,用于指示下一轮循环中采用的渲染模式。因此,根据本申请实施例的方法能够根据当前批次的图元覆盖情况,自适应地调整下一批次的图元的渲染模式,从而提高了图元的渲染效率。循环执行S1和S2步骤的轮数取决于高速缓存中预先存储的图元的数量以及每个批次渲染的图元数量(每批次从高速缓存中获取的图元的预定数量),每轮循环完成一个批次数量的图元的渲染,直到完成高速缓存中预先存储的全部图元的渲染为止。
在根据本申请实施例的方法中,立即渲染模式包括执行以下步骤:对预定数量的图元中的每个图元进行光栅化和深度测试处理;根据预定数量的图元的覆盖情况,设定渲染模式指示信息。
在立即渲染模式下,以图元为单位逐个进行光栅化和深度测试处理。在进行光栅化和深度测试处理过程中,需要统计图元的覆盖情况。图元的覆盖情况例如可以通过图元覆盖率表示。由于在进行深度测试处理过程中,会逐个剔除被覆盖的像素点,因此可以通过计数器统计被剔除的像素点(即被覆盖的像素点)或未被剔除的像素点(即未被覆盖的像素点)的数量,然而计算被剔除的像素点占总像素点个数的比例,即可估算出该批次图元的覆盖率。另外,也可以根据被剔除的像素点与图元的关系,利用计数器统计未被覆盖的图元数量或被覆盖的图元数量,将被覆盖的图元数量除以一个批次的图元数量的总数,即可准确得到该批次图元的覆盖率。当图元覆盖率较低的情况下,立即渲染模式的渲染效率较高,而当图元覆盖率较高时,立即渲染模式的渲染效率较低。本申请实施例的方法根据当前批次图元的覆盖率,设定渲染模式指示信息,用于指示下一批次的图元的渲染模式,从而使确保下一批次的图元能够以适当的渲染模式进行渲染。
在根据本申请实施例的方法中,延迟渲染模式包括执行以下步骤:对预定数量的图元进行屏幕子块划分,获得屏幕子块列表;根据屏幕子块列表中的掩码(mask)信息,对屏幕子块中的图元进行光栅化处理并对屏幕子块中的图元中未被覆盖的像素点进行深度测试处理;根据预定数量的图元中未被覆盖的图元数量,设定渲染模式指示信息。
在延迟渲染模式下,首先从高速缓存中取出128个图元,将其参数存入缓存的指定位置。然后以该128个图元为一组,生成屏幕子块列表,并将其存入屏幕子块列表缓存中。最后,启动根据屏幕子块列表中的掩码信息,获取未被覆盖的图元的参数,并对未经覆盖的图元进行光栅化和深度测试处理。掩码信息用来标识哪些屏幕子块中有图元或部分图元,哪些没有。光栅化单元可以根据掩码信息,处理各屏幕子块中包括的图元。在对图元进行光栅化处理之后,深度测试单元可以根据屏幕子块中的图元中像素点的深度值数据,对屏幕子块中的图元中像素点中未被覆盖的像素点进行深度测试,而不必对全部的像素点进行深度测试,从而提高了图形渲染效率。
在进行光栅化和深度测试处理过程中,需要统计图元的覆盖情况。图元的覆盖情况例如可以通过图元覆盖率表示。由于在进行深度测试处理过程中,对未被覆盖的像素点进行了处理而未对被覆盖的像素点进行处理(即可以仅对未被覆盖的像素点进行深度测试处理),因此可以通过计数器统计被覆盖的像素点或未被覆盖的像素点的数量,计算被覆盖的像素点的数量占总像素点的数量的比例,即可估算出图元的覆盖情况。在一些实施例中,也可以根据被覆盖的像素点与图元的关系,利用计数器统计未被覆盖的图元数量或被覆盖的图元数量,将被覆盖的图元数量除以一个批次的图元数量的总数,即可准确得到该批次图元的覆盖率。当图元覆盖率较低的情况下,延迟渲染模式的渲染效率较低,而当图元覆盖率较高时,延迟渲染模式的渲染效率较高。本申请实施例的方法根据当前批次图元的覆盖率,设定渲染模式指示信息,用于指示下一批次的图元的渲染模式,从而使确保下一批次的图元能够以适当的渲染模式进行渲染。
在立即渲染模式和延迟渲染模式中,在光栅化和深度测试处理之后,还包括对经光栅化和深度测试处理的图元进行后续的处理,例如着色处理。着色处理的对象是经经光栅化和深度测试处理后保留的像素点。
在一些实施例中,根据预定数量的图元(即一个批次的图元)的覆盖情况,设定渲染模式指示信息的步骤具体包括:
若预定数量的图元的覆盖率小于预设阈值,则将所述渲染模式指示信息设定为立即渲染模式;
若预定数量的图元的覆盖率大于或等于预设阈值,则将所述渲染模式指示信息设定为延迟渲染模式。
当某一批次的图元的覆盖率较低时,由于覆盖的图元较少,需要进行渲染的图元的比例较大,因此采用立即渲染模式可以有效避免延迟渲染模式下屏幕子块处理消耗计算资源和带宽,从而提高了图元的渲染效率。当一个批次的图元的覆盖率较高时,采用延迟渲染模式可以有效避免立即渲染模式下对被覆盖的图元(或像素点)进行不必要的渲染所消耗的资源和带宽,从而提高了图元的渲染效率。
参考图2,其示出了本申请示例性实施例的一种用于图形渲染的处理器硬件架构。该处理硬件架构典型地用于图形处理器(GPU)。
如图2所示,该硬件架构主要包括:包括高速缓存、渲染模式控制单元、屏幕子块处理单元、以及光栅化和深度测试单元。高速缓存被配置为存储预设数量的图元。屏幕子块处理单元被配置为从所述高速缓存中获取预定数量的图元,并对预定数量的图元进行屏幕子块划分,获得屏幕子块列表。光栅化和深度测试单元被配置为根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对预定数量的图元进行批量渲染
根据本申请实施例的处理器硬件架构,在立即渲染模式下,所述光栅化和深度测试单元被配置为:对预定数量的图元中的每个图元进行光栅化和深度测试处理;向渲染模式控制单元提供所述预定数量的图元的覆盖情况信息。
根据本申请实施例的处理器硬件架构,在延迟渲染模式下,光栅化和深度测试单元被配置为:根据屏幕子块列表中的掩码信息,对预定数量的图元中未被覆盖的图元进行光栅化处理并对屏幕子块中的图元中未被覆盖的像素点进行深度测试处理;向渲染模式控制单元提供预定数量的图元的覆盖情况信息。
根据本申请实施例的处理器硬件架构,渲染模式控制单元被配置为根据预定数量的图元的覆盖情况信息提供渲染模式指示信息。
图2中示出的根据本申请实施例的处理器硬件架构能够执行根据本申请实施例的图形渲染方法。以下将对图2示出的处理器硬件架构进行详细描述。
根据本实施例的处理器硬件架构的几何着色单元和图元装配单元用于进行几何处理。在几何处理完成后,装配好的图元(例如三角形)被存储到图元缓存中,并通知渲染模式控制单元。渲染模式控制单元将图元信息存入高速缓存,并记录三角形数量。当三角形数量达到预设上限值(例如100k)时,停止接收来自几何处理阶段的三角形,并且启动屏幕子块处理单元。屏幕子块处理单元按照模式控制单元的给出的渲染模式指示信息,决定是否执行屏幕子块划分操作。
如果渲染模式指示信息指示按照延迟渲染模式进行渲染,则需要执行屏幕子块划分操作。在这种情况下,屏幕子块处理单元将三角形按照可配置的屏幕子块数量进行划分。首先,屏幕子块处理单元从高速缓存中取出预定数量(例如128个)的三角形,将其参数存入三角形缓存的指定位置。然后屏幕子块处理单元以该预定数量的三角形为一组,生成屏幕子块列表,并将其存入屏幕子块列表缓存。最后,启动光栅化和深度测试单元,根据屏幕子块列表中的掩码信息,对未被覆盖的图元进行光栅化处理并对屏幕子块中的图元中未被覆盖的像素点进行深度测试处理。
如果渲染模式指示信息指示按照立即渲染模式进行渲染,则不需要执行屏幕子块划分操作。在这种情况下,屏幕子块处理单元将三角形属性信息直接存入三角形缓存,光栅化和深度测试单元直接取出三角形信息进行光栅化和深度测试处理。当光栅化和深度测试单元处理完预定数量的三角形之后,屏幕子块处理从高速缓存中再取出预定数量的三角形来更新三角形缓存,重复上述操作,直到高速缓存中的三角形(例如100k个)全部处理完毕。
光栅化和深度测试单元可以根据立即渲染和延迟渲染两种渲染模式对图元进行渲染。当选择延迟渲染模式时,光栅化和深度测试单元将进行基于屏幕子块的光栅化和深度测试,同时以计数器的形式统计当前批次的三角形的覆盖情况,并反馈给渲染模式控制单元。渲染模式控制单元将三角形的覆盖率与可配置的阈值做比较。如果某一批次的图元的覆盖率大于或等于预设阈值,则说明该批次中的三角形覆盖情况比较严重,则下一个批次将采用延迟渲染模式;如果三角形的覆盖率小于预设阈值,则说明该批次中的三角形覆盖情况较轻微,下个批次的图元将采用立即渲染模式。同样地,当选择立即渲染模式时,光栅化和深度测试单元也会统计并反馈当前批次的三角形的覆盖情况。最终由渲染模式选择单元确定下一个批次的三角形的渲染模式。在执行完光栅化和深度测试处理后,保留下来的像素点将被发送至像素着色单元进行着色处理。
应当理解,图2中所示的处理器硬件架构能够执行本说明书前文描述的方法。由此,上面针对方法描述的操作、特征和优点同样适用于处理器硬件架构及其包括的单元模块;上面针对处理器硬件架构及其包括的单元模块描述的操作、特征和优点同样适用于方法。为了简洁起见,实质相同/相似的操作、特征和优点在此不再赘述。
虽然上面参考特定模块讨论了特定功能,但是应当注意,本申请技术方案中各个单元模块的功能也可以分为多个单元模块进行实现,和/或多个单元模块的至少一些功能可以组合成单个单元模块进行实现。本申请技术方案中特定单元模块执行动作的方式包括,该特定单元模块本身执行动作,或者由该特定单元模块调用或以其他方式访问执行动作(或结合该特定单元模块一起执行动作)。因此,执行动作的特定单元模块可以包括执行动作的该特定单元模块本身和/或该特定单元模块调用或以其他方式访问的、执行动作的另一单元模块。
除上述技术方案外,本申请还提供了一种电子设备,该电子设备包括一个或多个处理器以及用于存储可执行指令存储器。其中,该一个或多个处理器被配置为经由可执行指令来实现上述方法。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,使得处理器执行上述方法。
在本说明书的以下部分,将结合图3来描述前述电子设备、非暂态计算机可读存储介质和计算机程序产品的说明性示例。
图3示出了本申请示例性实施例所提供的电子设备的结构框图。本申请技术方案所提供的系统也可以全部或至少部分地由电子设备900或类似设备或系统实现。
电子设备900可以是各种不同类型的设备。电子设备900的示例包括但不限于:台式计算机、服务器计算机、笔记本电脑或上网本计算机、移动设备、可穿戴设备、娱乐设备、电视或其他显示设备、汽车计算机等。
电子设备900可以包括能够诸如通过系统总线911或其他适当的连接彼此通信的至少一个处理器902、存储器904、(多个)通信接口909、显示设备901、其他输入/输出(I/O)设备910以及一个或更多大容量存储设备903。
处理器902可以是单个处理单元或多个处理单元,所有处理单元可以包括单个或多个计算单元或者多个核心。处理器902可以被实施成一个或更多微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。除了其他能力之外,处理器902可以被配置成获取并且执行存储在存储器904、大容量存储设备903或者其他计算机可读介质中的计算机可读指令,诸如操作系统905的程序代码、应用程序906的程序代码、其他程序907的程序代码等。
存储器904和大容量存储设备903是用于存储指令的计算机可读存储介质的示例,指令由处理器902执行来实施前面所描述的各种功能。举例来说,存储器904一般可以包括易失性存储器和非易失性存储器。此外,大容量存储设备903一般可以包括硬盘驱动器、固态驱动器、可移除介质等。存储器904和大容量存储设备903在本申请中都可以被统称为存储器或计算机可读存储介质,并且可以是能够把计算机可读、处理器可执行程序指令存储为计算机程序代码的非暂态介质,计算机程序代码可以由处理器902作为被配置成实施在本申请的示例中所描述的操作和功能的特定机器来执行。
多个程序可以存储在大容量存储设备903上。这些程序包括操作系统905、一个或多个应用程序906、其他程序907和程序数据908,并且它们可以被加载至存储器904以供执行。这样的应用程序或程序模块的示例可以包括例如用于实现以下部件/功能的计算机程序逻辑(例如,计算机程序代码或指令):本申请所提供的方法(包括该方法的任何合适的步骤)和/或本申请描述的另外的实施例。
虽然在图3中被图示成存储在电子设备900的存储器904中,但是操作系统905、一个或多个应用程序906、其他程序907和程序数据908或者其部分可以使用可由电子设备900访问的任何形式的计算机可读介质来实施。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质,以及能传播能量波的无线介质。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质中的已调制数据信号。调制可以是模拟的、数字的或混合调制技术。
作为示例性说明,计算机可读存储介质可包括以用于存储例如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括但不限于,易失性存储器,例如随机存储器;以及非易失性存储器,例如闪存、各种只读存储器、磁性和铁磁/铁电存储器;以及磁性和光学存储设备;或其它已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
一个或更多通信接口909用于诸如通过网络、直接连接等与其他设备交换数据。这样的通信接口可以是以下各项中的一个或多个:任何类型的网络接口、有线或无线接口、Wi-MAX接口、以太网接口、通用串行总线接口、蜂窝网络接口、Bluetooth接口、NFC接口等。通信接口909可以促进在多种网络和协议类型内的通信,其中包括有线网络和无线网络、因特网等。通信接口909还可以提供与诸如存储阵列、网络附属存储、存储区域网等中的外部存储设备(图中未示出)的通信。
在一些示例中,可以包括诸如监视器之类的显示设备901,以用于向用户显示信息和图像。其他I/O设备910可以是接收来自用户的各种输入并且向用户提供各种输出的设备,并且可以包括触摸输入设备、手势输入设备、摄影机、键盘、遥控器、鼠标、打印机、音频输入/输出设备等。本申请描述的技术方案可以由电子设备900的这些各种配置来支持,并且不限于本申请所描述的技术方案的具体示例。
虽然在附图和前面的描述中已经详细地说明和描述了本申请,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。
因此,本申请所要求保护的范围由权利要求而非上述说明限定,落在权利要求的等同要件的含义和范围内的所有变化均涵盖在本申请的保护范围内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。
Claims (10)
1.一种图形渲染方法,其特征在于,所述方法包括:
S1,从高速缓存中获取预定数量的图元;
S2,根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对所述预定数量的图元进行批量渲染;
S3,循环执行步骤S1和S2,直到完成高速缓存中预先存储的图元的渲染,
其中,立即渲染模式包括:
对所述预定数量的图元中的每个图元进行光栅化和深度测试处理;
根据所述预定数量的图元的覆盖情况,设定所述渲染模式指示信息,
其中,延迟渲染模式包括:
对所述预定数量的图元进行屏幕子块划分,获得屏幕子块列表;
根据屏幕子块列表中的掩码信息,对屏幕子块中的图元进行光栅化处理并对屏幕子块中的图元中未被覆盖的像素点进行深度测试处理;
根据所述预定数量的图元的覆盖情况,设定所述渲染模式指示信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括,在首次执行步骤S2之前,将渲染模式指示信息设定为立即渲染模式和延迟渲染模式中任意一种渲染模式。
3.根据权利要求1所述的方法,其特征在于,所述延迟渲染模式还包括,在深度测试过程中,通过计数器统计未被覆盖的像素点的数量。
4.根据权利要求1所述的方法,其特征在于,根据所述预定数量的图元的覆盖情况,设定所述渲染模式指示信息的步骤包括:
若所述预定数量的图元的覆盖率小于预设阈值,则将所述渲染模式指示信息设定为立即渲染模式;
若所述预定数量的图元的覆盖率大于或等于预设阈值,则将所述渲染模式指示信息设定为延迟渲染模式。
5.根据权利要求1所述的方法,其特征在于,所述图元是几何处理阶段获得的三角形,并且所述高速缓存为GPU芯片上的高速缓存。
6.根据权利要求4所述的方法,其特征在于,所述方法在步骤S1之前还包括:
将几何处理阶段获得的图元存储到图元缓存中;
从图元缓存中获得预设数量的图元,并将所述预设数量的图元存储到高速缓存中。
7.根据权利要求1所述的方法,其特征在于,所述立即渲染模式和延迟渲染模式还包括对经光栅化和深度测试处理后保留的像素点进行着色处理。
8.一种用于图形渲染的处理器硬件架构,其特征在于,所述硬件架构包括高速缓存、渲染模式控制单元、屏幕子块处理单元、以及光栅化和深度测试单元,
所述高速缓存被配置为存储预设数量的图元;
所述屏幕子块处理单元被配置为从所述高速缓存中获取预定数量的图元,并对预定数量的图元进行屏幕子块划分,获得屏幕子块列表;
所述光栅化和深度测试单元被配置为根据渲染模式指示信息,选取立即渲染模式或延迟渲染模式对所述预定数量的图元进行批量渲染;
其中,在立即渲染模式下,所述光栅化和深度测试单元被配置为:
对所述预定数量的图元中的每个图元进行光栅化和深度测试处理;
向所述渲染模式控制单元提供所述预定数量的图元的覆盖情况信息,
其中,在延迟渲染模式下,所述光栅化和深度测试单元被配置为:
根据屏幕子块列表中的掩码信息,对屏幕子块中的图元进行光栅化处理并对屏幕子块中的图元中未被覆盖的像素点进行深度测试处理;
向所述渲染模式控制单元提供所述预定数量的图元的覆盖情况信息,
并且其中,所述渲染模式控制单元被配置为根据所述预定数量的图元的覆盖情况信息提供渲染模式指示信息。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器,其用于存储可执行指令;
所述一个或多个处理器被配置为经由所述可执行指令来实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311162624.9A CN116894906A (zh) | 2023-09-11 | 2023-09-11 | 图形渲染方法和处理器硬件架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311162624.9A CN116894906A (zh) | 2023-09-11 | 2023-09-11 | 图形渲染方法和处理器硬件架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116894906A true CN116894906A (zh) | 2023-10-17 |
Family
ID=88315279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311162624.9A Withdrawn CN116894906A (zh) | 2023-09-11 | 2023-09-11 | 图形渲染方法和处理器硬件架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116894906A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120293519A1 (en) * | 2011-05-16 | 2012-11-22 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
US20130135329A1 (en) * | 2011-11-30 | 2013-05-30 | Qualcomm Incorporated | Switching between direct rendering and binning in graphics processing |
CN103871020A (zh) * | 2012-12-17 | 2014-06-18 | Arm有限公司 | 图形处理系统中的隐藏面消除 |
CN106233326A (zh) * | 2014-04-21 | 2016-12-14 | 高通股份有限公司 | 图形处理中基于显现目标的灵活显现 |
US20180189925A1 (en) * | 2017-01-04 | 2018-07-05 | Samsung Electronics Co., Ltd. | Graphics processing method and system |
CN108711133A (zh) * | 2017-04-01 | 2018-10-26 | 英特尔公司 | 带有早期分层的z的基于图块的立即模式渲染 |
WO2020015808A1 (en) * | 2018-07-16 | 2020-01-23 | Huawei Technologies Co., Ltd. | Primitive z-sorting |
CN115315727A (zh) * | 2020-03-10 | 2022-11-08 | 超威半导体公司 | 图形处理单元渲染模式选择系统 |
CN116670719A (zh) * | 2020-12-27 | 2023-08-29 | 华为技术有限公司 | 一种图形处理方法、装置及电子设备 |
-
2023
- 2023-09-11 CN CN202311162624.9A patent/CN116894906A/zh not_active Withdrawn
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120293519A1 (en) * | 2011-05-16 | 2012-11-22 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
US20130135329A1 (en) * | 2011-11-30 | 2013-05-30 | Qualcomm Incorporated | Switching between direct rendering and binning in graphics processing |
CN103959337A (zh) * | 2011-11-30 | 2014-07-30 | 高通股份有限公司 | 在图形处理中在直接呈现与分格之间的切换 |
CN103871020A (zh) * | 2012-12-17 | 2014-06-18 | Arm有限公司 | 图形处理系统中的隐藏面消除 |
CN106233326A (zh) * | 2014-04-21 | 2016-12-14 | 高通股份有限公司 | 图形处理中基于显现目标的灵活显现 |
US20180189925A1 (en) * | 2017-01-04 | 2018-07-05 | Samsung Electronics Co., Ltd. | Graphics processing method and system |
CN108711133A (zh) * | 2017-04-01 | 2018-10-26 | 英特尔公司 | 带有早期分层的z的基于图块的立即模式渲染 |
WO2020015808A1 (en) * | 2018-07-16 | 2020-01-23 | Huawei Technologies Co., Ltd. | Primitive z-sorting |
CN115315727A (zh) * | 2020-03-10 | 2022-11-08 | 超威半导体公司 | 图形处理单元渲染模式选择系统 |
CN116670719A (zh) * | 2020-12-27 | 2023-08-29 | 华为技术有限公司 | 一种图形处理方法、装置及电子设备 |
Non-Patent Citations (3)
Title |
---|
DAVID CORBALAN-NAVARRO等: "Triangle Dropping: An Occluded-geometry Predictor for Energy-efficient Mobile GPUs", ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, vol. 19, no. 3, pages 39 * |
JAE-HO NAH等: "L-Bench: An Android benchmark set for low-power mobile GPUs", COMPUTERS & GRAPHICS, vol. 61, pages 40 - 49 * |
自由自在: "TBR和TBDR", Retrieved from the Internet <URL:http://zhuanlan.zhihu.com/p/429519726> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11200724B2 (en) | Texture processor based ray tracing acceleration method and system | |
US8587593B2 (en) | Performance analysis during visual creation of graphics images | |
CN110704768B (zh) | 基于图形处理器的网页渲染方法以及装置 | |
GB2558886A (en) | Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space | |
KR20190100194A (ko) | 타일식 아키텍처들에서의 포비티드 렌더링 | |
WO2021248705A1 (zh) | 图像渲染方法、装置、计算机程序和可读介质 | |
CN109785417B (zh) | 一种实现OpenGL累积操作的方法及装置 | |
EP3138006A1 (en) | System and method for unified application programming interface and model | |
US9626733B2 (en) | Data-processing apparatus and operation method thereof | |
CN116185743B (zh) | OpenGL接口的双显卡对比调试方法、装置及介质 | |
KR101431311B1 (ko) | 그래픽 이미지들의 시각적 창작 동안의 성능 분석 | |
CN111080761B (zh) | 一种渲染任务的调度方法、装置及计算机存储介质 | |
KR20150106846A (ko) | 표시 장치에서의 그래픽 렌더링 및 그와 관련된 개선 | |
US20140253413A1 (en) | System, method, and computer program product for representing a group of monitors participating in a desktop spanning environment to an operating system | |
US11195248B2 (en) | Method and apparatus for processing pixel data of a video frame | |
CN115861510A (zh) | 对象渲染方法、装置、电子设备、存储介质及程序产品 | |
KR101286938B1 (ko) | 그래픽스 이미징을 위한 파티셔닝-기반 성능 분석 | |
CN116894906A (zh) | 图形渲染方法和处理器硬件架构 | |
US8988444B2 (en) | System and method for configuring graphics register data and recording medium | |
CN108696670A (zh) | 在成像时进行瓦片重用 | |
CN117952816A (zh) | 多视域图像生成装置和图形处理器 | |
CN117788666A (zh) | 一种计算机特效生成方法及系统 | |
CN113838164A (zh) | 一种网格绘制方法、装置以及存储介质 | |
CN117442974A (zh) | 虚拟对象集群的渲染方法、装置、电子设备和存储介质 | |
CN115294261A (zh) | 图像着色处理方法及相关设备 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20231017 |