三维图形管道中的可程序化像素设定方法及使用其的装置的制造方法

文档序号:9397551阅读:218来源:国知局
三维图形管道中的可程序化像素设定方法及使用其的装置的制造方法
【技术领域】
[0001]本发明涉及一种三维图形技术,特别是一种三维图形管道中的可程序化像素设定方法以及使用该方法的装置。
【背景技术】
[0002]三维图形管道中,像素(primitives)需要设定它们的拓朴(topology)以及属性函数(attribute funct1ns),例如三角形、线段以及点。接着,根据拓朴函数将像素光栅(raster)至片元(tiles),最后使用像素着色器(pixel shader)根据属性函数计算最终的色彩。一般而言,像素设定阶段使用固定函数模块的硬件实施。然而,传统固定函数模块需耗费大量的闸数成本(gate-count cost)来实现像素设定工作。甚至,当芯片下线(tape-out)之后,不容易修正新发现的错误,而且,一旦芯片准备好,工程师也不能更新固定函数模块中的功能。因此,本发明提出一种三维图形管道中的可程序化像素设定方法以及使用该方法的装置,用以克服以上所述的缺点。

【发明内容】

[0003]本发明的实施例提出一种三维图形管道中的可程序化像素设定方法。从缓存器读取多个第一像素的信息,以及将全部或一部分第一像素的信息打包至设定着色器执行线程,使得设定着色器执行线程执行时将第一像素的信息输出至流处理器进行建构图元拓朴的并行计算。将需要裁切的第二像素的信息打包至可视范围裁切着色器执行线程,使得可视范围裁切着色器执行线程执行时将第二像素的信息输出至流处理器进行像素裁切。从缓存器读取多个第三像素的信息,以及将全部或一部分第三像素的信息打包至属性着色器执行线程,使得属性着色器执行线程执行时将第三像素的信息输出至流处理器进行像素属性的并行计算。
[0004]本发明的实施例另提出一种三维图形管道中的可程序化像素设定装置,包含缓存器、流处理器、设定着色器执行线程建构单元、可视范围裁切着色器执行线程建构单元以及属性着色器执行线程建构单元。设定着色器执行线程建构单元从缓存器读取多个第一像素的信息,将全部或一部分第一像素的信息打包至设定着色器执行线程,使得设定着色器执行线程执行时将第一像素的信息输出至流处理器进行建构图元拓朴的并行计算。可视范围裁切着色器执行线程建构单元将需要裁切的第二像素的信息打包至可视范围裁切着色器执行线程,使得可视范围裁切着色器执行线程执行时将第二像素的信息输出至流处理器进行裁切。属性着色器执行线程建构单元从缓存器读取多个第三像素的信息,将全部或一部分第三像素的信息打包至属性着色器执行线程,使得属性着色器执行线程执行时将第三像素的信息输出至流处理器进行像素属性的并行计算。
【附图说明】
[0005]图1是依据本发明实施例的三维图形处理装置的硬件架构图。
[0006]图2是依据本发明实施例的三维图形管道中的像素设定示意图。
[0007]图3是依据本发明实施例的三维图形管道中的可程序化像素设定方法流程图。
[0008]图4是依据本发明实施例的产生设定着色器执行线程的方法流程图。
[0009]图5是依据本发明实施例的三维图形管道中的可程序化像素设定方法流程图。
[0010]图6是依据本发明实施例的产生可视范围裁切着色器执行线程的方法流程图。
[0011]图7是依据本发明实施例的三维图形管道中的可程序化像素设定方法流程图。
[0012]图8是依据本发明实施例的产生属性着色器执行线程的方法流程图。
【具体实施方式】
[0013]以下说明为完成发明的较佳实现方式,其目的在于描述本发明的基本精神,但并不用以限定本发明。实际的
【发明内容】
必须参考之后的权利要求范围。
[0014]必须了解的是,使用于本说明书中的“包含”、“包括”等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、组件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
[0015]在权利要求中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示之间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
[0016]图1是依据本发明实施例的三维图形处理装置的硬件架构图。设定着色器执行线程建构单元(SSTC, Setup Shader Thread Constructor) 140 用以从像素缓存器(primitivebuffer) 110 或可视范围像素缓存器(Guard-Band-clipping primitive buffer) 170 读取多个像素的信息,将像素信息打包至设定着色器执行线程(SST,Setup Shader Thread),使得设定着色器执行线程执行时将像素信息输出至流处理器120进行提供建构图元拓朴(primitive topology)的并行计算。设定着色器执行线程建构单元140为每一个像素向共享内存130请求配置空间,使得流处理器120可将计算结果输出至共享内存130。当设定着色器执行线程执行时发现任一像素需要进行可视范围裁切时,可视范围裁切着色器执行线程建构单元(GBTC, Guard-Band-clipping shader Thread Constructor) 150 将需要裁切的像素打包至可视范围裁切着色器执行线程(GBS Thread),使得可视范围裁切着色器执行线程执行时将像素信息输出至流处理器120进行裁切,并且把裁切结果储存至可视范围像素缓存器170。属性着色器执行线程建构单元(ASTC, Attribute Shader ThreadConstructor) 160用以从像素缓存器110或可视范围像素缓存器170读取多个像素的信息,将像素信息打包至属性着色器执行线程(AST, Attribute Shader Thread),使得属性着色器执行线程执行时将像素信息输出至流处理器120进行像素属性的并行计算。属性着色器执行线程建构单元160为每一个像素向共享内存130请求配置空间,使得流处理器120可将计算结果输出至共享内存130。属性着色器执行线程另可将计算结果储存至属性缓存器(Attribute Buffer)180。
[0017]图2是依据本发明实施例的三维图形管道中的像素设定示意图。输入组装阶段(IA-1nput Assembler Stage) 210可从缓存器中读取数据并将数据组合成将被管道中其它阶段使用的像素(primitives)。详细来说,输入组装阶段210可将顶点组合成不同的像素类型,例如,点、线以及/或三角形。前置阶段(FS,Front Stage)220可包含公知的顶点着色器(VS, Vertex Shader)、外壳着色器(HS, Hull Shader)、区域着色器(DS, Domain Shader)、几何着色器(GS, Geometry Shader)、或以上的任意组合。在像素设定阶段中,本实施例提出执行于平行流处理器120的着色器:设定着色器(SS,SetupShader)及可视范围裁切着色器(GBS, Guard-Band clipping Shader) 230 ;以及属性着色器(AS, Attribute Shader) 240,用以取代固定函数模块的硬件。流处理器120可为单指令多数据(SIMD, Single Instruct1n Multiple Data)处理单元。设定着色器230提供建构图元拓朴的功能。可视范围裁切着色器230用以进行像素的裁切。属性着色器240提供处理像素属性的功能。在像素设定阶段中,使用着色器实施可节省闸数成本,并且当芯片下线(tape-out)之后,可修正新发现的错误以及更新着色器中的功能。驱动程序可检查从前置阶段220产生的像素类型,并且通知编译器产生适当的着色器程序代码,用以处理点、线以及/或三角形。此外,着色器还可利用并行计算能力来一次处理多个像素,使得像素设定的效能可随着串流处理单元的数目增加而提升。可于一个硬件执行线程中处理的像素数目,视串流处理单元的能力而定,例如一次可计算16、32或64笔数据。设定着色器(SS,
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1