CN111080761B - 一种渲染任务的调度方法、装置及计算机存储介质 - Google Patents

一种渲染任务的调度方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN111080761B
CN111080761B CN201911380816.0A CN201911380816A CN111080761B CN 111080761 B CN111080761 B CN 111080761B CN 201911380816 A CN201911380816 A CN 201911380816A CN 111080761 B CN111080761 B CN 111080761B
Authority
CN
China
Prior art keywords
rendering
vertex
vertex data
core array
scheduler
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.)
Active
Application number
CN201911380816.0A
Other languages
English (en)
Other versions
CN111080761A (zh
Inventor
陈成
李洋
樊良辉
张竞丹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Xintong Semiconductor Technology Co ltd
Original Assignee
Xi'an Xintong Semiconductor Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xi'an Xintong Semiconductor Technology Co ltd filed Critical Xi'an Xintong Semiconductor Technology Co ltd
Priority to CN201911380816.0A priority Critical patent/CN111080761B/zh
Publication of CN111080761A publication Critical patent/CN111080761A/zh
Application granted granted Critical
Publication of CN111080761B publication Critical patent/CN111080761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

本发明实施例公开了一种渲染任务的调度方法、装置及计算机存储介质;该方法可以包括:通过调度器将待处理的顶点数据按照GPU中渲染核阵列的处理能力划分为至少一个顶点数据批次;通过所述调度器将首批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染;相应于检测到所述渲染核阵列中的所有渲染核以及固定功能处理单元均处于空闲状态,通过所述调度器将下批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染。

Description

一种渲染任务的调度方法、装置及计算机存储介质
技术领域
本发明实施例涉及图形处理器(GPU,Graphics Processing Unit)技术领域,尤其涉及一种渲染任务的调度方法、装置及计算机存储介质。
背景技术
在统一渲染架构的图形渲染管线中,渲染核阵列中的渲染核可以通过编程以实现不同的着色操作;也就是说,渲染核不仅可以经编程以执行顶点着色操作,还可以经编程以执行片段着色操作。基于上述架构,当渲染核阵列能够执行图形渲染管线中不同着色操作的情况下,就需要对渲染核执行着色操作进行调度,避免出现冲突。
发明内容
有鉴于此,本发明实施例期望提供一种渲染任务的调度方法、装置及计算机存储介质;能够避免死锁现象的发生。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种渲染任务的调度方法,所述方法包括:
通过调度器将待处理的顶点数据按照GPU中渲染核阵列的处理能力划分为至少一个顶点数据批次;通过所述调度器将首批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染;相应于检测到所述渲染核阵列中的所有渲染核以及固定功能处理单元均处于空闲状态,通过所述调度器将下批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染。
第二方面,本发明实施例提供了一种渲染任务的调度装置,所述装置包括:调度器,渲染核阵列;其中,所述调度器,经配置为:将待处理的顶点数据按照所述渲染核阵列的处理能力划分为至少一个顶点数据批次;以及,将首批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染;以及,相应于检测到所述渲染核阵列中的所有渲染核以及固定功能处理单元均处于空闲状态,将下批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染。
第三方面,本发明实施例提供了一种图形处理器GPU,所述GPU包括:第二部分所述的渲染任务的调度装置。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有渲染任务的调度程序,所述渲染任务的调度程序被至少一个处理器执行时实现第一方面所述的渲染任务的调度方法的步骤。
本发明实施例提供了一种渲染任务的调度方法、装置及计算机存储介质;能够避免死锁现象的发生;将需要进行渲染的顶点根据渲染核阵列的处理能力进行分批下发,以避免死锁现象的出现。
附图说明
图1为能够实现本发明实施例的一个或多个方面的计算装置组成框图。
图2为能够实现本发明实施例技术方案的GPU组成框图。
图3为另一种能够实现本发明实施例技术方案的GPU组成框图。
图4为本发明实施例提供的一种渲染任务的调度方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
常规的图形渲染管线是一个逻辑模型,即针对图形依次进行顶点抓取、顶点着色、片段生成、片段着色和片段处理操作,从而完成一个完整的图形渲染过程。而基于统一渲染架构的GPU,由于不再区分顶点着色管线和片段着色管线,而是通过调度渲染核阵列中的渲染核以进行顶点着色操作以及片段着色操作,那么就需要对渲染核进行合适的调度以避免出现死锁的现象。举例来说,在某一时刻,若渲染核阵列中的所有渲染核均被调度为执行顶点着色操作,那么此时由于渲染核的工作量饱和,没有空闲的渲染核对新生成的片段继续进行片段着色操作;与此同时,由于无法进行片段着色操作,通过渲染核完成顶点着色的顶点也无法向外输出,从而造成死锁的现象发生。为了避免死锁现象,常规的方案可以通过改变调度策略以在检测到可能发生死锁时进行合理规避,或者将顶点着色完毕后的顶点存入显存,藉由显存相对较大的存储容量以使得顶点着色完毕后的顶点总是能够输出。但是对于上述两种方案来说,改变调度策略通常需要增加额外的逻辑控制电路,会造成芯片面积的增加,影响调度效率;而将顶点着色完毕后的顶点存入显存则会增加存储读写操作和存储带宽,从而增加了GPU的功耗且降低了渲染效率。本发明实施例期望描述一种渲染任务的调度方案,举例来说,可以将需要进行渲染的顶点根据渲染核阵列的处理能力进行分批下发,以避免死锁现象的出现。
参见图1,其示出了经配置以实现本发明实施例的一个或多个方面的计算装置100,该计算装置100可以包含但不限于以下各项:无线装置、移动或蜂窝电话(包含所谓的智能电话)、个人数字助理(PDA)、视频游戏控制台(包含视频显示器、移动视频游戏装置、移动视频会议单元)、膝上型计算机、桌上型计算机、电视机顶盒、平板计算装置、电子书阅读器、固定或移动媒体播放器,等。在图1的实例中,计算装置2可以包括中央处理单元(CPU)102和经由可以包括存储器桥105的互连路径通信的系统存储器104。存储器桥105可以是例如北桥芯片,经由总线或其他通信路径106(例如超传输(HyperTransport)链路)连接到I/O(输入/输出)桥107。I/O桥107,其可以是例如南桥芯片,从一个或多个用户输入设备108(例如键盘、鼠标、轨迹球、能够作为组成部分并入显示设备110的触摸屏或其他类型的输入装置)接收用户输入并且经由路径106和存储器桥105将所述输入转发到CPU 102。图形处理器112经由总线或其他通信路径113(例如PCI Express、加速图形端口或超传输链路)耦合到存储器桥105;在一个实施例中,GPU 112可以是将像素传递到显示设备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(加速图形端口)、超传输或者任何其他总线或点到点通信协议,并且不同设备间的连接可使用本领域已知的不同协议。
在一个实施例中,GPU 112包含经优化用于图形和视频处理的电路,包括例如视频输出电路。在另一个实施例中,GPU 112包含经优化用于通用处理的电路,同时保留底层(underlying)的计算架构。在又一个实施例中,可以将GPU 112与一个或多个其他系统元件集成起来,诸如存储器桥105、CPU 102以及I/O桥107,以形成片上系统(SoC)。
应该理解,本文所示系统是示例性的,并且变化和修改都是可能的。连接拓扑,包括桥的数量和布置、CPU 102的数量以及GPU 112的数量,可根据需要修改。例如,在一些实施例中,系统存储器104直接连接到CPU 102而不是通过桥,并且其他设备经由存储器桥105和CPU 102与系统存储器104通信。在其他替代性拓扑中,GPU 112连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。而在其他实施例中,I/O桥107和存储器桥105可能被集成到单个芯片上。大量实施例可以包括两个或两个以上的CPU 102以及两个或两个以上的GPU 112。本文所示的特定组件是可选的;例如,任意数量的外插卡或外围设备都可能得到支持。在一些实施例中,开关116被去掉,网络适配器118和外插卡120、121直接连接到I/O桥107。
图2示出了能够实现本发明实施例技术方案的一种GPU 112示意框图,在本发明实施例中,图形存储器204可为GPU 12的一部分。因此,GPU 12可在不使用总线的情况下从图形存储器204读取数据且将数据写入到图形存储器204。换句话说,GPU 112可使用本地存储装置而不是芯片外存储器在本地处理数据。此类图形存储器204可被称作芯片上存储器。这允许GPU 112通过消除GPU 112经由总线读取和写入数据的需要来以更高效的方式操作,其中经由总线操作可经历繁重的总线业务。然而,在一些情况下,GPU 112可不包含单独的存储器,而是经由总线利用系统存储器10。图形存储器204可包含一或多个易失性或非易失性存储器或存储装置,例如,随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、磁性数据媒体或光学存储媒体。
基于此,GPU 112可以经配置以执行与下述相关的各种操作:经由存储器桥105和总线113从CPU 102和/或系统存储器104所提供的图形数据生成像素数据,与本地图形存储器204(例如常用帧缓冲区(buffer))交互以存储和更新像素数据,传递像素数据到显示设备110等等。
在操作中,CPU 102是计算装置100的主处理器,控制和协调其他系统组件的操作。具体地,CPU 102发出控制GPU 112的操作的命令。在一些实施例中,CPU 102为GPU 112写入命令流到数据结构中(在图1或图2中未明确示出),所述数据结构可位于系统存储器104、图形存储器204、或CPU 102和GPU 112都可访问的其他存储位置中。将指向每个数据结构的指针写到入栈缓冲区(pushbuffer)以启动对数据结构中的命令流的处理。GPU 112从一个或多个入栈缓冲区读取命令流,然后相对于CPU 102的操作异步地执行命令。可以为每个入栈缓冲区指定执行优先权以控制对不同入栈缓冲区的调度。
具体如图2中所述,GPU 112包括经由连接到存储器桥105(或者,在一个替代性实施例中,直接连接到CPU 102)的通信路径113与计算装置100的其余部分通信的I/O(输入/输出)单元205。GPU 112到计算装置100的其余部分的连接也可以变化。在一些实施例中,GPU 112可作为外插卡来实现,所述外插卡可被插入到计算机系统100的扩展槽中。在其他实施例中,GPU 112可以和诸如存储器桥105或I/O桥107的总线桥一起集成在单个芯片上。而在其他实施例中,GPU 112的一些或所有元件可以和CPU 102一起集成在单个芯片上。
在一个实施例中,通信路径113可以是PCI-EXPRESS链路,如本领域所知的,在PCI-EXPRESS链路中专用通道被分配到GPU 112。I/O单元205生成用于在通信路径113上传输的数据包(或其他信号),并且还从通信路径113接收所有传入的数据包(或其他信号),将传入的数据包引导到GPU 112的适当组件。例如,可将与处理任务有关的命令引导到调度器207,而可将与存储器操作有关的命令(例如,对图形存储器204的读取或写入)引导到图形存储器204。
在GPU 112中,可以包括渲染核阵列230,该阵列230可以包括C个通用的渲染核208,其中C>1。基于阵列230中的通用渲染核208,GPU112能够并发执行大量的程序任务或计算任务。举例来说,每个渲染核均可被编程以能够执行与种类繁多的程序相关的处理任务,包括但不限于,线性与非线性数据变换,视频和/或音频数据过滤、建模操作(例如,应用物理定律以确定对象的位置、速率和其他属性)、图形渲染操作(例如,曲面细分着色器、顶点着色器、几何着色器、和/或片段着色器程序)等等。
此外,GPU 112中还可以包括固定功能处理单元231,其可包含经硬连线以执行某些功能的硬件。尽管固定功能硬件可经由例如一或多个控制信号而配置以执行不同功能,但所述固定功能硬件通常并不包含能够接收用户编译程序的程序存储器。在一些实例中,固定功能处理单元231可包含例如执行图元装配的处理单元、执行光栅化处理单元和执行片段操作的处理单元。对于执行图元装配的处理单元来说,其能够将通过顶点着色器单元已完成着色的顶点按照原始连接关系还原出图形的网格结构,即图元,从而供后续片元着色器单元进行处理;所述光栅化操作包括转换新图元并将片段输出至片段着色器;而片段操作则包括例如深度测试、裁剪测试、Alpha混合或者透明度混合等,经过上述操作所输出的像素数据可以作为图形数据通过显示设备110进行显示。综合上述渲染核阵列230以及固定功能处理单元231,能够实现一个完整的图形渲染管线的逻辑模型。
此外,渲染核阵列230可以从调度器207接收将要执行的处理任务。调度器207可独立地调度所述任务由GPU 112的资源(比如渲染核阵列230中的一或多个渲染核208)执行。在一个实例中,调度器207可以是硬件处理器。在图2中所示出的实例中,调度器207可包含于GPU 112中。在其它实例中,调度器207还可以是与CPU 102和GPU 112分离的单元。调度器207还可被配置成接收命令和/或操作的流的任何处理器。
调度器207可处理一或多个命令流,其包含调度操作,所述调度操作包含于由GPU112执行的一或多个命令流中。具体地说,调度器207可处理一或多个命令流,且调度所述一或多个命令流中的操作,以由渲染核阵列230执行。在操作中,CPU 102藉由图1中系统存储器104所包括的GPU驱动程序103可向调度器207发送包括待由GPU 12执行的一系列操作的命令流。调度器207可通过I/O单元205接收包括命令流的操作流且可基于命令流中的操作次序依序地处理命令流的操作,且可调度命令流中的操作可以由渲染核阵列230中的一或多个处理单元执行。
而本发明实施例期望能够将需要进行渲染的顶点根据渲染核阵列的处理能力进行分批下发,以避免死锁现象的出现。基于此,以图2所示的GPU 112的组成框图为例,在一些示例中,调度器207可以经配置为将待处理的顶点数据按照GPU 112中渲染核阵列230的处理能力划分为至少一个顶点数据批次;
举例来说,设定渲染核阵列230中包括C个渲染核208,且每个渲染核208可以同时渲染的顶点个数为a,则渲染核阵列230同时可以渲染S=C×a个顶点,此时可以认为渲染核阵列230进行顶点渲染的处理能力峰值为S;此外,设定一帧图像中所包含的顶点总数为T,那么针对该图像来说,待处理的顶点数据数目则也为T,此时,将待处理的顶点数据数目T按照S进行划分,可以得到一个以上的顶点数据批次。比如,若T小于S,那么顶点数据批次的数量为1;若T大于S,那么顶点数据批次的数量为其中,[x]表示不超过实数x的最大整数。
在一些示例中,调度器207可以经配置为将首批次的顶点数据调度至所述渲染核阵列230按照图形渲染管线进行渲染;
举例来说,在获得顶点数据批次之后,调度器207可以逐批次地向渲染核阵列230下发顶点数据以按照图形渲染管线进行渲染,以顶点数据批次大于1为例,首先调度器207将第一批次的S个顶点数据下发至渲染核阵列230后,图形渲染管线会首先进行顶点着色操作,此时,渲染核阵列230工作饱和,所有的渲染核208均在进行顶点着色操作,而该批次的所有顶点此时也正进行顶点着色还未进入下一级的光栅化操作,因此此时不会产生片段,无需渲染核阵列230进行片段着色操作;而随着一些渲染核208完成了顶点着色操作之后,此时完成顶点着色的顶点会输出至下一级光栅化操作以生成片段,而完成顶点着色操作的渲染核208此时同样已经处于空闲状态,所以空闲状态的渲染核208总是能够及时地对生成的片段进行片段着色操作。基于此,通过分批次地向渲染核阵列230下发顶点数据,使得顶点数据能够及时地输出并进行后续片段着色处理,避免死锁现象的发生。
在一些示例中,相应于调度器207检测到所述渲染核阵列230中的所有渲染核208以及固定功能处理单元231均处于空闲状态,调度器207经配置为将下批次的顶点数据调度至所述渲染核阵列230按照图形渲染管线进行渲染。
举例来说,由于调度器207能够独立地调度GPU 112的资源,而具有独立调度能力的前提是能够获知GPU 112的资源状态,因此,在实施过程中,调度器207能够获知渲染核阵列230中各渲染核208以及各固定功能处理单元231的工作状态属于空闲状态或者忙碌状态,当所述渲染核阵列230中的所有渲染核208以及固定功能处理单元231均处于空闲状态,则说明本批次顶点所生成的片段均已处理完毕,而图形渲染管线进行渲染的起点均为顶点着色处理,因此,当在本发明实施例中,调度器207可以下发下一批次顶点至所述渲染核阵列230按照图形渲染管线进行渲染。如上所述,调度器207将所有批次顶点下发至所述渲染核阵列230按照图形渲染管线进行渲染且渲染完毕后,则完成了对所有待处理的顶点数据的图形渲染操作。
在一些示例中,为了能够提高渲染性能,加快数据的读写速率,参见图3,还可以于GPU中设置片上高速缓存232,该片上高速缓存232其经配置为接收由渲染核208写入的已完成顶点着色的顶点数据。在具体实施过程中,片上高速缓存232可以是于GPU中新增的分别与渲染核阵列230以及固定功能处理单元231相连接高速缓冲存储器,也可以为了节省片上面积和资源从图形存储器40中开辟一存储空间。当渲染核阵列230中有渲染核208完成顶点着色后,就能够及时地将顶点进行输出,从而保证渲染核208及时切换到空闲状态以供片段着色操作使用。
综合以上所有示例,在一些示例中,为了保证顶点的有序性以实现顶点重排,在划分顶点批次的过程中,调度器207经配置为针对每批次内的顶点进行排序;相应地,片上高速缓存232也优选为与顶点排序具有相应固定顺序的存储结构,例如符合FIFO的存储结构,如此,每批次内的顶点可按照其顺序写入FIFO结构的片上高速缓存232,当对片上高速缓存232内的顶点进行读取时,读取顺序与顶点在批次内的顺序一致,从而保证了顶点的有序性,实现了顶点的重排序。
举例来说,保持顶点的有序性是GPU渲染的图像正确的前提。比如当前批次的待处理的顶点数据为两个颜色不同并且相互重叠的三角形A和B,其中A为红色,B为绿色,且A覆盖在B上方。如果针对待处理的顶点数据进行渲染的顶点顺序不对,则有可能最终出现三角形B覆盖在三角形A上方。结合上述示例,可以将给当前批次的待处理的顶点数据按顺序进行编号,依次为:V0、V1、V2…Vn。当V0顶点在顶点着色完成后存储于片上高速缓存232的固定地址0X0,V1顶点在顶点着色完成后放在固定地址0X10,以此类推,Vn顶点放在固定地址为0X(n*16)。所以,当片上高速缓存232为FIFO结构,那么通过有序存放实现了待处理的顶点顺序与顶点着色完成后的顶点顺序相一致。
图4为本发明实施例提供的一种渲染任务的调度方法,可应用于前述图2或图3所示的GPU 112中,所述方法可以包括:
S401:通过调度器207将待处理的顶点数据按照GPU 112中渲染核阵列230的处理能力划分为至少一个顶点数据批次;
S402:通过所述调度器207将首批次的顶点数据调度至所述渲染核阵列230按照图形渲染管线进行渲染;
S403:相应于检测到所述渲染核阵列230中的所有渲染核208以及固定功能处理单元231均处于空闲状态,通过所述调度器207将下批次的顶点数据调度至所述渲染核阵列230按照图形渲染管线进行渲染。
在一些示例中,所述通过调度器207将待处理的顶点数据按照GPU 112中渲染核阵列230的处理能力划分为至少一个顶点数据批次,包括:
通过所述调度器207根据所述渲染核阵列230中的渲染核数目C以及每个渲染核208能够渲染的顶点数目a确定所述渲染核阵列230的处理能力峰值为S=C×a个顶点;
通过所述调度器207将待处理的顶点数据数目T与所述S进行比较:
若T小于S,则通过所述调度器207划分所得的顶点数据批次的数量为1;
若T大于S,则通过所述调度器207划分所得的顶点数据批次的数量为其中,[x]表示不超过实数x的最大整数。
在一些示例中,所述通过所述调度器207将首批次的顶点数据调度至所述渲染核阵列230按照图形渲染管线进行渲染之后,所述方法还包括:
所述渲染核阵列230中所有渲染核208均进行顶点着色操作;
当所有渲染核208中的部分渲染核208完成顶点着色操作后,将已完成顶点着色的顶点输出至下一级光栅化操作以生成片段,同时已完成顶点着色操作的部分渲染核208为空闲状态以对光栅化操作所生成的片段进行片段着色操作。
在一些示例中,所述方法还包括:
通过所述调度器207将所有批次顶点下发至所述渲染核阵列230按照图形渲染管线进行渲染且渲染完毕后,完成对所有待处理的顶点数据的图形渲染操作。
在一些示例中,所述方法还包括:通过所述调度器207针对每批次内的顶点进行排序;
通过片上高速缓存232接收由所述渲染核208写入的已完成顶点着色的顶点数据;其中,所述片上高速缓存232为与所述顶点排序具有相应固定顺序的存储结构。
在上述一或多个实例或示例中,所描述的功能可实施于,所描述功能可实施于硬件、软件、固件或其任何组合中。如果实施于软件中,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体可包含计算机数据存储媒体或通信媒体,通信媒体包含促进将计算机程序从一处传递到另一处的任何媒体。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。举例来说且非限制,此类计算机可读媒体可包括U盘、移动硬盘、RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电和微波等无线技术包含于媒体的定义中。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
代码可由一或多个处理器执行,所述一或多个处理器例如是一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。。因此,如本文中所使用的术语“处理器”和“处理单元”可指前述结构或适于实施本文中所描述的技术的任何其它结构中的任一者。另外,在一些方面中,本文中所描述的功能性可在经配置用于编码和解码的专用硬件和/或软件模块内提供,或者并入在组合式编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明实施例的技术可实施于各种各样的装置或设备中,所述装置或设备包含无线手持机、集成电路(IC)或一组IC(即,芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所公开的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了本发明的各种方面。这些和其它实施例在所附权利要求书的范围内。需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种渲染任务的调度方法,其特征在于,所述方法包括:
通过调度器将待处理的顶点数据按照GPU中渲染核阵列的处理能力划分为至少一个顶点数据批次;
通过所述调度器将首批次的顶点数据调度至所述渲染核阵列以按照图形渲染管线进行渲染;
相应于检测到所述渲染核阵列中的所有渲染核以及固定功能处理单元均处于空闲状态,通过所述调度器将下批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染。
2.根据权利要求1所述的调度方法,其特征在于,所述通过调度器将待处理的顶点数据按照GPU中渲染核阵列的处理能力划分为至少一个顶点数据批次,包括:
通过所述调度器根据所述渲染核阵列中的渲染核数目C以及每个渲染核能够渲染的顶点数目a确定所述渲染核阵列的处理能力峰值为S=C×a个顶点;
通过所述调度器将待处理的顶点数据数目T与所述S进行比较:
若T小于S,则通过所述调度器划分所得的顶点数据批次的数量为1;
若T大于S,则通过所述调度器划分所得的顶点数据批次的数量为其中,[x]表示不超过实数x的最大整数。
3.根据权利要求1所述的方法,其特征在于,所述通过所述调度器将首批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染之后,所述方法还包括:
所述渲染核阵列中所有渲染核均进行顶点着色操作;
当所有渲染核中的部分渲染核完成顶点着色操作后,将已完成顶点着色的顶点输出至下一级光栅化操作以生成片段,同时已完成顶点着色操作的部分渲染核为空闲状态以对光栅化操作所生成的片段进行片段着色操作。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述调度器将所有批次顶点下发至所述渲染核阵列按照图形渲染管线进行渲染且渲染完毕后,完成对所有待处理的顶点数据的图形渲染操作。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过所述调度器针对每批次内的顶点进行排序;
通过片上高速缓存接收由所述渲染核写入的已完成顶点着色的顶点数据;其中,所述片上高速缓存为与所述顶点排序具有相应固定顺序的存储结构。
6.一种渲染任务的调度装置,其特征在于,所述装置包括:调度器,渲染核阵列;其中,所述调度器,经配置为:将待处理的顶点数据按照所述渲染核阵列的处理能力划分为至少一个顶点数据批次;以及,
将首批次的顶点数据调度至所述渲染核阵列以按照图形渲染管线进行渲染;以及,
相应于检测到所述渲染核阵列中的所有渲染核以及固定功能处理单元均处于空闲状态,将下批次的顶点数据调度至所述渲染核阵列按照图形渲染管线进行渲染。
7.根据权利要求6所述的装置,其特征在于,所述调度器,经配置为:
根据所述渲染核阵列中的渲染核数目C以及每个渲染核能够渲染的顶点数目a确定所述渲染核阵列的处理能力峰值为S=C×a个顶点;以及,
将待处理的顶点数据数目T与所述S进行比较:以及,
若T小于S,则划分所得的顶点数据批次的数量为1;以及,
若T大于S,则划分所得的顶点数据批次的数量为其中,[x]表示不超过实数x的最大整数。
8.根据权利要求6所述的装置,其特征在于,所述渲染核阵列,包括一个以上渲染核,所述渲染核阵列,经配置为:
所述渲染核阵列中所有渲染核均进行顶点着色操作;
当所有渲染核中的部分渲染核完成顶点着色操作后,将已完成顶点着色的顶点输出至下一级光栅化操作以生成片段,同时已完成顶点着色操作的部分渲染核为空闲状态以对光栅化操作所生成的片段进行片段着色操作。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:片上高速缓存;经配置为接收由渲染核208写入的已完成顶点着色的顶点数据。
10.根据权利要求9所述的装置,其特征在于,所述调度器,经配置为针对每批次内的顶点进行排序;相应地,所述片上高速缓存为与所述顶点排序具有相应固定顺序的存储结构。
11.一种图形处理器GPU,其特征在于,所述GPU包括:权利要求6至10任一项所述的渲染任务的调度装置。
12.一种计算机存储介质,所述计算机存储介质存储有渲染任务的调度程序,所述渲染任务的调度程序被至少一个处理器执行时实现权利要求1至5任一项所述的渲染任务的调度方法的步骤。
CN201911380816.0A 2019-12-27 2019-12-27 一种渲染任务的调度方法、装置及计算机存储介质 Active CN111080761B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911380816.0A CN111080761B (zh) 2019-12-27 2019-12-27 一种渲染任务的调度方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911380816.0A CN111080761B (zh) 2019-12-27 2019-12-27 一种渲染任务的调度方法、装置及计算机存储介质

Publications (2)

Publication Number Publication Date
CN111080761A CN111080761A (zh) 2020-04-28
CN111080761B true CN111080761B (zh) 2023-08-18

Family

ID=70318871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911380816.0A Active CN111080761B (zh) 2019-12-27 2019-12-27 一种渲染任务的调度方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN111080761B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111179151B (zh) * 2020-04-13 2020-07-10 南京芯瞳半导体技术有限公司 一种提高图形渲染效率的方法、装置及计算机存储介质
CN113342485A (zh) * 2021-05-19 2021-09-03 中天恒星(上海)科技有限公司 任务调度方法、装置、图形处理器、计算机系统及存储介质
CN116681575B (zh) * 2023-07-27 2023-12-19 南京砺算科技有限公司 图形处理单元、图形渲染方法、存储介质、终端设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651142A (zh) * 2012-04-16 2012-08-29 深圳超多维光电子有限公司 图像渲染方法和装置
CN110223215A (zh) * 2019-06-10 2019-09-10 西安博图希电子科技有限公司 一种图形渲染管线的控制方法、装置及计算机存储介质
CN110223216A (zh) * 2019-06-11 2019-09-10 西安博图希电子科技有限公司 一种基于并行plb的数据处理方法、装置及计算机存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8933943B2 (en) * 2008-04-30 2015-01-13 Intel Corporation Technique for performing load balancing for parallel rendering
US8325177B2 (en) * 2008-12-29 2012-12-04 Microsoft Corporation Leveraging graphics processors to optimize rendering 2-D objects
KR102646906B1 (ko) * 2016-11-17 2024-03-12 삼성전자주식회사 타일 기반 렌더링 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651142A (zh) * 2012-04-16 2012-08-29 深圳超多维光电子有限公司 图像渲染方法和装置
CN110223215A (zh) * 2019-06-10 2019-09-10 西安博图希电子科技有限公司 一种图形渲染管线的控制方法、装置及计算机存储介质
CN110223216A (zh) * 2019-06-11 2019-09-10 西安博图希电子科技有限公司 一种基于并行plb的数据处理方法、装置及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郭丹 ; 韩俊刚 ; .在多态阵列处理器上实现统一渲染架构.计算机技术与发展.2016,(08),全文. *

Also Published As

Publication number Publication date
CN111080761A (zh) 2020-04-28

Similar Documents

Publication Publication Date Title
US9489763B2 (en) Techniques for setting up and executing draw calls
CN111080761B (zh) 一种渲染任务的调度方法、装置及计算机存储介质
KR101697910B1 (ko) 그래픽 프로세싱을 위한 임의적 제어 지점들에서의 결함-허용 선점 메커니즘
CN111062858A (zh) 高效的提前渲染方法、装置及计算机存储介质
CN112801855B (zh) 基于图元的渲染任务调度的方法、装置及存储介质
KR101552079B1 (ko) 그래픽스 프로세싱 유닛 상의 그래픽스 및 비그래픽스 어플리케이션들의 실행
KR101813429B1 (ko) 공유 데이터 채널들을 가지는 셰이더 파이프라인
KR102006584B1 (ko) 레이트 심도 테스팅과 컨서버티브 심도 테스팅 간의 동적 스위칭
JP2014533382A (ja) グラフィックス処理ユニットにおけるレンダリングモード選択
KR102614847B1 (ko) 그래픽스 프로세싱 유닛 하이브리드 렌더링을 위한 장치 및 방법
US20090122068A1 (en) Intelligent configurable graphics bandwidth modulator
US9280956B2 (en) Graphics memory load mask for graphics processing
EP2057604A1 (en) Parallel physics simulation and graphics processing
CN111080505B (zh) 一种提高图元装配效率的方法、装置及计算机存储介质
US20220036632A1 (en) Post-processing in a memory-system efficient manner
CN103927223B (zh) 用于对图形资源的串行化访问的方法、系统、装置、设备以及存储介质
CN111127299A (zh) 一种加速光栅化遍历的方法、装置及计算机存储介质
CN110928610B (zh) 验证着色器函数的方法、装置及计算机存储介质
CN111383314A (zh) 一种验证着色器函数的方法、装置及计算机存储介质
CN112991143A (zh) 一种图元装配的方法、装置及计算机存储介质
KR102645239B1 (ko) Gpu 캐시를 활용한 다운스케일링을 위한 simo 접근 방식으로의 gpu 커널 최적화
CN110347463B (zh) 图像处理方法、相关设备及计算机存储介质
CN111179403A (zh) 并行生成纹理映射Mipmap图像的方法、装置及计算机存储介质
CN114037795A (zh) 一种不可见像素的剔除方法、装置及存储介质
US9390042B2 (en) System and method for sending arbitrary packet types across a data connector

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
CP03 Change of name, title or address

Address after: Room 301, Building D, Yeda Science and Technology Park, No. 300 Changjiang Road, Yantai Area, China (Shandong) Pilot Free Trade Zone, Yantai City, Shandong Province, 265503

Patentee after: Xi'an Xintong Semiconductor Technology Co.,Ltd.

Address before: Room 21101, 11 / F, unit 2, building 1, Wangdu, No. 3, zhangbayi Road, Zhangba Street office, hi tech Zone, Xi'an City, Shaanxi Province

Patentee before: Xi'an Xintong Semiconductor Technology Co.,Ltd.

CP03 Change of name, title or address