CN101236661A - 在计算机中管理纹理数据的***与方法 - Google Patents
在计算机中管理纹理数据的***与方法 Download PDFInfo
- Publication number
- CN101236661A CN101236661A CNA2008100835443A CN200810083544A CN101236661A CN 101236661 A CN101236661 A CN 101236661A CN A2008100835443 A CNA2008100835443 A CN A2008100835443A CN 200810083544 A CN200810083544 A CN 200810083544A CN 101236661 A CN101236661 A CN 101236661A
- Authority
- CN
- China
- Prior art keywords
- texture
- description symbol
- impact damper
- data
- logic module
- 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/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明揭露了一种在计算机中管理纹理数据的***与方法,包括下列步骤:从位于一第一逻辑模块中的一第一缓冲器的一存储位置,预载第一多个纹理描述符值,以响应一读取请求,其中该第一缓冲器用于接收位于该第一逻辑模块中的数据;从该存储位置,预载该第一多个纹理描述符值至位于一第二逻辑模块的一第二缓冲器;利用在该第二逻辑模块中的该第一多个纹理描述符值,执行一着色计算;从存储器动态载入第二多个纹理描述符值至该第一缓冲器,以响应该第一逻辑模块所要求的额外数据;以及用该第二多个纹理描述符值改写该第一多个纹理描述符值的一部分,以反应该第一缓冲器已满。本发明可以降低***冗余度及成本,提升纹理处理操作,改进运作。
Description
技术领域
本发明是关于计算机绘图数据的处理,且特别是关于在计算机中,利用绘图处理单元中(Graphics processing unit,GPU)的共享纹理引擎来管理纹理数据的***与方法。
背景技术
在当今众多的计算机绘图处理中,纹理处理(TextureProcessing)无疑是其中最关键的一个部分。纹理处理可以包含许多不同的纹理映射(Texture Mapping)技术如:三维映射(cubicmapping)、mip映射(mipmapping)和各向异性映射(anisotropicmapping)等等。在静态和动态模式中,多样的纹理可以被应用到物体上,这也可以设想为在着色程序执行前的纹理预取(Texture prefetch),就如同在着色执行的过程中的相依纹理加载(Texture loading)。其运用了大量和复杂的运算及逻辑操作来完成纹理处理,因此造成了绘图处理操作对额外专用电路(Dedicated Texture)的需求。因此,这些专用纹理处理电路占用了绘图处理单元中硬件逻辑门(Gates)显著的使用率。
除了纹理处理,绘图处理器也包括执行各种形式着色处理操作(Shader Processing Operation)的逻辑。举例而言,着色处理操作可以通过顶点着色器(Vertex Shader)、几何着色器(Geometry Shader),如像素着色器(Pixel Shader)等处理器而被执行。一般来说,着色器可以从纹理处理硬件的各级着色器处理程序来达成纹理映射服务。举例而言,一些着色器程序在执行着色程序前会通过使用预载(Preloading),或称预取(Prefetch)纹理数据得到效率的改善。在像素着色操作中,当对纹理处理的需求可在着色操作前被确实的预测,则对预取纹理或者静止纹理可以说是特别有利。相对的,对着手于特别的绘图元件,其他的着色操作则需要在着色程序执行期间即时提取。由着色程序发出请求而进行的纹理处理程序被称为相依读取纹理法(Dependent Read Texturing)或动态纹理处理法(Dynamic Texture Loading),其在顶点、几何或者一些像素着色操作中更常被利用到。另外的复杂因素来自于,在平行着色器中对多个不同的目标进行处理,而该多个目标可能要求不同的纹理或者不同的纹理内文(Texture Contexts),而这些是由包含各种信息的纹理描述符(Texture Descriptor)所定义的,比如:位置、类型和处理要求等等。包含关联描述符的纹理数据用于定义存储位置,格式和其他在一绘图管线中与处理纹理数据相关的重要信息。
在一复杂纹理处理环境中进行纹理描述符的管理不是一件小事,需要重要的专业化的资源。因为需要提供专用纹理处理硬件去定位,各预取和相依读取纹理法会造成***冗余度的提升,且会因处理器的使用而提高成本,因此提升纹理处理操作的需求在业界存在已久。
发明内容
本发明揭露了一种通过利用模拟信号进行装置中扫描链测试的***与方法。
本发明首先揭露了一种在计算机中管理纹理数据的方法,其特征在于包括下列步骤:从位于一第一逻辑模块中的一第一缓冲器的一存储位置,预载第一多个纹理描述符值,以响应一读取请求,其中该第一缓冲器用于接收位于该第一逻辑模块中的数据;从该存储位置,预载该第一多个纹理描述符值至位于一第二逻辑模块的一第二缓冲器;利用在该第二逻辑模块中的该第一多个纹理描述符值,执行一着色计算;从存储器动态载入第二多个纹理描述符值至该第一缓冲器,以响应该第一逻辑模块所要求的额外数据;以及用该第二多个纹理描述符值改写该第一多个纹理描述符值的一部分,以反应该第一缓冲器已满。
本发明还揭露了一种计算机中管理纹理数据的***,其特征在于包括:一第一逻辑模块,位于一绘图管线中,该第一逻辑模块用于执行纹理处理;一第一缓冲器,位于该第一逻辑模块中,该第一缓冲器用于接收多个纹理描述符值中的一第一被预载部分;一第二逻辑模块,位于该绘图管线中,该第二逻辑模块用于执行着色处理;一第二缓冲器,位于该第二逻辑模块,该第二缓冲器用于接收多个纹理描述符值中的一第二被预载部分,以反应该第一缓冲器已经存储满该多个纹理描述符值;纹理缓冲器逻辑模块,用于管理相应于多个内文的纹理描述符数据;以及预取缓冲逻辑模块,用于在多个特别登记器中存储多个预取纹理描述符。
对于本领域的普通技术人员而言,其他未包含在本发明下述所揭露的内容与图示中的***、方法、特征或者优势为显而易见的,因此凡其他未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在本发明的权利要求范围内。
本发明所述的在计算机中管理纹理数据的***与方法,可以降低***冗余度及成本,提升纹理处理操作,改进运作。
附图说明
参考以下的图示将会对本发明的许多方面有一个更好的理解。图中的元件不需要和实际等比例,而重点在强调说明本发明揭露技术的原理。此外,图中的参考数字将依元件的不同做不同的标示。
图1绘示了根据本发明的***与方法的示范计算机***说明方块图。
图2绘示了根据本发明的***的示范管理纹理描述符数据的方块图。
图3绘示了本发明管理纹理数据的一可替换实施例方块图。
图4绘示了本发明管理纹理数据的另一可替换实施例方块图。
图5绘示了本发明一管理纹理数据***的高级流程图。
图6绘示了本发明所揭露***和方法中的纹理数据流程图。
图7绘示了本发明将纹理描述符作为绘图内文的一部分应用于所揭露***和方法中的方块图。
图8绘示了一可替换实施例中的纹理描述符L1缓冲器的方块图。
图9绘示了一可替换实施例中的将描述符缓冲器L1作为普通高速缓存器L2的一部分。
图10绘示了纹理请求格式的一可替换实施例的方块图。
图11绘示了纹理描述符格式的一可替换实施例的方块图。
图12绘示了管理纹理描述符数据方法的一实施例的方块图。
图13绘示了管理纹理描述符数据方法的一可替换实施例的方块图。
具体实施方式
前文已对本发明做各技术特征的摘要。请参考附图,于此将做更详细的描述。然而,尽管本发明配合附图做详细的描述,然其并非用以限制本发明。相反的,在不脱离本发明权利要求中所界定的范围及精神,本发明可做所有形式的更动和润饰。
请参考图1,此为一方块图,描绘出示范的计算机***,其利用本发明所揭露的***与方法。此计算机***100包括一中央处理器(CPU)102,一***存储器104和一绘图处理***110。中央处理器102运行各种功能,包括决定信息,例如,允许绘图显示产生视点位置。***存储器104储存多种数据,包括绘图显示数据,比如多样纹理映射和纹理描述符号。绘图处理***110根据中央处理器102的决定信息及***存储器104储存的数据,产生显示数据于显示装置130,例如一屏幕。
中央处理器102通过***接口108对绘图处理***110提出请求,包括请求处理和显示绘图数据。从中央处理器102发出的绘图请求会被绘图处理***110接收并提供给前端处理器112。前端处理器112产生一像素串(pixel string),其含有配合显示装置130的像素坐标(pixel coordinates)。从前端处理器112产生的像素坐标数据会通过缓存***114而传递给纹理处理器116。缓存***114可提供来自存储器的数据预载和短期数据储存区给那些用于处理纹理及操作着色器的信息。当其预测未来的操作将有新的需求时,在纹理处理器116内的数据的预载操作可将数据储存于纹理处理器116或者可将该数据从***存储器104抽取至缓存***114,基于从纹理处理器116发出的特别请求。该缓存***114可以包含各种各样的存储缓冲器,包括但不限于,纹理描述符缓冲器,纹理数据高速缓冲存储器,深度高速缓冲存储器和像素的高速缓冲存储器等。
除了能替纹理处理器116储存数据,缓存***114也能替着色器118储存数据。虽然此图上只画了单个着色器,着色器118其实可能包括顶点着色器、像素着色器、几何着色器以及(或者)其他元件。再者,着色器118能包含多重着色器的执行单元,其用以处理多个绘图并列执行线程(graphics threads in parallel)。着色器118也能执行绘图数据的各种转换。就这一点而言,数据可以从实际坐标转换为模型坐标。除此之外,类似三角形的图元也能被处理、复制或者镶嵌作花纹状。由此,像素着色器可以被用于处理像素值。此处理功能是由着色器118执行的,这里就不再赘述。其后,该绘图数据被传递至帧缓冲器(Framebuffer)120。其用于将显示信息产生于一显示装置130上。
请参考图2,其绘示了本发明所示***的示范管理纹理描述符数据实施例的方块图。该***150包含一仲裁器152,其用于从一相依纹理读取要求和一预取读取要求中选择一个来服务于纹理处理器158。该纹理处理器158执行纹理数据读取和相关计算,包括但不限于,纹理过滤(texture filter),双线性过滤(bilinear filtering)、三线性(trilinear filtering)和各向异性过滤(anisotropic filtering)。一预取纹理描述符缓冲器154被用于暂时性存储纹理描述符数据,该数据然后被一用于预取纹理数据取得和处理的纹理处理器所利用。纹理描述符是不连续的数据片断,其包含了在一特别的图元(Graphics Element)上执行纹理取得和处理的必要信息。该图元可以是一个像素,一个顶点或者一个几何图元。
***150也包含一纹理描述符虚拟缓冲器156,其明显要优于预取纹理描述符缓冲器154。纹理描述符虚拟缓冲器156可能包含多个纹理描述符,该多个纹理描述符被用于在着色程序执行的过程中去取得被要求的纹理。该纹理描述符虚拟缓冲器156的执行可以通过利用多样的技术来实现,包括但不限于,利用缓冲器L1和后备高速缓冲存储器L2组成的多级存储器。
请参考图3,其绘示了一用于管理纹理数据流程***的可替换实施例的方块图。该***160包含一纹理处理器162,该纹理处理器162用于执行纹理处理操作,例如纹理数据取得和纹理过滤。该***160也包含一着色处理模块164,该着色处理模块164用于为计算机绘图元件执行着色操作。该着色处理模块164可为一像素着色器,一顶点着色器或者几何着色器,而这些均依赖该绘图元件处于何种处理中。在一些情况下,该***160可以处理预载纹理数据在该纹理处理器162以进一步提升***160的表现。这样一来,对同一个绘图元件,该预载纹理数据的处理要早于进行着色器处理的操作。相对的,在着色处理操作的执行过程中或者执行之后,可以在绘图元件上进行纹理处理。在此环境下,纹理处理器162发出对纹理服务的请求是一种对相依读取操作的请求。于此环境下,当预载请求和相依读取请求两者皆被发出,则仲裁器166决定授权何者。当仲裁器166授权一预载请求,则在纹理处理器162中的该预载纹理数据,会利用来自于该纹理描述符缓冲器168的纹理描述符取得和进行处理。以致提升对着色处理模块164随后的利用。另外,当仲裁器166授权一相依读取请求,则此已处理的相依读取数据会利用纹理描述符被取得并将会回传至着色处理模块164。此着色处理模块164,可包括,例如,作为接收已被处理过的预载(预取)和相依读取纹理数据的一着色登记缓冲器。该着色登记缓冲器也可以被用于接收和存储与纹理处理无关的数据。
请参考图4,其绘示了一管理纹理数据***的另一可替代实施例的方块图。***180包含一预取纹理描述符缓冲器188,其用于在特定登记器中存储预取纹理描述符。该***180进一步包含一第一逻辑模块182,而第一逻辑模块182中又包含一第一纹理描述符L1缓冲器183。该第一逻辑模块182用于执行纹理处理,该第一纹理描述符L1缓冲器183用于接收一部分预载纹理描述符的值,其在着色执行的过程中可被有选择性用于一相依纹理取得。该***180进一步包含一第二逻辑模块184,而该第二逻辑模块184又包含一第二纹理描述符L2缓冲器185,该第二纹理描述符缓冲器185为了相依纹理读取,也被用于接收一部分预载纹理描述符的值,以防在第一纹理描述符L1缓冲器183缺乏容量或者若与不同内文相关的纹理描述符随后将被处理。为了纹理描述符,该第一纹理描述符L1缓冲器183的容量和部分第二纹理描述符L2缓冲器185的容量可被收集合并以产生一虚拟纹理描述符缓冲器。该***180也包含纹理管理逻辑模块186,该纹理管理逻辑模块186用于管理相应于多个内文的纹理描述符数据。例如,该纹理管理逻辑模块186可用于调整该第一纹理描述符L 1缓冲器183和该第二纹理描述符L2缓冲器185。此外,该纹理管理逻辑模块186可用于决定该第一纹理描述符L1缓冲器183和该第二纹理描述符L2缓冲器185的功能关系,以为纹理描述符建立该虚拟纹理描述符缓冲器。
请参考图5,其绘示了一管理纹理数据***的高层级方块图。该***200接收纹理需求用于一预载输入204或者一相依读取输入206。来自于光栅线的用于该预载输入204的请求和由该着色器生成的该相依读取输入206的请求。一纹理描述符管理器202接收该纹理描述符数据。该纹理描述符数据分别来自于该预取纹理描述符缓冲器203和该虚拟纹理描述缓冲器205的该预载输入204和该相依读取输入206。当来自两资源中任何一个的数据完成,一纹理请求就会被发送至该仲裁器208。当来自于该纹理描述符管理器202的数据可用时,一仲裁器208将会选择该相依读取请求或者该预载数据请求中的任何一个。相应于该被选择的请求的该纹理数据将会被转发至一纹理地址产生管线210,211。
正如所描述的那样,该***200包含多样的纹理处理管线,该纹理地址产生器210,211可以利用一定数量纹理影射技术中的任何一个及由纹理描述符提供的信息去计算一纹理地址。该纹理请求数据然后被发送至一纹理高速缓存器和过滤器212,213,用以计算一纹理值,该纹理值将决定最终的纹理颜色。
当该仲裁器208授权对应于该预载输入204的请求时,该纹理处理结果将被保存在该纹理缓冲器214,215。另外,相应于该相依读取输入206的纹理请求也被授权至该仲裁器208,于是纹理处理的结果立刻通过一登记缓冲器被转至该着色器,其中该登记缓冲器用于支持该着色的阶段,例如,一像素着色器,一顶点着色器,或者一几何着色器。
请参考图6,其绘示了本发明所揭露的方法和***的一纹理数据流程的方块图。一绘图处理单元驱动器(未显示在附图中)发出一序列的命令232,其中就包含该纹理描述符缓冲数据231。通过该命令的指示,该纹理描述符缓冲数据231引起纹理描述符数据被移进该预取纹理描述符缓冲器239,该L1纹理描述符缓冲器240,或者该L2缓冲器238。如同该预载纹理描述符数据移至该L1缓冲器240的顶层,该数据也被转移至该L2缓冲器238,该L2缓冲器238既可以作为L2普通高速缓冲存储器的一部分被执行和也可以被该着色器执行单元用来存储与着色相关的数据。包括但不限于,纹理描述符数据。当该着色器执行单元234要求该纹理描述符数据为L1缓冲器中没有的数据时,该数据就会从该L2缓冲器238中抽取。在一些实施例中,该纹理描述符数据可以被移至L1缓冲器240或者L2缓冲器238,然后可以在该缓冲器上执行一个小测试以决定是否有必要的数据。这样的话,当该L2缓冲器和L1缓冲器对于即将到来的着色操作缺少必要的数据时,可以通过一存储器接口242从存储器中抽取。
当该纹理描述符数据被移至该L1缓冲器240,则在纹理数据缓冲器内文管理器236中,与该纹理数据相关的地址和属性信息将被产生和管理。这样,该纹理数据可以同步的为多个内文被跟踪和管理。纹理描述符数据也被传送至该纹理查询单元244,该纹理查询单元244执行该真实的纹理地址生成,纹理高速缓冲存储器控制,纹理取得和相应于纹理单元的纹理过滤。该预载纹理描述符在该纹理查询单元244中被消耗,以在该着色程序单元前取得和过滤纹理数据,从而防止从存储器下载该纹理数据的延迟。然而,在某些实施例中,当该L2缓冲器资源被过分的用于其他着色操作时,则预载该纹理描述符数据至L2缓冲器的动作将被以一简化基本执行。
该内文寄存器命令233与该纹理数据缓冲器内文管理器236时时交流以更新与正在处理的不同内文的相关信息。该执行着色器命令235指示该着色器执行单元234去履行着色操作,在该着色器执行单元234中,数据消耗或者利用的状态在着色操作过程中会与该纹理数据缓冲器内文管理器236交流,以取得要求的描述符和更新纹理描述符数据的状态。
一个无效纹理数据命令237与该纹理数据内文管理器236进行交流,一特别的纹理描述符不再有效,要被销毁或者改写。这样的话,在L2缓冲器238或者L1缓冲器240中,该着色器执行单元234请求数据是无效的。通过该存储器接口242下载的纹理描述符,可以被用于代替一现存的缓冲器入口,基于一至少最近被使用过的安排。该无效纹理数据命令237也能被用于移动纹理描述符数据,该纹理描述符数据可能会与随后的着色器操作中请求的纹理描述符数据引起冲突。然而,该无效不总是必须的,例如当两个不同内文的纹理描述符不再冲突时。这样的话,该L1缓冲器能包含多样的内文纹理描述符,将其用于不同内文的同时执行。
请参考图7,其绘示了本发明所揭露***和方法的一纹理描述数据格式的实施例的方块图。如图所示,多个独立的绘图内文(Graphics Context)300中的每一个都包括,例如,128位的纹理描述符302。除此之外,该128位的纹理描述符302也包括,例如,128位的纹理信息。进一步的,该纹理信息包含但不限于,虚拟或者实际地址、纹理格式、纹理组建类型、映射数量、线形特征、空间信息、滤波器模式、滤波器解决方案(FilterResolution)、伽马校正(Gamma Correction)、纹理边界数据和其中的压缩数据等。
请参考图8,其绘示了一纹理描述符缓冲器实施例的方块图。该纹理描述符缓冲器L1,其包含了16线322,而该16线322中的每一线可以存储4个纹理描述符324。这样一来,纹理缓冲器320中的每四条线可用于形成一组326,而该每一组326包含16个纹理描述符324。因此,组0包含纹理描述符T0-T15,组1包含纹理描述符T16-T31,组2包含纹理描述符T32-T47,及组3包含纹理描述符T48-T63。这样一来,如图9所示,当从纹理缓冲器L1 320转移纹理数据至着色缓冲器L2 330时(该普通高速缓冲存储器的一分割部分),该着色缓冲器L2 330中的每一线可以存储组336中的所有纹理描述符。图9绘示了普通高速缓冲存储器L2的一可替换实施例的方块图。请注意,该着色缓冲器330包含了一为纹理描述符数据332的定位缓冲器和一为其他非与纹理相关的着色数据334的定位缓冲器。本领域普通技术人员可知为效仿目的的以上图7至图9绘示的格式和缓冲器的尺寸/维度将不会限制本发明的范围和精神。例如,一内文(Context)300可以包含比128位纹理描述符302更多或者更少的纹理描述符。相似的,该纹理缓冲器320也可以包含比16线322更多或者更少的线,每一个也可以包含比四个更多或者更少的纹理描述符。
请参考图10,其绘示了一纹理请求格式的可效仿实施例的方块图。因为纹理请求350为一像素着色器,顶点着色器或者一几何着色器可以相应于纹理服务,所以着色类型领域352包含至该纹理请求。同样的,因为该纹理请求也可以相应于其他多样内文(Multiple Contexts)中的任一个,一内文ID领域354包含辨别该内文(Context)是哪个请求作出的,除此之外,该纹理请求350也包含一纹理描述符数字356。该纹理描述符数字356被一纹理地址生成器所利用在该***登记器中去寻找一虚拟地址,以及为该纹理数据预取和相依纹理读取缓冲器产生一纹理地址。
如图11所示的纹理描述符地址值370,其包含一着色类型领域372,用于存储一显示着色类型的值。一纹理描述符数据370也包含一内文数量(Context Quantity)领域374,用于在该第二逻辑模块中存储一显示正在处理中的该内文数量的值。一组辨认领域376,用于存储一显示该纹理描述符位于多个组中的哪一个的值。除此之外,该纹理描述符数据370也包含一基础地址378,该基础地址378也包含一有效位380和一组虚拟地址3382。其中,有效位380用于显示该纹理描述符是否有效。一组虚拟地址可以进一步被与一偏移量值386耦接的一开始编码384所定义。该开始编码384用于辨认位于一组中的该多个线中的一个。
请参考图12,其绘示了一管理纹理数据方法的实施例的方块图。如步骤510所示的,该方法500开始,在执行着色操作之前,预载该纹理描述符数据至一第一纹理描述符缓冲器L1。按此方法,该纹理数据被处理并使其可用于着色器随后的处理,而随后的处理能依着色器对未来操作的预测需求而进行。通过预载该纹理描述符数据,从存储器取得所需数据所对应的延迟时间将被消减,因而改进运作。此方法也包含,于步骤520,若着色器需要对相依纹理数据做连续的操作,则从存储器读取未载入的纹理数据。在着色器处理特别的绘图元素之后,可以使用本操作。在某些环境下,着色器会于特别的着色操作完成之前,执行一相依读取搜寻额外数据。因此,使用相依读取的着色处理比使用预载数据的相似着色处理需要较多的时间。
请参考图13,其绘示了管理纹理数据方法的替换实施例方式说明方块图。方法600包括从***存储器预载第一纹理描述符数据至第一缓冲器L1(步骤610)。该第一纹理数据可以是纹理描述符,其包含了纹理、尺寸等信息。方法600也包括预载第一纹理描述符数据至第二缓冲器L2(步骤620)。该第二缓冲器L2也被用于接收和存储与纹理处理不相关的数据。例如,与其他着色功能相关的数据可以被存储在该第二缓冲器L2中。该预载纹理描述符数据L2相应于在第一逻辑模块中还未被处理的绘图元素。于步骤630中,在该第二逻辑模块中的第一纹理描述符数据被用于执行纹理数据取得和执行一着色计算。通过在初期的管线阶段预览像素,在第二逻辑模块中决定将来操作的数据请求。当利用该预载纹理数据时,该着色计算不会因从存储位置检索数据的延迟时间而影响执行。方法600也包括动态的将第二纹理描述符数据载入于第一缓冲器L1(步骤640)。动态载入发生于当第一逻辑模块需要的纹理描述符数据并非存储在第一缓冲器L1。第二纹理数据是为了纹理服务而由处理相依读取请求而产生的。这可以包括从第二缓冲器L2取得纹理描述符,或者在一些实施例中是从存储器中取得。已处理的相依读取纹理描述符需求的结果被写入该第一缓冲器L1。当第一缓冲器L1缺乏容量去接收该第二纹理数据时,于步骤650,则现存于该第一缓冲器L1的数据会被改写。一最近最少使用(Least RecentlyUsed,LRU)演算法会被用于决定现存于第一缓冲器L1的哪部分数据将被第二缓冲器的数据所改写。
本发明可实施于硬件、软件、韧件或者上述的结合。一些实施例方式可被安排于软件或者韧件上,其存储于存储器并且受适当的指令执行***所执行。如果实施于硬件上,利用下述技术的结合可以达成其他的实施方式。一离散逻辑电路具有逻辑门,可以依照数据信号来完成逻辑功能、一有适当整合的逻辑门专用集成电路(ASIC)、一可编程逻辑门阵列(PGA)、一现场可编程逻辑门阵列(FPGA)等等。
任何处理程序的描述或流程图中的步骤可被理解为表示模块、程序段或编码指部分,其包括一个或一个以上用以实施特定逻辑功能或处理不周的可执行命令,并且在不超出本发明实施方式的范围,其他的方式用以执行出的功能及前文所讨论的次序,亦包括依所牵涉的功能性实际上同时发生或颠倒的次序,其同样可以被熟悉本技术的人所理解。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
Claims (20)
1.一种在计算机中管理纹理数据的方法,其特征在于,包括下列步骤:
从位于一第一逻辑模块中的一第一缓冲器的一存储位置,预载第一多个纹理描述符值,以响应一读取请求,其中该第一缓冲器用于接收位于该第一逻辑模块中的数据;
从该存储位置,预载该第多个纹理描述符值至位于一第二逻辑模块的一第二缓冲器;
利用在该第二逻辑模块中的该第一多个纹理描述符值,执行一着色计算;
从存储器动态载入第二多个纹理描述符值至该第一缓冲器,以响应该第一逻辑模块所要求的额外数据;以及
用该第二多个纹理描述符值改写该第一多个纹理描述符值的一部分,以反应该第一缓冲器已满。
2.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,进一步包含基于一最近最少使用的演算法决定该第一多个纹理描述符值中被改写的该部分。
3.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,进一步包含从一纹理地址逻辑模块接收一预载命令至该第二逻辑模块。
4.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,该第一逻辑模块是一纹理处理模块及该第二逻辑模块是一着色处理模块。
5.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,该第一多个纹理描述符值包含相应于纹理描述符值的多个标识数据值。
6.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,该预载至该第二缓冲器的动作包含,通过在初期的管线阶段预览像素,在该第二逻辑模块中决定一将来操作的数据请求。
7.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,进一步包含分割该第二多个纹理描述符值至被该第二缓冲器取得的多个组。
8.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,进一步包含在一纹理描述符地址缓冲器中保留一纹理描述符地址值。
9.根据权利要求8所述的在计算机中管理纹理数据的方法,其特征在于,该纹理描述符地址值包含以下的任一结合:
一着色类型领域,用于存储一显示着色类型的值;
一内文数量领域,用于在该第二逻辑模块中存储一显示正在处理中的该内文数量的值;
一组辨认领域,用于存储一显示该纹理描述符位于多个组中的哪一个的值;以及
一基于纹理描述符的地址值。
10.根据权利要求9所述的在计算机中管理纹理数据的方法,其特征在于,该基于纹理描述的地址值符包含以下的任一结合:
一有效位,用于显示该纹理描述符是否有效;
一纹理描述符组虚拟地址;以及
一纹理描述符开始编码,用于辨认位于一组中的该多个线中的一个。
11.根据权利要求1所述的在计算机中管理纹理数据的方法,其特征在于,该动态载入包含,当该第一逻辑模块请求的纹理描述符数据没有存储在该第一缓冲器中时的载入。
12.一种计算机中管理纹理数据的***,其特征在于,包括:
一第一逻辑模块,位于一绘图管线中,该第一逻辑模块用于执行纹理处理;
一第一缓冲器,位于该第一逻辑模块中,该第一缓冲器用于接收多个纹理描述符值中的一第一被预载部分;
一第二逻辑模块,位于该绘图管线中,该第二逻辑模块用于执行着色处理;
一第二缓冲器,位于该第二逻辑模块,该第二缓冲器用于接收多个纹理描述符值中的一第二被预载部分,以反应该第一缓冲器已经存储满该多个纹理描述符值;
纹理缓冲器逻辑模块,用于管理相应于多个内文的纹理描述符数据;以及
预取缓冲逻辑模块,用于在多个特别登记器中存储多个预取纹理描述符。
13.根据权利要求12所述的计算机中管理纹理数据的***,其特征在于,进一步包含一确认逻辑模块,该确认逻辑模块用于选择性的移动该多个纹理描述符值中无效的一个。
14.根据权利要求12所述的计算机中管理纹理数据的***,其特征在于,进一步包括一存储器接口,该存储器接口用于从存储器中抽取一被请求纹理描述符,以反应没有被存储在该第一缓冲器和该第二缓冲器中的该被请求的纹理描述符。
15.根据权利要求14所述的计算机中管理纹理数据的***,其特征在于,在该第一缓冲器和该第二缓冲器中,该被请求的纹理描述符被一最近最少使用的纹理描述符数据值所改写。
16.根据权利要求12所述的计算机中管理纹理数据的***,其特征在于,该第二缓冲器包含一可共享的缓冲器,该可共享的缓冲器用于存储与在该第二逻辑模块中执行关系非纹理逻辑功能的数据。
17.根据权利要求12所述的计算机中管理纹理数据的***,其特征在于,进一步包含纹理高速缓冲存储逻辑模块,用于在该第一缓冲器和该第二缓冲器中管理该多个纹理描述符值。
18.根据权利要求17所述的计算机中管理纹理数据的***,其特征在于,该纹理高速缓冲存储逻辑模块从该第二缓冲器请求一纹理描述符,以响应该第一缓冲器显示的一遗漏。
19.根据权利要求18所述的计算机中管理纹理数据的***,其特征在于,该第二缓冲器将从一存储模块中抽取该纹理描述符,以响应该第二缓冲器显示的一遗漏。
20.根据权利要求12所述的计算机中管理纹理数据的***,其特征在于,进一步包含一选址方式,该选址方式用于决定相应于一纹理描述符的一纹理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/943,071 US7999819B2 (en) | 2007-11-20 | 2007-11-20 | Systems and methods for managing texture descriptors in a shared texture engine |
US11/943,071 | 2007-11-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101236661A true CN101236661A (zh) | 2008-08-06 |
CN101236661B CN101236661B (zh) | 2010-12-01 |
Family
ID=39920254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100835443A Active CN101236661B (zh) | 2007-11-20 | 2008-03-07 | 在计算机中管理纹理数据的***与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7999819B2 (zh) |
CN (1) | CN101236661B (zh) |
TW (1) | TWI375179B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262774A (zh) * | 2010-05-29 | 2011-11-30 | 英特尔公司 | 用于图形硬件的非易失性存储 |
CN107153617A (zh) * | 2016-03-04 | 2017-09-12 | 三星电子株式会社 | 用于利用缓冲器高效访问纹理数据的高速缓存体系结构 |
CN112005209A (zh) * | 2018-03-29 | 2020-11-27 | 微软技术许可有限责任公司 | 用于以原子方式呈现覆盖多个显示器的单个缓冲器的机制 |
CN116433464A (zh) * | 2023-06-14 | 2023-07-14 | 北京象帝先计算技术有限公司 | 存储地址偏移量计算装置、方法、电子组件及电子设备 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8737832B1 (en) | 2006-02-10 | 2014-05-27 | Nvidia Corporation | Flicker band automated detection system and method |
US8594441B1 (en) | 2006-09-12 | 2013-11-26 | Nvidia Corporation | Compressing image-based data using luminance |
US8724895B2 (en) | 2007-07-23 | 2014-05-13 | Nvidia Corporation | Techniques for reducing color artifacts in digital images |
US7876329B2 (en) * | 2007-09-10 | 2011-01-25 | Via Technologies, Inc. | Systems and methods for managing texture data in a computer |
US8174534B2 (en) * | 2007-12-06 | 2012-05-08 | Via Technologies, Inc. | Shader processing systems and methods |
US9177368B2 (en) * | 2007-12-17 | 2015-11-03 | Nvidia Corporation | Image distortion correction |
US8780128B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Contiguously packed data |
US8698908B2 (en) | 2008-02-11 | 2014-04-15 | Nvidia Corporation | Efficient method for reducing noise and blur in a composite still image from a rolling shutter camera |
US9379156B2 (en) | 2008-04-10 | 2016-06-28 | Nvidia Corporation | Per-channel image intensity correction |
US8749662B2 (en) | 2009-04-16 | 2014-06-10 | Nvidia Corporation | System and method for lens shading image correction |
US9582919B2 (en) * | 2009-10-09 | 2017-02-28 | Microsoft Technology Licensing, Llc | Automatic run-time identification of textures |
US8872823B2 (en) * | 2009-10-09 | 2014-10-28 | Microsoft Corporation | Automatic real-time shader modification for texture fetch instrumentation |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
CN102970542B (zh) | 2012-11-30 | 2015-06-10 | 上海晨思电子科技有限公司 | 一种视频数据转换的方法、装置和智能电视 |
KR102048885B1 (ko) | 2013-05-09 | 2019-11-26 | 삼성전자 주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 렌더링 방법 |
KR102066659B1 (ko) | 2013-08-13 | 2020-01-15 | 삼성전자 주식회사 | 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템 및 이의 동작 방법 |
US9430394B2 (en) * | 2013-12-12 | 2016-08-30 | Mediatek Singapore Pte. Ltd. | Storage system having data storage lines with different data storage line sizes |
US9619898B2 (en) * | 2013-12-28 | 2017-04-11 | Intel Corporation | Angle-dependent anisotropic filtering |
KR102651126B1 (ko) * | 2016-11-28 | 2024-03-26 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법 |
US11010863B2 (en) * | 2019-09-27 | 2021-05-18 | Apple Inc. | Bindpoint emulation |
WO2021237441A1 (en) | 2020-05-26 | 2021-12-02 | Huawei Technologies Co., Ltd. | Device and method for data packing in memory |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828382A (en) * | 1996-08-02 | 1998-10-27 | Cirrus Logic, Inc. | Apparatus for dynamic XY tiled texture caching |
US6825848B1 (en) * | 1999-09-17 | 2004-11-30 | S3 Graphics Co., Ltd. | Synchronized two-level graphics processing cache |
US7245302B1 (en) * | 2003-10-30 | 2007-07-17 | Nvidia Corporation | Processing high numbers of independent textures in a 3-D graphics pipeline |
-
2007
- 2007-11-20 US US11/943,071 patent/US7999819B2/en active Active
-
2008
- 2008-03-04 TW TW097107453A patent/TWI375179B/zh active
- 2008-03-07 CN CN2008100835443A patent/CN101236661B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262774A (zh) * | 2010-05-29 | 2011-11-30 | 英特尔公司 | 用于图形硬件的非易失性存储 |
CN102262774B (zh) * | 2010-05-29 | 2013-08-21 | 英特尔公司 | 用于图形硬件的非易失性存储 |
CN107153617A (zh) * | 2016-03-04 | 2017-09-12 | 三星电子株式会社 | 用于利用缓冲器高效访问纹理数据的高速缓存体系结构 |
CN107153617B (zh) * | 2016-03-04 | 2023-04-07 | 三星电子株式会社 | 用于利用缓冲器高效访问纹理数据的高速缓存体系结构 |
CN112005209A (zh) * | 2018-03-29 | 2020-11-27 | 微软技术许可有限责任公司 | 用于以原子方式呈现覆盖多个显示器的单个缓冲器的机制 |
CN112005209B (zh) * | 2018-03-29 | 2024-03-19 | 微软技术许可有限责任公司 | 用于以原子方式呈现覆盖多个显示器的单个缓冲器的机制 |
CN116433464A (zh) * | 2023-06-14 | 2023-07-14 | 北京象帝先计算技术有限公司 | 存储地址偏移量计算装置、方法、电子组件及电子设备 |
CN116433464B (zh) * | 2023-06-14 | 2023-11-17 | 北京象帝先计算技术有限公司 | 存储地址偏移量计算装置、方法、电子组件及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
TW200923832A (en) | 2009-06-01 |
US20090128575A1 (en) | 2009-05-21 |
US7999819B2 (en) | 2011-08-16 |
CN101236661B (zh) | 2010-12-01 |
TWI375179B (en) | 2012-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101236661B (zh) | 在计算机中管理纹理数据的***与方法 | |
CN103793893B (zh) | 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序 | |
US7996621B2 (en) | Data cache invalidate with data dependent expiration using a step value | |
US9134954B2 (en) | GPU memory buffer pre-fetch and pre-back signaling to avoid page-fault | |
US8022958B2 (en) | Indexes of graphics processing objects in graphics processing unit commands | |
CN1287330C (zh) | 用于区带渲染的有效图形状态管理 | |
US6734867B1 (en) | Cache invalidation method and apparatus for a graphics processing system | |
CN103995684B (zh) | 超高分辨率平台下的海量影像并行处理显示方法及*** | |
CN103003839B (zh) | 反锯齿样本的拆分存储 | |
GB2445845A (en) | Distributing Pixel Data According To Rendering Features | |
US20070211070A1 (en) | Texture unit for multi processor environment | |
CN104050705A (zh) | 处置光栅操作中的post-z覆盖数据 | |
CN109978977A (zh) | 使用预取的图形数据执行基于图块的渲染的装置和方法 | |
CN101201933B (zh) | 绘图处理单元及方法 | |
CN103885902A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
CN101178806B (zh) | 计算机中管理纹理数据的***与方法 | |
KR20060116916A (ko) | 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법 | |
US20140204098A1 (en) | System, method, and computer program product for graphics processing unit (gpu) demand paging | |
KR102589298B1 (ko) | 그래픽스 프로세싱 장치 및, 그래픽스 프로세싱 장치에서 캐시 바이패스를 제어하는 방법 | |
US10706607B1 (en) | Graphics texture mapping | |
US11321241B2 (en) | Techniques to improve translation lookaside buffer reach by leveraging idle resources | |
WO2022095010A1 (en) | Methods and apparatus for rasterization of compute workloads | |
US10956338B2 (en) | Low latency dirty RAM for cache invalidation speed improvement | |
CN103279430A (zh) | 图形处理单元中的缓存索引映射方法及装置 | |
US11294817B2 (en) | Concurrent cache lookups using partial identifiers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |