CN113345067A - 一种统一渲染方法、装置和统一渲染引擎 - Google Patents
一种统一渲染方法、装置和统一渲染引擎 Download PDFInfo
- Publication number
- CN113345067A CN113345067A CN202110714615.0A CN202110714615A CN113345067A CN 113345067 A CN113345067 A CN 113345067A CN 202110714615 A CN202110714615 A CN 202110714615A CN 113345067 A CN113345067 A CN 113345067A
- Authority
- CN
- China
- Prior art keywords
- pixel block
- target pixel
- unit
- target
- vertex
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本申请涉及计算机图形学领域,提供了统一渲染方法、装置和统一渲染引擎,以屏蔽复杂场景下渲染时的延迟,满足所述复杂场景下的实时性要求,所述方法包括:当多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色;当多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色,其中,目标像素块的相关信息包括目标像素块的标识和目标像素块包含的有效像素的数量。本申请的技术方案能够有效屏蔽复杂场景下渲染时的延迟,满足所述复杂场景下的实时性要求。
Description
技术领域
本发明涉及计算机图形学领域,特别涉及一种统一渲染方法、装置和统一渲染引擎。
背景技术
随着电子游戏等电子娱乐产品的迅速发展,需要渲染的场景越来越复杂。性能更高的处理器被推向了市场,这些高性能的处理器具有更强的计算能力,一定程度上解决了渲染场景复杂的问题。然而,随着大型电子游戏的推出,场景对渲染的实时性要求提出了更高的要求,仅仅依靠单个的处理器不能满足这些场景下的实时性要求。
发明内容
本申请提供一种统一渲染方法、装置、设备和计算机可读存储介质,以屏蔽复杂场景下渲染时的延迟,满足所述复杂场景下的实时性要求。
一方面,本申请提供了一种统一渲染方法,包括:
当所述多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对所述目标顶点进行着色;
当所述多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对所述目标像素块进行着色,所述目标像素块的相关信息包括所述目标像素块的标识和所述目标像素块包含的有效像素的数量。
另一方面,本申请提供了一种统一渲染装置,所述装置应用于多个流处理器构成的流处理器簇,所述装置包括:
第一渲染模块,用于当所述多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对所述目标顶点进行着色;
第二渲染模块,用于当所述多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对所述目标像素块进行着色,所述目标像素块的相关信息包括所述目标像素块的标识和所述目标像素块包含的有效像素的数量。
第三方面,本申请提供了一种设备,所述设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述统一渲染方法的技术方案的步骤。
第四方面,本申请提供了一种统一渲染引擎,所述统一渲染引擎包括流处理器簇,所述流处理器簇中每个流处理器簇包括上述流处理器。
从上述本申请提供的技术方案可知,一方面,由于多个流处理器构成流处理器簇,而多个流处理器中每个流处理器都可以被配置成顶点着色器或像素着色器,当流处理器被配置成顶点着色器时,可以对目标顶点进行着色,当流处理器被配置成像素着色器时,可以对目标像素块进行着色,因此,本申请提供的技术方案可以屏蔽复杂场景下渲染时的延迟,满足这些复杂场景下的实时性要求;另一方面,利用硬件多线程屏蔽顶点着色器或像素着色器的数据访问延迟,对顶点、像素数据的并行处理效率高,上下文切换代价小,具有较好的并行性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的统一渲染方法的流程图;
图2是本申请实施例提供的统一渲染装置的结构示意图;
图3是本申请实施例提供的流处理器结构示意图;
图4是本申请实施例提供的设备的结构示意图;
图5是本申请实施例提供的流处理器簇以及统一渲染引擎的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请提出了一种统一渲染方法,可应用于多个流处理器构成的流处理器簇。如附图1所示,统一渲染方法主要包括步骤S101和S102,详述如下:
步骤S101:当多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色。
在本申请实施例中,目标顶点就是待着色的顶点,一般是模型的表面被划成多边形(例如,三角形或四边形等)时该多边形的顶点。图形处理流水线访问流处理器的线程管理模块时,可以将多个流处理器中每个流处理器配置成着色器(shader),包括顶点着色器(Vertex Shader,VS)和像素着色器(Pixel Shader,PS)。例如,可以将流处理器的图形处理模式配置为VS,即配置VS处理模式的有关信息,例如,VS的地址、流处理器需要处理的顶点的有效数量和本地存储pingpang模式的当前配置,等等。当多个流处理器中每个流处理器被配置成顶点着色器时,可以根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色。具体地,根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色可以是:将目标顶点的索引值写入流处理器的本地存储单元,当第一硬件线程运行时,从本地存储单元读取目标顶点的索引值,对索引值对应的顶点进行着色。在上述实施例中,将目标顶点的索引值写入流处理器的本地存储单元时,图形处理流水线将顶点的索引值按一定分布规律写入流处理器内32KB的本地存储单元,例如为每个硬件线程分配512字节的空间,每个空间的起始地址写入顶点的索引值,目标顶点相应的第一硬件线程运行起来后,均会先访问自身的线程序号,再去对应的本地存储单元访问目标顶点的索引值,从而处理该索引值对应目标顶点的数据,即对目标顶点进行着色。对目标顶点进行着色之后,该目标顶点的着色器向图形处理流水线发出数据读取指令,以指示图形处理流水线读取已进行着色的目标顶点的数据即读取对目标顶点进行着色后的结果,流处理器向图形处理控制器发出资源释放指令,以指示图形处理控制器释放资源,即,将该目标顶点的着色器对资源占用的状态标记为空闲状态,以将该空闲状态的着色器分配给下一个顶点的着色器。
步骤S102:当多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色,其中,目标像素块的相关信息包括目标像素块的标识和目标像素块包含的有效像素的数量。
在本申请实施例中,目标像素块就是待着色的像素块,一般为矩形状,因此也称该矩形状的像素块为tile。如前所述,图形处理流水线访问流处理器的线程管理模块时,可以将多个流处理器中每个流处理器配置成着色器,包括VS和PS。例如,可以将流处理器的图形处理模式配置为PS,即配置PS处理模式的有关信息,例如,PS的地址、流处理器需要处理的像素的有效数量和本地存储乒乓(pingpang)模式的当前配置、像素块的标识,等等。当多个流处理器中每个流处理器被配置成像素着色器时,可以根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色。具体地,根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色可以是:将目标像素块的相关信息写入流处理器的本地存储单元,当第二硬件线程运行时,从本地存储单元读取目标像素块的相关信息,对目标像素块进行着色。在上述实施例中,将目标像素块的相关信息写入流处理器的本地存储单元时,图形处理流水线将像素块内有效像素信息按一定分布规律写入流处理器内32KB的本地存储单元,例如为每个硬件线程分配512字节的空间,每个空间的起始地址写入像素块的相关信息,目标像素块相应的第二硬件线程运行起来后,均会先访问自身的线程序号,再去对应的本地存储单元访问目标像素块的相关信息,从而处理该目标像素块的数据,即对目标像素块进行着色。对目标像素块进行着色之后之后,该目标像素块的着色器向图形处理流水线发出数据读取指令,以指示图形处理流水线读取已进行着色的目标像素块的数据即读取对目标像素块进行着色后的结果,流处理器向图形处理控制器发出资源释放指令,以指示图形处理控制器释放资源,即,将该目标像素块的着色器对资源占用的状态标记为空闲状态,以将该空闲状态的着色器分配给下一个像素块的着色器。需要说明的是,若遇到访问的数据在流处理器外或需要去纹理单元访问纹理数据时,目标像素块相应的第二硬件线程会自动退出运行状态,释放运行资源,线程管理模块启动新的线程,运行PS,待数据或纹理返回流处理器后,线程管理模块将使相应硬件线程进入随时切换状态,一旦有空闲资源即可重新运行。
从上述附图1示例的统一渲染方法可知,一方面,由于多个流处理器构成流处理器簇,而多个流处理器中每个流处理器都可以被配置成顶点着色器或像素着色器,当流处理器被配置成顶点着色器时,可以对目标顶点进行着色,当流处理器被配置成像素着色器时,可以对目标像素块进行着色,因此,本申请提供的技术方案可以屏蔽复杂场景下渲染时的延迟,满足这些复杂场景下的实时性要求;另一方面,利用硬件多线程屏蔽顶点着色器或像素着色器的数据访问延迟,对顶点、像素数据的并行处理效率高,上下文切换代价小,具有较好的并行性。
请参阅附图2,是本申请实施例提供的一种统一渲染装置,该装置可应用于多个流处理器构成的流处理器簇,该可以包括第一渲染模块201和第二渲染模块202,详述如下:
第一渲染模块201,用于当多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色;
第二渲染模块202,用于当多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色,其中,目标像素块的相关信息包括目标像素块的标识和目标像素块包含的有效像素的数量。
可选地,附图2示例的第一渲染模块201可以包括第一写入单元和第一着色单元,其中:
第一写入单元,用于将目标顶点的索引值写入流处理器的本地存储单元;
第一着色单元,用于当第一硬件线程运行时,从本地存储单元读取目标顶点的索引值,对索引值对应的顶点进行着色。
可选地,上述附图2示例的装置还可以包括第一发送单元和第二发送单元,其中:
第一发送单元,用于第一着色单元对索引值对应的顶点进行着色之后,向图形处理流水线发出数据读取指令,以指示图形处理流水线读取已进行着色的目标顶点的数据;
第二发送单元,用于向图形处理控制器发出资源释放指令,以指示图形处理控制器释放资源。
可选地,附图2示例的第二渲染模块202可以包括第二写入单元和第二着色单,其中:
第二写入单元,用于将目标像素块的相关信息写入流处理器的本地存储单元;
第二着色单元,用于当第二硬件线程运行时,从本地存储单元读取目标像素块的相关信息,对目标像素块进行着色。
可选地,上述附图2示例的装置还可以包括第三发送单元和第四发送单元,其中:
第三发送单元,用于第二着色单元对目标像素块进行着色之后,向图形处理流水线发出数据读取指令,以指示图形处理流水线读取已进行着色的目标像素块的数据;
第四发送单元,用于向图形处理控制器发出资源释放指令,以指示图形处理控制器释放资源。
在上述附图1或附图2示例中,多个流处理器中的每个流处理器包括线程管理控制单元301、指令取得单元302、指令输出单元303、算术逻辑单元304、乘加器305、特定功能单元306、寄存器307、指令缓冲单元308、本地存储单元309和系统总线接口310,如附图3所示,其中:
线程管理控制单元301,用于管理和控制当前已准备好的线程和正在运行的硬件线程;
指令取得单元302,用于在线程管理控制单元301的控制下,通过指令缓冲单元308和系统总线接口310取得指令,并在线程管理控制单元301的控制下将取得的指令输出至指令输出单元303;
指令输出单元303,用于通过系统总线接口310与算术逻辑单元304、乘加器305以及特定功能单元306连接,将取得的指令中操作码和操作数分别根据需要传送到算术逻辑单元304、乘加器305以及特定功能单元306;
算术逻辑单元304、乘加器305和特定功能单元306,用于分别通过系统总线接口310与寄存器307连接,用于将其中状态的变化情况写入寄存器307;
指令缓冲单元308,用于用于缓存来自于指令取得单元302的指令;
本地存储单元309,用于通过系统总线接口310取得数据并存储,以供其他单元访问。
从以上技术方案的描述中可知,一方面,由于多个流处理器构成流处理器簇,而多个流处理器中每个流处理器都可以被配置成顶点着色器或像素着色器,当流处理器被配置成顶点着色器时,可以对目标顶点进行着色,当流处理器被配置成像素着色器时,可以对目标像素块进行着色,因此,本申请提供的技术方案可以屏蔽复杂场景下渲染时的延迟,满足这些复杂场景下的实时性要求;另一方面,利用硬件多线程屏蔽顶点着色器或像素着色器的数据访问延迟,对顶点、像素数据的并行处理效率高,上下文切换代价小,具有较好的并行性。
本申请实施例还提供一种统一渲染引擎,该统一渲染引擎包括流处理器簇,而流处理器簇中每个流处理器簇包括上述实施例的流处理器。例如,统一渲染引擎可以包括1个或多个(例如4个)流处理器簇,而该1个或多个流处理器簇中每个流处理器簇又可以包括1个或多个(例如4个)上述实施例的流处理器,如附图4所示,是统一渲染引擎包括4个流处理器簇,而4个流处理器簇中每个流处理器簇包括4个上述实施例的流处理器的示例。
请参阅图5,是本申请一实施例提供的设备的结构示意图。如图5所示,该实施例的设备5主要包括:处理器50、存储器51以及存储在存储器51中并可在处理器50上运行的计算机程序52,例如统一渲染方法的程序。处理器50执行计算机程序52时实现上述统一渲染方法实施例中的步骤,例如图1所示的步骤S101和S102。或者,处理器50执行计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图2所示第一渲染模块201和第二渲染模块202的功能。
示例性地,统一渲染方法的计算机程序52主要包括:当多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色;当多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色,其中,目标像素块的相关信息包括目标像素块的标识和目标像素块包含的有效像素的数量。计算机程序52可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器51中,并由处理器50执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序52在设备5中的执行过程。例如,计算机程序52可以被分割成第一渲染模块201和第二渲染模块202(虚拟装置中的模块)的功能,各模块具体功能如下:第一渲染模块201,用于当多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色;第二渲染模块202,用于当多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色,其中,目标像素块的相关信息包括目标像素块的标识和目标像素块包含的有效像素的数量。
设备5可包括但不仅限于处理器50、存储器51。本领域技术人员可以理解,图5仅仅是设备5的示例,并不构成对设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器51可以是设备5的内部存储单元,例如设备5的硬盘或内存。存储器51也可以是设备5的外部存储设备,例如设备5上配备的插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器51还可以既包括设备5的内部存储单元也包括外部存储设备。存储器51用于存储计算机程序以及设备所需的其他程序和数据。存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,统一渲染方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,当多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对目标顶点进行着色;当多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对目标像素块进行着色,其中,目标像素块的相关信息包括目标像素块的标识和目标像素块包含的有效像素的数量。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种统一渲染方法,其特征在于,所述方法应用于多个流处理器构成的流处理器簇,所述方法包括:
当所述多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对所述目标顶点进行着色;
当所述多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对所述目标像素块进行着色,所述目标像素块的相关信息包括所述目标像素块的标识和所述目标像素块包含的有效像素的数量。
2.如权利要求1所述统一渲染方法,其特征在于,所述根据目标顶点的索引值运行相应的第一硬件线程,对所述目标顶点进行着色,包括:
将所述目标顶点的索引值写入所述流处理器的本地存储单元;
当所述第一硬件线程运行时,从所述本地存储单元读取所述目标顶点的索引值,对所述索引值对应的顶点进行着色。
3.如权利要求2所述统一渲染方法,其特征在于,所述对所述目标顶点进行着色之后,所述方法还包括:
向图形处理流水线发出数据读取指令,以指示所述图形处理流水线读取所述已进行着色的目标顶点的数据;
向图形处理控制器发出资源释放指令,以指示所述图形处理控制器释放资源。
4.如权利要求1所述统一渲染方法,其特征在于,所述根据目标像素块的相关信息运行相应的第二硬件线程,对所述目标像素块进行着色,包括:
将所述目标像素块的相关信息写入所述流处理器的本地存储单元;
当所述第二硬件线程运行时,从所述本地存储单元读取所述目标像素块的相关信息,对所述目标像素块进行着色。
5.如权利要求4所述统一渲染方法,其特征在于,所述对所述目标像素块进行着色之后,所述方法还包括:
向图形处理流水线发出数据读取指令,以指示所述图形处理流水线读取所述已进行着色的目标像素块的数据;
向图形处理控制器发出资源释放指令,以指示所述图形处理控制器释放资源。
6.一种统一渲染装置,其特征在于,所述装置应用于多个流处理器构成的流处理器簇,所述装置包括:
第一渲染模块,用于当所述多个流处理器中每个流处理器被配置成顶点着色器时,根据目标顶点的索引值运行相应的第一硬件线程,对所述目标顶点进行着色;
第二渲染模块,用于当所述多个流处理器中每个流处理器被配置成像素着色器时,根据目标像素块的相关信息运行相应的第二硬件线程,对所述目标像素块进行着色,所述目标像素块的相关信息包括所述目标像素块的标识和所述目标像素块包含的有效像素的数量。
7.如权利要求6所述的统一渲染装置,其特征在于,所述流处理器包括线程管理控制单元、指令取得单元、指令输出单元、算术逻辑单元、乘加器、特定功能单元、寄存器、指令缓冲单元、本地存储单元和系统总线接口:
所述线程管理控制单元,用于管理和控制当前已准备好的线程和正在运行的硬件线程;
所述指令取得单元,用于在所述线程管理控制单元的控制下,通过所述指令缓冲单元和所述系统总线接口取得指令,并在所述线程管理控制单元的控制下将所述取得的指令输出至所述指令输出单元;
所述指令输出单元,用于通过所述系统总线接口与所述算术逻辑单元、乘加器以及特定功能单元连接,将所述取得的指令中操作码和操作数分别根据需要传送到所述算术逻辑单元、乘加器以及特定功能单元;
所述算术逻辑单元、乘加器和特定功能单元,用于分别通过所述系统总线接口与所述寄存器连接,用于将其中状态的变化情况写入所述寄存器;
所述指令缓冲单元,用于用于缓存来自于所述指令取得单元的指令;
所述本地存储单元,用于通过所述系统总线接口取得数据并存储,以供其他单元访问。
8.一种设备,所述设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任意一项所述方法的步骤。
9.一种统一渲染引擎,其特征在于,所述统一渲染引擎包括流处理器簇,所述流处理器簇中每个流处理器簇包括如权利要求1至6任意一项所述的流处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714615.0A CN113345067B (zh) | 2021-06-25 | 2021-06-25 | 一种统一渲染方法、装置、设备和引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714615.0A CN113345067B (zh) | 2021-06-25 | 2021-06-25 | 一种统一渲染方法、装置、设备和引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113345067A true CN113345067A (zh) | 2021-09-03 |
CN113345067B CN113345067B (zh) | 2023-03-31 |
Family
ID=77478949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110714615.0A Active CN113345067B (zh) | 2021-06-25 | 2021-06-25 | 一种统一渲染方法、装置、设备和引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113345067B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115035228A (zh) * | 2022-06-08 | 2022-09-09 | 北京领为军融科技有限公司 | 通过异步io实时读取卫片文件生成纹理的渲染方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091088A1 (en) * | 2005-10-14 | 2007-04-26 | Via Technologies, Inc. | System and method for managing the computation of graphics shading operations |
US20080122843A1 (en) * | 2006-07-20 | 2008-05-29 | Via Technologies, Inc. | Multi-thread vertex shader, graphics processing unit and flow control method |
CN101271584A (zh) * | 2008-04-11 | 2008-09-24 | 威盛电子股份有限公司 | 可编程图形处理单元计算核心的常量缓冲的方法和系统 |
US20090147017A1 (en) * | 2007-12-06 | 2009-06-11 | Via Technologies, Inc. | Shader Processing Systems and Methods |
US20090189909A1 (en) * | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Cache System |
US20090189896A1 (en) * | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Shader Unit |
US20110261063A1 (en) * | 2010-04-21 | 2011-10-27 | Via Technologies, Inc. | System and Method for Managing the Computation of Graphics Shading Operations |
CN112381918A (zh) * | 2020-12-03 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、计算机设备和存储介质 |
CN112561048A (zh) * | 2017-04-24 | 2021-03-26 | 英特尔公司 | 在推断期间中对图形处理器的协调和增加利用 |
-
2021
- 2021-06-25 CN CN202110714615.0A patent/CN113345067B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070091088A1 (en) * | 2005-10-14 | 2007-04-26 | Via Technologies, Inc. | System and method for managing the computation of graphics shading operations |
US20080122843A1 (en) * | 2006-07-20 | 2008-05-29 | Via Technologies, Inc. | Multi-thread vertex shader, graphics processing unit and flow control method |
US20090147017A1 (en) * | 2007-12-06 | 2009-06-11 | Via Technologies, Inc. | Shader Processing Systems and Methods |
US20090189909A1 (en) * | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Cache System |
US20090189896A1 (en) * | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Shader Unit |
CN101271584A (zh) * | 2008-04-11 | 2008-09-24 | 威盛电子股份有限公司 | 可编程图形处理单元计算核心的常量缓冲的方法和系统 |
US20110261063A1 (en) * | 2010-04-21 | 2011-10-27 | Via Technologies, Inc. | System and Method for Managing the Computation of Graphics Shading Operations |
CN112561048A (zh) * | 2017-04-24 | 2021-03-26 | 英特尔公司 | 在推断期间中对图形处理器的协调和增加利用 |
CN112381918A (zh) * | 2020-12-03 | 2021-02-19 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
许雪贵等: "基于CUDA的高效并行遥感影像处理", 《地理空间信息》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115035228A (zh) * | 2022-06-08 | 2022-09-09 | 北京领为军融科技有限公司 | 通过异步io实时读取卫片文件生成纹理的渲染方法 |
CN115035228B (zh) * | 2022-06-08 | 2023-01-17 | 北京领为军融科技有限公司 | 通过异步io实时读取卫片文件生成纹理的渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113345067B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210049729A1 (en) | Reconfigurable virtual graphics and compute processor pipeline | |
US10217183B2 (en) | System, method, and computer program product for simultaneous execution of compute and graphics workloads | |
CN111813713B (zh) | 数据加速运算处理方法、装置及计算机可读存储介质 | |
WO2021244194A1 (zh) | 寄存器的读写方法、芯片、子系统、寄存器组及终端 | |
US11908039B2 (en) | Graphics rendering method and apparatus, and computer-readable storage medium | |
US20120256922A1 (en) | Multithreaded Processor and Method for Realizing Functions of Central Processing Unit and Graphics Processing Unit | |
KR20070028368A (ko) | 저전력 프로그램가능 프로세서 | |
CA2721396A1 (en) | Programmable streaming processor with mixed precision instruction execution | |
CN112801855B (zh) | 基于图元的渲染任务调度的方法、装置及存储介质 | |
EP3726382A1 (en) | Deep learning thread communication | |
CN105518746A (zh) | 混合请求式图形转换表阴影化 | |
CN111080761B (zh) | 一种渲染任务的调度方法、装置及计算机存储介质 | |
GB2575503A (en) | Scalable parallel tessellation | |
US20230403437A1 (en) | Graphics engine and graphics processing method applicable to player | |
CN111448546A (zh) | 处理单元中的工作负载的精确挂起和恢复 | |
CN117058288A (zh) | 图形处理器及方法、多核图形处理系统、电子装置及设备 | |
CN115543530A (zh) | 一种虚拟机迁移方法以及相关装置 | |
CN113345067B (zh) | 一种统一渲染方法、装置、设备和引擎 | |
CN113342485A (zh) | 任务调度方法、装置、图形处理器、计算机系统及存储介质 | |
US10990445B2 (en) | Hardware resource allocation system for allocating resources to threads | |
CN112801856B (zh) | 数据处理方法和装置 | |
US20210183005A1 (en) | Graphics instruction operands alias | |
CN113994363A (zh) | 用于波隙管理的方法和装置 | |
CN113326093A (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN114218152B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |