基于SystemC的平面剪裁中GPU几何图元起始标记管理的TLM模型的制作方法

专利2022-06-29  57


本发明属于计算机硬件建模技术领域,具体涉及一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型。



背景技术:

事物级建模方法(transactionlevelmodeling,tlm)是一种高级的数字系统模型化方法,能够在项目的早期阶段快速的构建系统模型,它将模型间的通信细节与函数单元或通信架构的细节分离开来。通信机制被建模成信道,事物请求一般在调用这些信道模型的接口函数时发生,而接口函数封装了信息交换的底层细节。在事物层面上,tlm更强调数据传输的功能本身-数据的内容和传输的起止点,并尽可能少涉及具体实现。

目前我国正在自主研制国产的图形处理器芯片(graphicprocessingunit,gpu),但是由于在此之前国内一直采用国外进口的商用或军用gpu芯片,在gpu芯片自主研制方面缺乏设计经验,需要对gpu芯片的核心技术进行探索研制。

gpu芯片硬件逻辑的规模巨大,从系统架构文档编写到寄存器转换级电路(registertransferlevel,rtl)设计实现,是一个漫长的工程;而且即使rtl设计完成后功能性能等的验证也将需要大量的时间,大幅度增加了整个设计周期以及辅助图形处理器的设计过程,降低了自主研发图形处理器项目的进度及可靠性。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供了一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型。本发明要解决的技术问题通过以下技术方案实现:

本发明实施例提供了一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,包括:几何图元存储单元、图元命令解析单元、第一图元裁剪单元和图元输出控制单元,其中,

所述几何图元存储单元用于存储几何图元中第一图元顶点的图元顶点包;

所述图元命令解析单元用于根据所述图元顶点包中的第一起始标记设置第一裁剪标记;

所述第一图元裁剪单元用于根据平面裁剪时若干所述第一图元顶点形成的基本图元与裁剪平面的相交关系判断所述基本图元中每条第一线段与所述裁剪平面的关系,然后根据每条所述第一线段与所述裁剪平面的关系更新所述第一裁剪标记为第二裁剪标记或保留所述第一裁剪标记,并且当判断所述基本图元中所有所述第一线段未均处理完成时,继续判断所述第一线段与所述裁剪平面的关系;

所述图元输出控制单元用于当判断所述基本图元中所有所述第一线段均处理完成时,根据所述第二裁剪标记设置裁剪所述基本图元后得到的几何图元中第二图元顶点的起始标记信息。

在本发明的一个实施例中,所述图元命令解析单元包括:

图元命令获取单元,用于读取所述第一图元顶点的图元顶点包,并记录所述第一图元顶点的数量;

图元命令检测单元,用于检测所述图元顶点包中的所述第一起始标记和第二起始标记;

裁剪标记设置单元,用于根据所述第一起始标记设置所述第一裁剪标记。

在本发明的一个实施例中,所述图元命令解析单元还包括:

顶点数量判断单元,用于当判断所述第一图元顶点的数量小于所述基本图元的顶点数量时,继续获取所述第一图元顶点的图元顶点包;或者,判断第一图元顶点的数量等于所述基本图元的顶点数量时判断平面裁剪时若干所述第一图元顶点形成的基本图元与裁剪平面的关系。

在本发明的一个实施例中,还包括图元位置判断单元,其中,所述图元位置判断单元包括:

顶点位置判断单元,用于依次判断每个所述第一图元顶点与所述裁剪平面的关系;

组合判断单元,用于将所述基本图元对应的所有所述第一图元顶点与所述裁剪平面的关系进行组合判断,得到所述基本图元与所述裁剪平面的关系。

在本发明的一个实施例中,所述第一图元裁剪单元包括:

线段保留单元,用于当判断所述第一线段与所述裁剪平面的关系为保留时,保留所述第一裁剪标记;

线段丢弃单元,用于当判断所述第一线段与所述裁剪平面的关系为丢弃且所述第一线段的图元顶点包中存在所述第一起始标记时,将所述第一裁剪标记更新为所述第二裁剪标记;

线段相交单元,用于当判断所述第一线段与所述裁剪平面的关系为相交且所述第一线段的图元顶点包中存在所述第一起始标记时,更新所述第一裁剪标记为所述第二裁剪标记,并且当交点为裁剪后第二线段的起点时将所述第一线段的起点包头信息赋值给所述交点,或者当所述交点为所述第二线段的终点时将所述第一线段的终点包头信息赋值给所述交点。

在本发明的一个实施例中,所述图元输出控制单元用于根据所述第二裁剪标记,将裁剪后的几何图元中首个第二图元顶点的起始标记信息设为第一起始标记,并将所述第二裁剪标记更新为第一裁剪标记。

在本发明的一个实施例中,还包括:

第二图元裁剪单元,用于当所述基本图元与所述裁剪平面的关系为丢弃且所述基本图元的图元顶点包中存在所述第一起始标记时,将所述第一裁剪标记更新为第二裁剪标记,并根据第二裁剪标记继续获取第一图元顶点的图元顶点包。

在本发明的一个实施例中,还包括:

第三图元裁剪单元,用于根据所述基本图元与所述裁剪平面的保留关系,保留所述第一裁剪标记并根据所述第一裁剪标记输出所述基本图元。

与现有技术相比,本发明的有益效果:

1、本发明的tlm模型通过事务级建模,能够在芯片设计早期实现对平面剪裁中几何图元起始标记管理算法和架构的验证,并且提供rtl设计后期仿真结果的比对,能够及时发现算法、架构及功能方面的缺陷,为系统架构人员及rtl设计人员提供准确的数据分析;同时其仿真硬件处理快于硬件rtl开发,仿真速度快,实现周期短,大大缩减了gpu的设计周期。

2、本发明的tlm模型解决了因平面裁剪造成的图元顶点起始标记的丢失、变更等问题,使得光栅化阶段进行直线点画操作时图元内部线段的连续性,以及不同图元间点画的独立性。

附图说明

图1为本发明实施例提供的一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型的结构示意图;

图2为本发明实施例提供的一种图元命令解析单元的结构示意图;

图3为本发明实施例提供的另一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型的结构示意图;

图4为本发明实施例提供的一种图元顶点与裁剪平面关系的示意图;

图5为本发明实施例提供的一种基本图元与裁剪平面关系的示意图;

图6为本发明实施例提供的再一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型的结构示意图;

图7为本发明实施例提供的一种基于systemc的平面剪裁中gpu几何图元起始标记管理方法的流程示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

实施例一

请参见图1,图1为本发明实施例提供的一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型的结构示意图。

该tlm模型(tlm微结构)包括几何图元存储单元、图元命令解析单元、第一图元裁剪单元和图元输出控制单元。其中,几何图元存储单元通过tlm端口接收并存储上一阶段输出的第一图元顶点命令,该第一图元顶点命令中包含几何图元中第一图元顶点的图元顶点包。图元命令解析单元用于根据图元顶点包中的第一起始标记设置第一裁剪标记。第一图元裁剪单元用于根据平面裁剪时若干所述第一图元顶点形成的基本图元与裁剪平面的相交关系判断所述基本图元中每条第一线段与所述裁剪平面的关系,然后根据每条所述第一线段与所述裁剪平面的关系更新所述第一裁剪标记为第二裁剪标记或保留所述第一裁剪标记,并且当判断所述基本图元中所有所述第一线段未均处理完成时,继续判断所述第一线段与所述裁剪平面的关系。图元输出控制单元用于当判断所述基本图元中所有所述第一线段均处理完成时,根据所述第二裁剪标记设置裁剪所述基本图元后得到的几何图元中第二图元顶点的起始标记信息。

进一步的,几何图元存储单元、图元命令解析单元、第一图元裁剪单元和图元输出控制单元之间通过tlm端口实现连接,请参见表1,表1对图1中出现的tlm端口进行了说明。具体的,以几何图元存储单元与图元命令解析单元之间的tlm端口为例,几何图元存储单元与图元命令解析单元通过tlm端口相连,主要用于实现存储接收到的应用级图元顶点信息,并与图元命令解析单元通过tlm端口进行数据传输;图元命令解析单元向几何图元存储单元发起获取数据的指令,几何图元存储单元接收到该指令,将数据发送给图元命令解析单元。

表1图1中出现的事务级接口说明

本发明实施例采用事务级接口连接各单元,可以清楚的表明行为发起方、行为接收方和数据流向,从而表明各个单元之间的连接关系及行为关系。

在一个具体实施例中,请参见图2,图2为本发明实施例提供的一种图元命令解析单元的结构示意图。图元命令解析单元包括图元命令获取单元、图元命令检测单元、裁剪标记设置单元和顶点数量判断单元。

图元命令获取单元与几何图元存储单元连接,用于读取图元顶点包,记录第一图元顶点的数量。具体的,设置currentnum用来记录接收的第一图元顶点的数量,并且初始化currentnum为0。一个图元顶点对应一个图元顶点包,每当读取一个图元顶点包,currentnum值加1,也就是当前第一图元顶点的个数加1,即currentnum 。

图元命令检测单元与图元命令获取单元连接,用于检测图元顶点包中的第一起始标记和第二起始标记。具体的,每个图元顶点包均包括该图元顶点的起始标记信息、坐标信息、颜色信息、纹理坐标信息和边界标记信息等;其中,起始标记信息是指该图元顶点是否为几何图元的起点。本实施例中,起始标记信息包括第一起始标记和第二起始标记,第一起始标记表示图元顶点为几何图元的起点,第二起始标记表示图元顶点不是几何图元的起点;例如起始标记信息用psflag表示,第一起始标记可以表示为psflag=1,第二起始标记可以表示为psflag=0。以一条线段为例,线段的一个点为起点,则psflag=1,线段的另一个点为终点,则psflag=0。

裁剪标记设置单元与图元命令检测单元连接,用于根据第一起始标记设置第一裁剪标记。具体的,裁剪标记信息是指在平面裁剪中,该几何图元的起始顶点是否被裁剪掉。若完全保留该几何图元,则用第一裁剪标记表示;若该几何图元被完全裁剪掉或者部分被裁剪掉,且该几何图元中包含起始顶点(即该几何图元的图元顶点包中存在第一起始标记)时,则用第二裁剪标记表示;若该几何图元被完全裁剪掉或者部分被裁剪掉,但是该几何图元中不包含起始顶点,此时不需要对裁剪标记信息进行设置。本实施例中,裁剪标记信息用psflagclipped表示,第一裁剪标记用psflagclipped=0表示,第二裁剪标记用psflagclipped=1表示。以一条线段为例,在平面裁剪中,若该线段被完全保留,则psflagclipped=0,若该线段被部分裁剪掉或者完全裁剪掉且psflag=1时,则psflagclipped=1。

需要说明的是,裁剪标记信息psflagclipped是在平面裁剪过程中引入的变量,表示当前几何图元中的起始顶点是否被裁剪掉。

进一步地,当获取得到第一图元顶点对应的图元顶点包后,解析该图元顶点包,当检测到图元顶点包中psflag=1时,表明该图元顶点为起点,此时,设置psflagclipped=0;当检测到该图元顶点包中psflag=0时,表明该图元顶点不是起点,此时无需设置psflagclipped,直接进行下一步。

顶点数量判断单元连接裁剪标记设置单元和图元命令检测单元,用于判断第一图元顶点的数量即currentnum值小于基本图元的顶点数量时,继续获取第一图元顶点的图元顶点包;或者,判断第一图元顶点的数量即currentnum值等于基本图元的顶点数量时,根据基本图元与裁剪平面的关系更新或保留第一裁剪标记。

具体的,顶点数量判断单元可以在裁剪标记设置单元设置第一裁剪标记即设置psflagclipped=0后判断顶点数量,也可以在图元命令检测单元检测到第二起始标记即psflag=0后判断顶点数量。

具体的,几何图元包括点、线、线带、线环、三角形、三角形带、三角形扇、四边形、四边形带以及多边形这十种图元,而基本图元包括点、线、三角形这三种几何图元。由于在平面裁剪时是以将几何图元划分为基本图元进行裁剪的,例如,将线带划分为线段进行裁剪,将三角形带划分为三角形进行裁剪,将四边形带划分为三角形进行裁剪,因此,在接收图元顶点时,需要将该几何图元所划分的一个基本图元的全部图元顶点均接收,以形成一个完整的基本图元。若第一图元顶点的数量小于基本图元对应的图元顶点数量,表明所获取的第一图元顶点还不能形成一个基本图元,则继续获取第一图元顶点;若第一图元顶点的数量等于基本图元对应的图元顶点数量,表明所获取的第一图元顶点能形成一个基本图元,则进入图元裁剪单元进行图元裁剪。例如,将四边形带划分为若干三角形进行裁剪,则在接收图元顶点命令时,需接收至少三个图元顶点,使得其中三个图元顶点能形成一个完整的三角形。如果只接收到两个图元顶点,表明不能形成一个三角形,则继续获取下一个图元顶点,如果接收到三个能形成三角形的图元顶点,则将获取的第一图元顶点输出至图元裁剪单元进行图元裁剪。

在一个具体实施例中,请参见图3,图3为本发明实施例提供的另一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型的结构示意图。该tlm模型还包括图元位置判断单元,其中,图元位置判断单元包括顶点位置判断单元和组合判断单元。

顶点位置判断单元连接图元命令解析单元,用于依次判断每个第一图元顶点与裁剪平面的关系。具体地,将每个第一图元顶点坐标依次代入裁剪平面的平面方程式中,得到该第一图元顶点与裁剪平面关系。例如,请参见图4,图4为本发明实施例提供的一种图元顶点与裁剪平面关系的示意图;图4中,图元顶点pt的坐标为(x,y,z,w),其中,x、y、z分别为三维坐标,w为透视化因子;若该点在平面plana内,则ax by cz dw=0;若该点在平面plana上即点p1,则ax by cz dw>0;若该点在平面plana下即点p2,则ax by cz dw<0。

组合判断单元连接顶点位置判断单元,用于将基本图元对应的所有第一图元顶点与裁剪平面的关系进行组合判断,得到基本图元与裁剪平面的关系。具体地,组合判断是指:在一个基本图元中,首先将两个第一图元顶点组合,判断两个第一图元顶点所形成的线段与裁剪平面的关系,然后,将该基本图元所对应的线段进行组合,判断该基本图元与裁剪平面的关系。基本图元与裁剪平面的关系包括三种:丢弃、保留、相交。其中,丢弃是指完全丢弃,表明该基本图元完全被裁剪掉;保留是指完全保留,表明该基本图元没有被裁剪;相交是指该基本图元一部分被裁剪掉,一部分保留。

请参见图5,图5为本发明实施例提供的一种基本图元与裁剪平面关系的示意图。以三个第一图元顶点形成的基本图元为三角形、裁剪保留裁剪平面plana以上的图元顶点为例,若三角形的三个顶点均在裁剪平面之上即t1,或者均在裁剪平面内即t2,则该三角形与裁剪平面的关系为完全保留;若三角形的三个顶点均在裁剪平面之下即t3,则该三角形与裁剪平面的关系为完全丢弃;若三角形的两个顶点在裁剪平面之上、一个顶点在裁剪平面之下即t4,或者,一个顶点在裁剪平面之上、两个顶点在裁剪平面之下,则该三角形与裁剪平面的关系为相交。而对于点图元,若点图元在裁剪平面上或者在裁剪平面之上,则点图元与裁剪平面的关系为保留,此时,直接输出该点图元;若点图元在裁剪平面之下,则点图元与裁剪平面的关系为丢弃,此时,将该点图元进行丢弃。

该tlm模型还包括第二图元裁剪单元和第三图元裁剪单元。第一图元裁剪单元、第二图元裁剪单元、第三图元裁剪单元可以为并列关系,分别与图元位置判断单元连接;也可以第二图元裁剪单元与图元位置判断单元连接,第三图元裁剪单元、第一图元裁剪单元再依次连接,如图6所示,图6为本发明实施例提供的再一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型的结构示意图;但是,第一图元裁剪单元、第二图元裁剪单元、第三图元裁剪单元之间的顺序并不限于此,本实施例不作进一步限制。

在图6中,第二图元裁剪单元通过tlm端口连接图元位置判断单元,用于当所述基本图元与所述裁剪平面的关系为丢弃且该基本图元的图元顶点包中包含第一起始标记时,将所述第一裁剪标记更新为第二裁剪标记,并根据第二裁剪标记继续获取第一图元顶点的图元顶点包。第三图元裁剪单元通过tlm端口连接第二图元裁剪单元,用于根据所述基本图元与所述裁剪平面的保留关系,保留所述第一裁剪标记并根据所述第一裁剪标记输出所述基本图元。第一图元裁剪单元通过tlm端口连接第三图元裁剪单元。

具体地,若基本图元与裁剪平面的关系为丢弃,则将该基本图元完全裁剪掉,此时,若该基本图元的图元顶点包中包含第一起始标记(psflag=1),将第一裁剪标记更新为第二裁剪标记,即将psflagclipped=0修改psflagclipped=1,然后继续获取下一个图元顶点;若此时该基本图元的裁剪标记为第二裁剪标记,即psflagclipped值为1,则直接获取下一个图元顶点。

若基本图元与裁剪平面的关系为保留,则将该基本图元完全保留,且对第一裁剪标记不作更改,即保持psflagclipped值为0,然后根据第一裁剪标记输出该基本图元。

若基本图元与裁剪平面的关系为相交表明该基本图元部分被裁剪掉、部分保留,这种情况下基本图元不包含点图元,只有直线和三角形这两种图元。对直线和三角形这两种图元,均以线段为单位进行裁剪;也就是说,对直线而言,判断该直线所处的线段与裁剪平面的关系,对三角形而言,判断三角形中的三条线段与裁剪平面的关系。因此,第一图元裁剪单元可以进一步包括线段保留单元、线段丢弃单元和线段相交单元。

线段保留单元,用于当第一线段与裁剪平面的关系为保留时,保留第一裁剪标记。具体地,若第一线段与裁剪平面的关系为保留,则该线段被完全保留,不更新第一裁剪标记,即保持psflagclipped值为0,然后判断基本图元中所有第一线段是否均处理完成。

线段丢弃单元,用于当第一线段与裁剪平面的关系为丢弃且当该第一线段的图元顶点包中存在第一起始标记时,将第一裁剪标记更新为第二裁剪标记。具体地,若第一线段与裁剪平面的关系为丢弃且psflag=1,则该线段被完全裁剪掉,将第一裁剪标记更新为第二裁剪标记,即将psflagclipped=0更新为psflagclipped=1,然后判断基本图元中所有第一线段是否均处理完成。

线段相交单元,用于当第一线段与裁剪平面的关系为相交且当该第一线段的图元顶点包中存在第一起始标记时,更新第一裁剪标记为第二裁剪标记,并且当交点为裁剪后第二线段的起点时将第一线段的起点包头信息赋值给交点,当交点为第二线段的终点时将第一线段的终点包头信息赋值给交点。具体地,若第一线段与裁剪平面的关系为相交,该线段部分被裁剪掉、部分保留下来,若同时psflag=1,则更新第一裁剪标记为第二裁剪标记,即更新psflagclipped=0为psflagclipped=1,并按照相交的关系对第一线段进行裁剪得到第二线段,然后计算交点的坐标。其中,当交点为第二线段的起点时,将当前第一线段的原始起点包头信息(该起点包头信息中,其起始标记信息为第一起始标记,即psflag=1)赋值给该交点;当交点为第二线段的终点时,将当前第一线段的原始终点包头信息赋值该交点。之后,对交点进行组装,与原基本图元中保留的图元顶点共同组装形成新的几何图元,该几何图元即为对基本图元进行裁剪得到的图元。

在判断每一条第一线段与裁剪平面的关系后,判断基本图元中所有第一线段是否均处理完成。当判断基本图元中所有第一线段均处理完成时,根据第二裁剪标记设置裁剪后的几何图元中图元顶点的起始标记信息;或者,判断基本图元中所有第一线段未均处理完成时,继续判断基本图元中每条第一线段与裁剪平面的关系。具体地,判断当前基本图元是否处理完成,若是,则进入图元输出控制单元,根据第二裁剪标记设置裁剪后的几何图元中图元顶点的起始标记信息,输出基本图元,若否,则继续判断基本图元中下一条第一线段与裁剪平面的关系,对下一条第一线段进行裁剪并更新或保留第一裁剪标记。

图元输出控制单元用于当判断基本图元中所有第一线段均处理完成时,根据所述第二裁剪标记设置裁剪所述基本图元后得到的几何图元中第二图元顶点的起始标记信息。具体地,经过裁剪,得到了裁剪后的几何图元,裁剪后的几何图元具有多个第二图元顶点,将多个第二图元顶点按照起点至终点的顺序依次输出。在输出时,检测裁剪标记信息,当检测到第二裁剪标记时,则表明该几何图元为基本图元的起始顶点被裁剪后得到的,该几何图元的第二图元顶点输出阵列的第一个顶点为起点,因此,将输出阵列中的第一个第二图元顶点的顶点起始标记设为第一起始标记,并将第二裁剪标记更新为第一裁剪标记。然后输出当前输出阵列中的所有第二图元顶点。

在一个具体实施例中,在第二图元顶点输出时,需根据基本图元的起始顶点是否被裁剪掉(即根据psflagclipped的值)来更新各个第二图元顶点的起始标记;若psflagclipped值为1,表明基本图元的起始顶点已被裁剪掉,则将当前第二图元顶点输出阵列中的第一个顶点起始标记置为1(即psflag为1),输出阵列中的其他顶点起始标记不做修改,同时将该几何图元中所有的起始顶点的裁剪标记信息更新为0,即设置该几何图元中所有的起始顶点的psflagclipped值为0。然后输出当前输出队列中的所有第二图元顶点。例如,一个三角形被裁减后得到一个四边形,则在该四边形的顶点输出时,将输出的第一个顶点的psflag设为1,其他三个顶点不做修改,同时将四个顶点的psflagclipped值设为0。

本实施例的tlm模型通过事务级建模,能够在芯片设计早期实现对平面剪裁中几何图元起始标记管理算法和架构的验证,并且提供rtl设计后期仿真结果的比对,能够及时发现算法、架构及功能方面的缺陷,为系统架构人员及rtl设计人员提供准确的数据分析;同时其仿真硬件处理快于硬件rtl开发,仿真速度快,实现周期短,大大缩减了gpu的设计周期。

本实施例的tlm模型解决了因平面裁剪造成的图元顶点起始标记的丢失、变更等问题,使得光栅化阶段进行直线点画操作时图元内部线段的连续性,以及不同图元间点画的独立性。

实施例二

在实施例一的基础上,请参见图6,图6为本发明实施例提供的一种基于systemc的平面剪裁中gpu几何图元起始标记管理方法的流程示意图,该管理方法包括步骤:

s1、设置currentnum用来记录接收的第一图元顶点的数量,并且初始化currentnum为0。

s2、获取一个第一图元顶点包,并且将当前第一图元顶点个数加1,即currentnum 。

s3、解析第一图元顶点包中的起始标记信息psflag,并判断psflag是否为1,若psflag为1,则设置psflagclipped=0,若psflag为0,则无需设置psflagclipped。

s4、判断当前基本图元是否接收完成:判断currentnum值与当前所处理的基本图元对应的顶点数量之间的关系;若currentnum值小于当前所处理的基本图元对应的顶点数量,则返回步骤s2继续获取第一图元顶点包;若currentnum值大于当前所处理的基本图元对应的顶点数量,则转入下一步。

s5、基本图元裁剪与裁剪标记设置。

s51、判断基本图元与裁剪平面的关系。

具体地,将每个第一图元顶点坐标依次代入裁剪平面的平面方程式中,得到该第一图元顶点与裁剪平面关系;然后,将基本图元对应的所有第一图元顶点与裁剪平面的关系进行组合判断,得到基本图元与裁剪平面的关系。基本图元与裁剪平面的关系包括三种:丢弃、保留、相交。

s52、基本图元裁剪与裁剪标记设置。

首先判断基本图元是否被完全裁剪掉:

若基本图元被完全裁剪掉且psflag=1,则判断psflagclipped是否为0,若psflagclipped为0,则设置psflagclipped为1,然后返回步骤s2继续获取第一图元顶点包,若psflagclipped不为0,则直接返回步骤s2继续获取第一图元顶点包。

若基本图元未被完全裁剪掉,则判断基本图元是否被完全保留:若基本图元被完全保留,则保持psflagclipped值为0,并输出当前基本图元;若基本图元未被完全保留,则基本图元与裁剪平面为相交,此时以第一线段为单位进行裁剪,判断第一线段与裁剪平面的关系。

在判断第一线段与裁剪平面的关系时,先判断判断第一线段是否完全保留,若当前第一线段完全保留时,保持psflagclipped值为0,然后判断当前基本图元是否处理完成,若当前基本图元未处理完成,则继续取下一条第一线段进行裁剪;若当前基本图元已处理完成,则进入下一步图元输出控制;

若当前第一线段不是完全保留,则判断当前第一线段是否为完全丢弃,若当前第一线段完全丢弃且psflag=1,则更新psflagclipped值为1,然后判断当前基本图元是否处理完成,若当前基本图元未处理完成,则继续取下一条第一线段进行裁剪;若当前基本图元已处理完成,则进入下一步图元输出控制;

若当前第一线段不是完全丢弃,则当前第一线段与裁剪平面有交点,此时,若psflag=1,则更新psflagclipped值为1,并且判断交点是裁剪后第二线段的起点还是终点,若交点即将成为新的起点,则将当前第一线段原始起点包头信息赋值给交点;若交点即将成为新的终点,则将当前第一线段原始终点包头信息赋值给交点。

交点组装完成后,若当前基本图元未处理完成,则继续取下一条第一线段进行裁剪;若当前基本图元已处理完成,则进入下一步图元输出控制,将多个第二图元顶点按照起点至终点的顺序依次输出。

s6、图元输出控制。

在第二图元顶点输出时,根据psflagclipped的值来更新各个第二图元顶点的起始标记,若psflagclipped值为1,则当前第二图元顶点输出阵列中的第一个顶点起始标记置为1,并清除psflagclipped为0。然后输出当前输出队列中的所有第二图元顶点。

本实施例的起始标记管理方法通过设置裁剪标记,并根据平面裁剪过程中基本图元与裁剪平面的关系实时更新裁剪标记,进而在平面裁剪后对图元顶点的起始标记进行更新,实现了对gpu几何图元中顶点起始标记的管理,解决了因平面裁剪造成的图元顶点起始标记的丢失、变更等问题,进而使得光栅化阶段进行直线点画操作时图元内部线段的连续性,以及不同图元间点画的独立性。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。


技术特征:

1.一种基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,包括:几何图元存储单元、图元命令解析单元、第一图元裁剪单元和图元输出控制单元,其中,

所述几何图元存储单元用于存储几何图元中第一图元顶点的图元顶点包;

所述图元命令解析单元用于根据所述图元顶点包中的第一起始标记设置第一裁剪标记;

所述第一图元裁剪单元用于根据平面裁剪时若干所述第一图元顶点形成的基本图元与裁剪平面的相交关系判断所述基本图元中每条第一线段与所述裁剪平面的关系,然后根据每条所述第一线段与所述裁剪平面的关系更新所述第一裁剪标记为第二裁剪标记或保留所述第一裁剪标记,并且当判断所述基本图元中所有所述第一线段未均处理完成时,继续判断所述第一线段与所述裁剪平面的关系;

所述图元输出控制单元用于当判断所述基本图元中所有所述第一线段均处理完成时,根据所述第二裁剪标记设置裁剪所述基本图元后得到的几何图元中第二图元顶点的起始标记信息。

2.如权利要求1所述的基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,所述图元命令解析单元包括:

图元命令获取单元,用于读取所述第一图元顶点的图元顶点包,并记录所述第一图元顶点的数量;

图元命令检测单元,用于检测所述图元顶点包中的所述第一起始标记和第二起始标记;

裁剪标记设置单元,用于根据所述第一起始标记设置所述第一裁剪标记。

3.如权利要求2所述的基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,所述图元命令解析单元还包括:

顶点数量判断单元,用于当判断所述第一图元顶点的数量小于所述基本图元的顶点数量时,继续获取所述第一图元顶点的图元顶点包;或者,判断第一图元顶点的数量等于所述基本图元的顶点数量时,判断平面裁剪时若干所述第一图元顶点形成的基本图元与裁剪平面的关系。

4.如权利要求1所述的基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,还包括图元位置判断单元,其中,所述图元位置判断单元包括:

顶点位置判断单元,用于依次判断每个所述第一图元顶点与所述裁剪平面的关系;

组合判断单元,用于将所述基本图元对应的所有所述第一图元顶点与所述裁剪平面的关系进行组合判断,得到所述基本图元与所述裁剪平面的关系。

5.如权利要求1所述的基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,所述第一图元裁剪单元包括:

线段保留单元,用于当判断所述第一线段与所述裁剪平面的关系为保留时,保留所述第一裁剪标记;

线段丢弃单元,用于当判断所述第一线段与所述裁剪平面的关系为丢弃且所述第一线段的图元顶点包中存在所述第一起始标记时,将所述第一裁剪标记更新为所述第二裁剪标记;

线段相交单元,用于当判断所述第一线段与所述裁剪平面的关系为相交且所述第一线段的图元顶点包中存在所述第一起始标记时,更新所述第一裁剪标记为所述第二裁剪标记,并且当交点为裁剪后第二线段的起点时将所述第一线段的起点包头信息赋值给所述交点,或者当所述交点为所述第二线段的终点时将所述第一线段的终点包头信息赋值给所述交点。

6.如权利要求5所述的基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,所述图元输出控制单元用于根据所述第二裁剪标记,将裁剪后的几何图元中首个第二图元顶点的起始标记信息设为第一起始标记,并将所述第二裁剪标记更新为第一裁剪标记。

7.如权利要求1所述的基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,还包括:

第二图元裁剪单元,用于当所述基本图元与所述裁剪平面的关系为丢弃且所述基本图元的图元顶点包中存在所述第一起始标记时,将所述第一裁剪标记更新为第二裁剪标记,并根据第二裁剪标记继续获取第一图元顶点的图元顶点包。

8.如权利要求1所述的基于systemc的平面剪裁中gpu几何图元起始标记管理的tlm模型,其特征在于,还包括:

第三图元裁剪单元,用于根据所述基本图元与所述裁剪平面的保留关系,保留所述第一裁剪标记并根据所述第一裁剪标记输出所述基本图元。

技术总结
本发明涉及一种基于SystemC的平面剪裁中GPU几何图元起始标记管理的TLM模型,包括:几何图元存储单元,用于存储几何图元中第一图元顶点的图元顶点包;图元命令解析单元,用于根据图元顶点包中的第一起始标记设置第一裁剪标记;第一图元裁剪单元,用于根据平面裁剪时若干第一图元顶点形成的基本图元与裁剪平面的相交关系判断基本图元中每条第一线段与裁剪平面的关系,然后根据每条第一线段与裁剪平面的关系更新第一裁剪标记为第二裁剪标记或保留第一裁剪标记;图元输出控制单元,用于当判断基本图元中所有第一线段均处理完成时,根据第二裁剪标记设置裁剪得到的几何图元中第二图元顶点的起始标记信息。该TLM模型通过事务级建模大大缩减了GPU的设计周期。

技术研发人员:刘莎;李冲;周艺璇;杨洋;张佩;范飞虎
受保护的技术使用者:西安翔腾微电子科技有限公司
技术研发日:2019.12.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55038.html

最新回复(0)