图元数据的装载控制方法、图形处理器、设备及存储介质与流程

文档序号:33520691发布日期:2023-03-22 06:33阅读:44来源:国知局
图元数据的装载控制方法、图形处理器、设备及存储介质与流程

1.本发明涉及图像处理技术领域,尤其涉及一种图元数据的装载控制方法、图形处理器、设备及存储介质。


背景技术:

2.目前图形处理器(graphics processing unit,gpu)图形渲染流水线中,前端着色器(shader)通常包含有顶点着色器(vertex shader,vs)、外壳着色器(hull shader,hs)、域着色器(dominshader,ds)和几何着色器(geometry shader,gs)等,这些前端着色器运算完成后都会输出顶点数据,图元装载器负责把输出顶点流装载成图元顶点流。
3.图元装载器的主要包括两个功能模块,图元装载模块和属性缓存命中测试模块。图元装载模块,用于将顶点流装载得到图元顶点流,之后交由属性缓存命中测试模块对图元顶点流中的每个顶点做属性缓存命中测试,进而,图元装载器最终输出携带有各顶点的属性缓存命中测试结果的图元顶点流。
4.现有技术在将输出顶点流装载得到图元顶点流的过程,是需要对同一顶点进行多次复用的。例如,在图元装载模块将v0,v1,v2与v3这四个输出顶点装载成2个三角形的图元顶点(v0,v1,v2)与(v1,v3,v2)的过程中,v1和v2均被复用了两次,因而在属性缓存命中测试模块中,会对v1和v2分别进行重复的两次属性缓存命中。因此,现有的图元装载机制在图元顶点流中复用顶点较多时,会导致属性缓存命中测试的重复无效次数相应增多,降低了gpu的工作效率;同时,由于属性缓存命中测试模块需要使用图元装载模块输出的图元顶点流才能进行属性缓存命中测试,当顶点数据的处理逻辑较复杂时,图元装载模可能会因为待装载的输入顶点未写入至顶点数据缓冲区而进行长时间的查询等待,此时,图元装载器中的属性缓存命中测试模块也会长时间进入空载状态。


技术实现要素:

5.本发明提供了一种图元数据的装载控制方法、图形处理器、设备及存储介质,以提供一种新的图元装载器工作模式,显著提高gpu的工作效率。
6.第一方面,本发明提供了一种图元数据的装载控制方法,该方法由图形处理器中的图元装载器执行,包括:从所述图形处理器中的线程构造器处获取输出顶点流;对所述输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果,形成携带命中描述信息的扩展顶点流;将所述扩展顶点流装载得到扩展图元顶点流,并将所述扩展图元顶点流发送至所述图形处理器中的顶点数据收集器。
7.第二方面,本发明提供了一种图形处理器,所述图形处理器包括至少一个图元装载器,所述图元装载器包括:输出顶点流获取模块,用于从所述图形处理器中的线程构造器处获取输出顶点
流;扩展顶点流形成模块,用于对所述输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果,形成携带命中描述信息的扩展顶点流;扩展图元顶点流装载模块,用于将所述扩展顶点流装载得到扩展图元顶点流,并将所述扩展图元顶点流发送至所述图形处理器中的顶点数据收集器。
8.第三方面,本发明提供了一种电子设备,所述电子设备包括:至少一个图形处理器;以及与所述至少一个图形处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个图形处理器执行的计算机程序,所述计算机程序被所述至少一个图形处理器执行,以使所述至少一个图形处理器能够执行本发明任一项所述的图元数据的装载控制方法。
9.第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一项所述的图元数据的装载控制方法。
10.本发明的技术方案,图形处理器中的图元装载器在从线程构造器获取输出顶点流后,首先对输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果形成扩展顶点流,之后将扩展顶点流装载得扩展图元顶点流,最终将扩展图元顶点流发送到图形处理器中的顶点数据收集器中进行后续处理,本发明的技术方案通过将属性缓存命中测试过程进行前置,属性缓存命中测试可以直接对输入顶点流中的各顶点进行属性缓存命中测试,这就避免了图元顶点流重复引用输入顶点流中的一个或者多个顶点时,所引入的重复性的属性缓存命中测试,在大大减少属性缓存命中测试的重复无效次数的同时,最大程度的避免了图元装载器中的属性缓存命中测试模块出现空载的情况,提高了gpu的工作效率。
11.应当理解,本部分所描述的内容并非旨在标识本发明的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1是现有技术所实现的一种图元数据的装载控制方法的交互图;图2是现有技术所实现的一种图元顶点装载结果的结构示意图;图3是根据本发明实施例一提供的一种图元数据的装载控制方法的流程图;图4是根据本发明实施例二提供的一种图元数据的装载控制方法的流程图;图5是根据本发明实施例二提供的方法所实现的一种图元数据的装载控制方法的交互图;图6是根据本发明实施例三提供的一种图形处理器的结构示意图;图7是实现本发明实施例的图元数据的装载控制方法的电子设备的结构示意图。
具体实施方式
14.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
15.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
16.为了使本技术领域的人员更好地理解本发明方案,首先将现有技术中顶点数据的完整处理过程进行简单介绍。具体的,如图1所示:在现有技术中,线程构造器在组建得到多个用于计算顶点数据的线程后,通知调度执行器执行各线程,调度执行器在完成各线程的执行后,在通知线程构造器各线程执行完毕的同时,将各线程计算得到的顶点数据存储至顶点缓冲区中匹配的存储地址中。
17.线程构造器在组建各线程时,同时将与各线程匹配的输出顶点以数据流的形式(也即,输出顶点流)提供给图元装载器。其中,线程构造器并不是直接将输出顶点的顶点数据发送至图元装载器,而是将各输出顶点的顶点标识发送给图元装载器,具体的,该顶点标识可以为输出顶点的顶点数据在顶点数据缓冲区的存储地址(vcid,简称为v)。
18.图元装载器在接收到形如:“v1、v2、v3、v4、
……”
的输出顶点流后,首先通过图元装载模块向线程构造器查询输出顶点流中待装载的各输出顶点的顶点数据是否被写入至顶点数据缓冲区,如果没有写入,则继续等待直到待装载的输出顶点被成功写入。之后,该图元装载模块将上述顶点数据做图元装载,例如,如图2所示,可以将v0,v1,v2与v3这四个输出顶点装载成2个三角形的图元顶点(v0,v1,v2)与(v1,v3,v2),上述两个三角形代表了图形处理器所显示图像画面中的一个图像片段。
19.进而,图元装载模块可以在将获取的各输出顶点流转换为图元顶点流后,提供给属性缓存命中测试模块。在属性缓存命中测试模块中保存有几何图元生成器中顶点属性缓冲区缓存有属性信息的各顶点的身份识别信息,例如,vcid。属性缓存命中测试模块在接收到每个图元顶点后,对每个图元顶点中的包括的各顶点进行命中测试,并输出与图元顶点中每个顶点是否命中的信息。在一个具体的例子中,针对形如:(v0,v1,v2)的图元顶点,该属性缓存命中测试模块可以相应输出((v0,命中),(v1,命中),(v2,未命中))的携带属性缓冲命中信息的图元顶点流。
20.图元装载器进而可以将上述携带属性缓冲命中信息的图元顶点流发送至顶点数据收集器,由顶点收集器负责收集装载好的图元顶点流,从顶点数据缓冲区读取顶点数据,并把图元顶点流与顶点数据发送到几何图元生成器的图元顶点属性缓冲区,做裁剪,透视分割,生成几何图元,再进入光栅化处理阶段。
21.在现有技术中,传统图元装载器是先把输出顶点流装载成图元顶点流,再对图元顶点流做属性缓存命中测试。从前述分析可知,将顶点流装载得到图元顶点流的过程,是需要对同一顶点进行多次复用的。例如,在图元装载模块将v0,v1,v2与v3这四个输出顶点装载成2个三角形的图元顶点(v0,v1,v2)与(v1,v3,v2)的过程中,v1和v2均被复用了两次,因而在属性缓存命中测试模块中,会分别对v1和v2分别进行重复的两次属性缓存命中。
22.实际上,在图元装载模块进行三角形或者矩形等图元组装时,同一顶点会被多次复用,这会导致做属性缓存命中测试的重复无效次数增多,降低了gpu工作效率;同时当线程运行时间长的时候,顶点数据写入至顶点数据缓冲区的时间也会较长,进而图元装载模块对待装载的各输出顶点的顶点数据写入至顶点数据缓冲区的等待时间也会较长,进而属性缓存命中测试模块会因为等待输入图元顶点流,而频繁出现空载状态。
23.实施例一图3为本发明实施例一提供的一种图元数据的装载控制方法的流程图,本实施例可适用于图形处理器在图像显示场景中进行图元装载的情况,该方法可以由图形处理器的图元装载器执行。如图3所示,该方法包括:s110、从图形处理器中的线程构造器处获取输出顶点流。
24.在本实施例中,输出顶点流由多个输出顶点的顶点标识构成。每当线程构造器组建用于计算输出顶点的顶点数据的线程时,会将线程中各输出顶点的顶点标识加入至顶点数据流中,发送至图元装载器。
25.其中,所述图形处理器可以包括:在个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器;进一步的,gpu为多线程并行运算模式,一个运算任务分解后由线程构造器首先分解成一个一个的线程任务,再发往调度执行器执行相应的运算任务。
26.可选的,所述线程任务可以为基础线程任务;进一步的,基础线程可以理解为图形处理器能够进行运算调度的最小单位,它被包涵在进程之中,是行程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并行多个线程,每条线程并行执行不同的顶点数据计算任务。
27.其中,所述线程构造器在构建一个基础线程时,预分配好当前线程需要的顶点缓冲区,再发往调度执行器去执行;进一步的,所述基础线程完成后,运算结果将被保存在预先分配好的顶点数据缓冲区,因此每个输出顶点在线程被构建时就在顶点数据缓冲区中被预分配到了一个缓冲区地址。进而,可以将上述各缓冲区地址作为顶点标识依次输出给图元装载器。
28.s120、对输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果,形成携带命中描述信息的扩展顶点流。
29.其中,该属性缓存命中测试是指验证顶点的属性信息是否缓存在几何图元生成器的图元顶点属性缓冲区中。若是,则命中缓存的命中描述信息,否则,生成未命中缓存的命中描述信息。
30.在本实施例的一个可选的实施方式中,根据测试结果,形成携带命中描述信息的扩展顶点流,可以包括:将与每个顶点分别对应的命中描述信息,分别组装至输出顶点流的每个顶点中,
得到所述扩展顶点流。
31.其中,假设输出顶点流的数据形式为:v1、v2、v3和v4,则完成属性缓存命中测试的扩展顶点流的数据形式可以为:(v1,命中)、(v2,命中)、(v3,命中)以及(v4,未命中)。也即,在扩展顶点流中,数据仍然是以顶点标识为单位,但是同时携带了每个输出顶点的命中描述信息。其中,所述属性命中测试可以由图元装载器中的属性命中测试模块完成。
32.在本实施例中,区别于现有技术的实现方案,携带顶点标识的输出顶点流在被线程构造器输出后,不再首先输入图元装载器的图元装载模块中,而是直接将输出顶点流输入属性命中测试模块中进行属性命中测试,可以在顶点数据未被写入顶点数据缓冲区的情况下提前以输出顶点为单位进行属性命中测试,充分发挥了图元装载器的性能。
33.可选的,对输出顶点流中的各顶点进行属性缓存命中测试的方式,可以包括:将输出顶点流中的各顶点的顶点标识,分别与预先保存的缓冲顶点标识集合进行匹配,得到与各顶点分别对应的命中描述信息。
34.其中,所述缓冲顶点标识集合与所述图形处理器中的几何图元生成器中的图元顶点属性缓冲区内的缓存内容相匹配。
35.如前所述,该顶点标识可以为顶点在数据缓冲区的唯一地址。其中,可以在属性命中测试模块中预先维护一个缓冲顶点标识集合,该缓冲顶点标识集合中存储有几何图元生成器中的图元顶点属性缓冲区内存储有属性信息的各顶点的顶点标识。例如,如果图元顶点属性缓冲区内缓存有v1、v2和v3的属性信息,则在缓冲顶点标识集合中可以同步记录有{v1、v2、v3}。具体的,属性命中测试模块可以每隔设定的更新时长从该几何图元生成器中请求同步缓冲顶点标识集合。
36.可选的,将输出顶点流中的各顶点的顶点标识,分别与预先保存的缓冲顶点标识集合进行匹配,得到与各顶点分别对应的命中描述信息,具体可以包括:如果当前匹配的第一顶点的顶点标识属于所述缓冲顶点标识集合,则针对所述第一顶点,生成命中缓存的命中描述信息;如果当前匹配的第二顶点的顶点标识不属于所述缓冲顶点标识集合,则针对所述第二顶点,生成未命中缓存的命中描述信息。
37.具体的,将输出顶点流输入属性命中测试模块后,所述属性命中测试模块遍历输出顶点流所携带的所有顶点标识;进一步的,在上述步骤的基础上,若当前遍历的顶点标识属于所述缓冲顶点标识集合,则所述顶点标识可以被标记为第一顶点,并针对所述第一顶点生成命中缓存的命中描述信息,若前遍历的顶点标识不属于所述缓冲顶点标识集合,则所述顶点标识可以被标记为第二顶点,并针对所述第二顶点生成未命中缓存的命中描述信息。
38.s130、将扩展顶点流装载得到扩展图元顶点流,并将扩展图元顶点流发送至图形处理器中的顶点数据收集器。
39.其中,所述扩展图元顶点流可以对已经写入顶点数据缓冲区的扩展顶点流中的输出顶点做图元装载操作得到。进一步的,将扩展顶点流装载得到扩展图元顶点流的操作可以由图元装载器中的图元装载模块实现。
40.其中,所述图元装载模块在获取扩展顶点流后,首先从上述扩展顶点流获取待装载的多个扩展顶点,之后向线程构造器查询各扩展顶点的顶点数据是否被写入顶点数据缓
冲区,若是,则将上述多个扩展顶点装载得到匹配的图元顶点;若否,则等待直至所述待装载的多个扩展顶点均被写入数据缓冲区。
41.其中,所述图元装载模块可以进行图元装载操作。进一步的,所述图元装载操作可以包括:将所述扩展顶点流装载成与设定图元形状匹配的扩展图元顶点流。
42.示例性的,在图元装载模块接收到形如:(v1,命中)、(v2,命中)、(v3,命中)以及(v4,未命中)的扩展顶点流后,可以按照预设的按照预设的三角形图元数据装载规则,组装得到形如((v1,命中)、(v2,命中)、(v3,命中))以及((v1,命中)、(v2,命中)、(v4,未命中))的两个三角形的扩展图元顶点,并将上述两个三角形的扩展图元顶点以扩展图元顶点流的方式输出至顶点数据收集器进行后续处理。
43.本发明实施例的技术方案,图形处理器中的图元装载器在从线程构造器获取输出顶点流后,首先对输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果形成扩展顶点流,之后将扩展顶点流装载得扩展图元顶点流,最终将扩展图元顶点流发送到图形处理器中的顶点数据收集器中进行后续处理,本发明实施例的技术方案通过将属性缓存命中测试过程进行前置,属性缓存命中测试可以直接对输入顶点流中的各顶点进行属性缓存命中测试,这就避免了图元顶点流重复引用输入顶点流中的一个或者多个顶点时,所引入的重复性的属性缓存命中测试,在大大减少属性缓存命中测试的重复无效次数的同时,最大程度的避免了图元装载器中的属性缓存命中测试模块出现空载的情况,提高了gpu的工作效率。
44.实施例二图4为本发明实施例二提供的一种图元数据的装载控制方法的流程图,本实施例为上述实施例步骤的细化。具体为将所述扩展顶点流装载得到扩展图元顶点流,并将所述扩展图元顶点流发送至所述图形处理器中的顶点数据收集器的操作细化为:按照预设的图元数据装载规则,从所述扩展顶点流中获取待图元装载顶点,并检测所述待图元装载顶点是否满足图元数据装载条件;若是,则对所述待图元装载顶点进行图元数据装载,并返回执行按照预设的图元装载规则,从所述扩展顶点流中获取待图元装载顶点的操作,直至成功装载得到与所述图元数据装载规则匹配的扩展图元顶点流;若否,等待预设的时长后,返回执行检测所述待图元装载顶点是否满足图元数据装载条件的操作,直至所述待图元装载顶点满足图元数据装载条件。
45.相应的,如图4所示,该方法包括:s210、从图形处理器中的线程构造器处获取输出顶点流。
46.s220、对输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果,形成携带命中描述信息的扩展顶点流。
47.s230、按照预设的图元数据装载规则,从扩展顶点流中获取待图元装载顶点。
48.其中,待图元装载顶点可以为扩展顶点流中包括的,当前用于组装得到一个图元顶点所需的多个扩展顶点。
49.s240、检测待图元装载顶点是否满足图元数据装载条件:若是,执行s250;若否,执行s260。
50.其中,所述图元数据装载规则可以为预先设定的三角形图元数据装载规则、矩形图元数据装载规则或者六边形图元数据装载规则等规则中的一个或者多个,本实施例对此
并不进行限制。其中,检测所述待图元装载顶点是否可以满足图元数据装载条件,可以包括:获取所述待图元装载顶点的目标顶点标识,并根据所述目标顶点标识构建顶点数据写入查询请求;将所述顶点数据写入查询请求发送至所述线程构造器,以供所述线程构造器查询顶点数据缓冲区中是否成功写入与所述目标顶点标识对应的顶点数据;如果接收到所述线程构造器反馈的成功写入查询结果,则确定满足图元数据装载条件。
51.可选的,所述目标顶点标识可以为所述待图元装载顶点的vcid,由于vcid具有唯一性,则根据所述标顶点标识构建顶点数据写入查询请求也具有唯一性,即一个目标顶点标识有唯一的一个顶点数据与之对应。
52.其中,所述查询请求可以为查询顶点数据缓冲区中是否成功写入与所述目标顶点标识对应的顶点数据的请求命令。
53.其中,所述顶点数据为所述线程构造器构造的线程经过调度执行器执行后得到的具体数据。
54.s250、对待图元装载顶点进行图元数据装载后,执行s270。
55.s260、等待预设的时长后,返回执行s240。
56.其中,所述预设时长由人工设定,可以根据所述图形处理器的性能进行调整,例如可以为1毫秒或5毫秒等。
57.s270、判断是否成功装载得到与所述图元数据装载规则匹配的扩展图元顶点流:若是,执行s280;否则,返回执行s230。
58.s280、将所述扩展图元顶点流发送至所述图形处理器中的顶点数据收集器。
59.本发明实施例的技术方案,通过线程构造器获取输出顶点流,并对输出顶点流中的各顶点进行属性缓存命中测试,根据测试结果形成扩展顶点流,并按照预设的图元数据装载规则检测待图元装载顶点是否满足图元数据装载条件,并根据检测结果最终将扩展图元顶点流发送到图形处理器中的顶点数据收集器,解决了因图形处理器空载或重复命中测试造成的图元装载器效率降低的问题,减少了顶点命中测试的次数,避免了图元装载器出现空载的情况,提高了工作效率。
60.具体应用场景为了更清楚的表述本发明实施例提供的技术方案,图5是本发明实施例二所适用的一种具体应用场景的流程图。
61.与现有技术相比,一方面,本发明实施例中的携带顶点标识的输出顶点流在被线程构造器输出后,不再首先输入图元装载器的图元装载模块中,由图元装载模块向线程构造器查询输出的顶点数据是否被写入顶点数据缓冲区,若没有写入,等待直到要装载的输出顶点数据被写入,而是直接将输出顶点流输入属性命中测试模块中进行属性命中测试。本实施例所提供的方法最大程度的避免了图元装载器中的属性缓存命中测试模块出现空载的情况。
62.另一方面,由于现有技术中的属性缓存命中测试是在图元装载模块将输出顶点流装载为图源顶点流后进行的(如图1所示),将顶点流装载得到图元顶点流的过程,是需要对
同一顶点进行多次复用的。实际上,在图元装载模块进行三角形或者矩形等图元组装时,同一顶点会被多次复用,这会导致做属性缓存命中测试的重复无效次数增多,降低了gpu工作效率.具体的,在本实施例中,如图5所示:线程构造器在组建得到多个用于计算顶点数据的线程后,通知调度执行器执行各线程,调度执行器在完成各线程的执行后,在通知线程构造器各线程执行完毕的同时,将各线程计算得到的顶点数据存储至顶点缓冲区中匹配的存储地址中。
63.线程构造器在组建各线程时,同时将与各线程匹配的输出顶点以数据流的形式(也即,输出顶点流)提供给图元装载器。其中,线程构造器并不是直接将输出顶点的顶点数据发送至图元装载器,而是将各输出顶点的顶点标识发送给图元装载器,具体的,该顶点标识可以为输出顶点的顶点数据在顶点数据缓冲区的存储地址(vcid,简称为v)。
64.图元装载器在接收到形如:“v1、v2、v3、v4、
……”
的输出顶点流后,首先通过属性缓存命中测试模块进行输出顶点流的属性命中测试。在属性缓存命中测试模块中保存有几何图元生成器中顶点属性缓冲区缓存有属性信息的各顶点的身份识别信息,例如,vcid。属性缓存命中测试模块在接收到每个图元顶点后,对每个图元顶点中的包括的各顶点进行命中测试,并输出与图元顶点中每个顶点是否命中的信息。在一个具体的例子中,针对形如:(v0,v1,v2)的图元顶点,该属性缓存命中测试模块可以相应输出((v0,命中),(v1,命中),(v2,未命中))的携带属性缓冲命中信息的扩展顶点流。
65.进而,图元装载器可以将获取的各输出顶点流转换为扩展顶点流后,提供给图元装载模块。图元装载器在接收到形如:“(v0,命中),(v1,命中),(v2,未命中),(v3,命中),
……”
的输出顶点流后,首先通过图元装载模块向线程构造器查询扩展顶点流中待装载的各输出顶点的顶点数据是否被写入至顶点数据缓冲区,如果没有写入,则继续等待直到待装载的输出顶点被成功写入,之后,该图元装载模块将上述顶点数据做图元装载,例如,可以将v0,v1,v2与v3这四个输出顶点装载成2个三角形的图元顶点(v0,命中)、(v1,命中)、(v3,命中))以及((v0,命中)、(v1,命中)、(v2,未命中)),并输出被装载完毕的扩展图元顶点流。需要注意的是,此时被装载的图元顶点均含有属性命中测试信息。
66.图元装载器进而可以将上述携带属性缓冲命中信息的扩展图元顶点流发送至顶点数据收集器,由顶点收集器负责收集装载好的扩展图元顶点流,从顶点数据缓冲区读取顶点数据,并把扩展图元顶点流与顶点数据发送到几何图元生成器的图元顶点属性缓冲区,做裁剪,透视分割,生成几何图元,再进入光栅化处理阶段。
67.实施例三图6为本发明实施例三提供的一种图元装载器的结构示意图,所述图元装载器可以配置于图形处理器中,其中,所述图形处理器包括至少一个图元装载器,所述图元装载器包括:输出顶点流获取模块310、扩展顶点流形成模块320以及扩展图元顶点流装载模块330,其中:输出顶点流获取模块310,用于从所述图形处理器中的线程构造器处获取输出顶点流;扩展顶点流形成模块320,用于对所述输出顶点流中的各顶点进行属性缓存命中
测试,并根据测试结果,形成携带命中描述信息的扩展顶点流;扩展图元顶点流装载模块330,用于将所述扩展顶点流装载得到扩展图元顶点流,并将所述扩展图元顶点流发送至所述图形处理器中的顶点数据收集器。
68.本发明实施例的技术方案,图形处理器中的图元装载器在从线程构造器获取输出顶点流后,首先对输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果形成扩展顶点流,之后将扩展顶点流装载得扩展图元顶点流,最终将扩展图元顶点流发送到图形处理器中的顶点数据收集器中进行后续处理,本发明实施例的技术方案通过将属性缓存命中测试过程进行前置,属性缓存命中测试可以直接对输入顶点流中的各顶点进行属性缓存命中测试,这就避免了图元顶点流重复引用输入顶点流中的一个或者多个顶点时,所引入的重复性的属性缓存命中测试,在大大减少属性缓存命中测试的重复无效次数的同时,最大程度的避免了图元装载器中的属性缓存命中测试模块出现空载的情况,提高了gpu的工作效率。
69.在上述各实施例的基础上,扩展顶点流形成模块320。用于:将所述输出顶点流中的各顶点的顶点标识,分别与预先保存的缓冲顶点标识集合进行匹配,得到与各所述顶点分别对应的命中描述信息;其中,所述缓冲顶点标识集合与所述图形处理器中的几何图元生成器中的图元顶点属性缓冲区内的缓存内容相匹配。
70.在上述各实施例的基础上,扩展顶点流形成模块320,进一步用于:如果当前匹配的第一顶点的顶点标识属于所述缓冲顶点标识集合,则针对所述第一顶点,生成命中缓存的命中描述信息;如果当前匹配的第二顶点的顶点标识不属于所述缓冲顶点标识集合,则针对所述第二顶点,生成未命中缓存的命中描述信息。
71.在上述各实施例的基础上,扩展顶点流形成模块320,还用于:将与每个顶点分别对应的命中描述信息,分别组装至输出顶点流的每个顶点中,得到所述扩展顶点流。
72.在上述各实施例的基础上,扩展图元顶点流装载模块330,用于:按照预设的图元数据装载规则,从所述扩展顶点流中获取待图元装载顶点,并检测所述待图元装载顶点是否满足图元数据装载条件;若是,则对所述待图元装载顶点进行图元数据装载,并返回执行按照预设的图元装载规则,从所述扩展顶点流中获取待图元装载顶点的操作,直至成功装载得到与所述图元数据装载规则匹配的扩展图元顶点流。
73.在上述各实施例的基础上,扩展图元顶点流装载模块330,进一步用于:获取所述待图元装载顶点的目标顶点标识,并根据所述目标顶点标识构建顶点数据写入查询请求;将所述顶点数据写入查询请求发送至所述线程构造器,以供所述线程构造器查询顶点数据缓冲区中是否成功写入与所述目标顶点标识对应的顶点数据;如果接收到所述线程构造器反馈的成功写入查询结果,则确定满足图元数据装载条件。
74.在上述各实施例的基础上,扩展图元顶点流装载模块330,还用于:
若否,等待预设的时长后,返回执行检测所述待图元装载顶点是否满足图元数据装载条件的操作,直至所述待图元装载顶点满足图元数据装载条件。
75.本发明实施例所提供的图形处理器可执行本发明任意实施例所提供的图元数据的装载控制方法,具备执行方法相应的功能模块和有益效果。
76.实施例四图7示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
77.如图7所示,电子设备10包括至少一个图形处理器11,以及与至少一个图形处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个图形处理器执行的计算机程序,图形处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。图形处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
78.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
79.图形处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。图形处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的图形处理器、数字信号图形(dsp)、以及任何适当的图形处理器、控制器、微控制器等。图形处理器11执行上文所描述的各个方法和处理,例如图元数据的装载控制方法。
80.具体的,该图元数据的装载控制方法,具体包括:从所述图形处理器中的线程构造器处获取输出顶点流;对所述输出顶点流中的各顶点进行属性缓存命中测试,并根据测试结果,形成携带命中描述信息的扩展顶点流;将所述扩展顶点流装载得到扩展图元顶点流,并将所述扩展图元顶点流发送至所述图形处理器中的顶点数据收集器。
81.在一些实施例中,图元数据的装载控制方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由图形处理器11执行时,可以执行上文描述的图元数据的装载控制方法的一个或多个步骤。备选地,在其他实施例中,图形处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行图元数据的装载控制方法。
82.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
83.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
84.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
85.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
86.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
87.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
88.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
89.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1