CN111052172A - 使用压缩元数据的纹理驻留检查 - Google Patents
使用压缩元数据的纹理驻留检查 Download PDFInfo
- Publication number
- CN111052172A CN111052172A CN201880055295.9A CN201880055295A CN111052172A CN 111052172 A CN111052172 A CN 111052172A CN 201880055295 A CN201880055295 A CN 201880055295A CN 111052172 A CN111052172 A CN 111052172A
- Authority
- CN
- China
- Prior art keywords
- texture
- metadata
- texture block
- data
- memory
- 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
- 230000015654 memory Effects 0.000 claims abstract description 142
- 230000004044 response Effects 0.000 claims abstract description 44
- 230000006835 compression Effects 0.000 claims abstract description 26
- 238000007906 compression Methods 0.000 claims abstract description 26
- 238000005070 sampling Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 27
- 238000010586 diagram Methods 0.000 description 15
- 230000008901 benefit Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
Abstract
管线被配置为访问存储纹理块和元数据的存储器,所述元数据对所述纹理块的压缩参数和所述纹理块的驻留状态进行编码。处理器结合请求所述纹理块中的数据而请求访问所述元数据以执行着色操作。所述管线根据所述元数据是否指示所述纹理块驻留在所述存储器中来选择性将所述纹理块中的所述数据返回至所述处理器。还可以包括缓存以存储所述元数据的副本,所述元数据对所述纹理块的所述压缩参数进行编码。可以响应于对访问所述缓存中存储的所述元数据的请求而修改所述驻留状态和所述缓存中存储的所述元数据。
Description
背景技术
图形处理单元(GPU)通常使用由一系列可编程着色器和固定功能硬件模块形成的图形管线来处理三维(3D)图形。例如,在帧中可见的对象的3D模型可以由一组三角形、其他多边形或面片表示,在图形管线中处理该三角形、其他多边形或面片以产生像素值以显示给用户。三角形、其他多边形或面片统称为图元。处理包括将纹理映射至图元以合并视觉细节,该视觉细节的分辨率比图元的分辨率更高。GPU包括专用存储器,该专用存储器用于存储纹理值以使得纹理值可用于映射至图形管线中处理的图元。纹理可以存储在磁盘上或根据图形管线的需要按程序生成。通过从磁盘加载纹理或按程序生成数据,填充专用GPU存储器中存储的纹理数据。专用GPU存储器通常是相对较小的存储器,这限制了专用GPU存储器中可以存储的纹理数据量。此外,填充纹理数据所需的开销可以很大,特别是如果仅纹理数据的小子集用于渲染最终屏幕图像时。例如,即使仅页面中的小部分数据用于渲染图像,也要逐页从磁盘加载纹理。
附图说明
通过参考附图,可以更好地理解本公开,并且其众多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同附图标记指示相似或相同的物品。
图1是根据一些实施方案的包括用于创建旨在输出到显示器的视觉图像的图形处理单元(GPU)的处理系统的框图。
图2描绘了根据一些实施方案的能够处理高阶几何图元以生成预定分辨率的三维(3D)场景的光栅化图像的图形管线。
图3是根据一些实施方案的用于存储纹理块和对应元数据的存储器结构的框图。
图4是根据一些实施方案的用于基于包括纹理数据的纹理块的驻留状态来选择性返回纹理数据的方法的流程图。
图5是根据一些实施方案的操作与GPU存储器相关联的元数据缓存的方法的流程图。
图6是根据一些实施方案的用于在GPU存储器和相关联的缓存中填充纹理数据的方法的流程图。
图8是根据一些实施方案的通过对元数据表面采样来生成非驻留图块的工作列表的方法的流程图。
图9是根据一些实施方案的用纹理数据填充非驻留、先前采样的图块的方法的流程图。
具体实施方式
可以通过填充纹理的子集并且使用驻留结构指示存储器中驻留的部分纹理来节省专用GPU存储器中的空间。然后可以在访问纹理数据之前查询驻留结构,以确保纹理数据驻留在专用GPU存储器中。因此,响应于访问纹理数据的请求,GPU仅需要填充尚未驻留在专用GPU存储器中的部分纹理。实现驻留结构因此可以通过消除完全填充专用GPU存储器中存储的每个纹理的需求来提高性能。然而,硬件加速的驻留检查使用虚拟存储器地址转换表来实现,因此驻留检查的粒度由虚拟存储器页面的粒度(通常为64kB)确定。图形管线通常使用每个虚拟存储器页面中的仅一小部分纹理数据,这导致硬件加速的驻留检查引起用于在每个虚拟存储器页面中填充纹理数据的大量开销。基于软件的驻留检查可以实现任意小的粒度,但是实现基于软件的驻留检查的应用程序必须针对每个纹理采样操作执行驻留结构的遍历(其包括应用程序与驻留结构之间的至少一个命令/响应交换)。因此,可能需要基于软件的驻留检查以针对每个渲染像素遍历驻留结构,这将降低图形管线的性能并且增加延迟。
通过存储对纹理块的压缩参数和纹理块的驻留状态进行编码的元数据,针对任意粒度的纹理块的驻留检查可以在硬件中执行,并且因此无需基于软件的驻留检查的命令/响应开销。元数据存储在GPU存储器中,该GPU存储器还用于存储纹理块以供由GPU实现的图形管线访问。图形管线中的着色器结合请求纹理块而访问纹理块的元数据以执行着色操作。例如,可以在请求纹理块的同时访问元数据。如果元数据指示纹理块驻留在GPU存储器中,则将对纹理块中的数据的请求返回至着色器。因此,如果纹理块驻留在GPU存储器中,则驻留检查不会引起额外的开销。如果元数据指示纹理块未驻留在GPU存储器中,则信号被馈送回着色器以指示所请求的数据未驻留在GPU存储器中。着色器可以响应于接收到反馈而填充非驻留纹理块(例如,通过从磁盘加载纹理块或按程序生成纹理块的数据)。然后,着色器可以结合(例如,同时)纹理块而重新访问元数据。在纹理块未驻留在GPU存储器中的情况下,则执行驻留检查所需的额外开销最小,因为它在采样操作的流程中执行(例如,与尝试访问纹理块结合或同时进行)。此外,相对于由常规纹理请求所引起的开销的额外开销最小,因为需要常规纹理请求访问指示针对所请求的纹理的压缩率的元数据。
在一些实施方案中,元数据缓存存储由着色器频繁访问的纹理块的元数据。元数据缓存可以包括指示在先前驻留检查期间由着色器访问的元数据是否指示相关联的纹理块未驻留在GPU存储器中的信息。元数据缓存的一些实施方案响应于访问部分纹理块(例如,图块或缓存线)的一些类型的请求而修改驻留状态。例如,响应于试图从元数据缓存访问非驻留图块的元数据的纹理块获取操作,可以将图块的驻留状态改变为“非驻留、采样”。由着色器执行的采样操作所触及的非驻留图块的元数据因此被标记在缓存的元数据中,当元数据缓存将所修改的元数据逐回全局存储器时,最终将该缓存的元数据写回到存储器。应用程序可以读取元数据以定位非驻留、采样的图块,并且用有效数据填充非驻留、采样的图块,例如,如果应用程序未来期望访问非驻留、采样的图块时。又如,可以响应于将纹理数据写入到图块而将图块的驻留状态改变为“驻留”。在一些实施方案中,用于指示写入到图块中的压缩有效数据的压缩率的元数据值用于表示图块的驻留状态。例如,可以对元数据值编码,以使得元数据值的第一子集指示压缩有效数据的实际压缩率,并且驻留状态为“驻留”。元数据值的第二子集使用保留位模式来指示驻留状态为“非驻留、采样”。
图1是根据一些实施方案的包括用于创建旨在输出到显示器110的视觉图像的图形处理单元(GPU)105的处理系统100的框图。处理系统100包括存储器115。存储器115的一些实施方案实现为动态随机存取存储器(DRAM)。然而,存储器115也可以使用包括静态随机存取存储器(SRAM)、非易失性RAM等的其他类型的存储器来实现。在所示的实施方案中,GPU105通过总线120与存储器115通信。然而,GPU 105的一些实施方案通过直接连接或经由其他总线、桥、开关、路由器等与存储器115通信。GPU 105可以执行存储在存储器115中的指令,并且GPU 105可以将信息(诸如执行指令的结果)存储在存储器115中。例如,存储器115可以存储来自要由GPU 105执行的程序代码的指令副本125。GPU 105的一些实施方案包括可以同时或并行地独立地执行指令的多个处理器核心(为了清楚起见未示出)。
处理系统100包括用于执行指令的中央处理器(CPU)130。CPU 130的一些实施方案包括可以同时或并行地独立地执行指令的多个处理器核心(为了清楚起见未示出)。CPU130还连接到总线120,并且因此可以经由总线120与GPU 105和存储器115通信。CPU 130可以执行指令(诸如存储器115中存储的程序代码135),并且CPU 130可以将信息(诸如执行指令的结果)存储在存储器115中。CPU 130还能够通过向GPU 105发出绘图调用来启动图形处理。绘图调用是由CPU 130生成的命令并且被发送至GPU 105以指示GPU 105在帧中渲染对象(或对象的一部分)。绘图调用的一些实施方案包括定义纹理、状态、着色器、渲染对象、缓冲器等的信息,GPU 105使用该信息渲染对象或其一部分。绘图调用中包括的信息可以称为包括状态信息的状态向量。GPU 105渲染对象以产生向显示器110提供的像素值,该显示器使用像素值显示表示渲染对象的图像。
输入/输出(I/O)引擎140处理与显示器110以及处理系统100的其他元件(诸如键盘、鼠标、打印机、外部磁盘等)相关联的输入或输出操作。I/O引擎140耦接到总线120以使得I/O引擎140能够与GPU 105、存储器115或CPU 130通信。在所示的实施方案中,I/O引擎140被配置为读取外部存储介质145(诸如光盘(CD)、数字视频盘(DVD)等)上存储的信息。
外部存储介质145存储表示用于实现应用程序(诸如视频游戏)的程序代码的信息。可以将外部存储介质145上的程序代码写入到存储器115,以形成要由GPU 105或CPU130执行的指令副本125。外部存储介质145还存储表示纹理的信息,该纹理用于渲染图像以呈现在显示器110上。将外部存储介质145上存储的部分纹理写入到存储器115,该存储器将这一信息存储为纹理信息150。例如,纹理信息150可以包括纹理块以及指示压缩应用于纹理信息150中的纹理块的程度的对应压缩元数据。
GPU 105实现包括被配置用于响应于绘图调用而同时处理不同的图元或二进制文件的多个阶段的图形管线(为清楚起见未在图1中示出)。GPU 105中的图形管线的阶段可以同时处理由应用程序(诸如视频游戏)生成的不同图元。图元的处理包括将纹理映射至图元,例如,以提供额外的细节。GPU 105访问来自存储器115中存储的纹理信息150的纹理数据。然而,如本文中所论述,在GPU 105请求访问纹理数据之前,不必为所有纹理块填充纹理数据。例如,纹理数据可能尚未从外部存储介质145写入到存储器115。又如,CPU 130可能尚未根据程序代码135中的指令按程序生成纹理数据。
GPU 105通过结合请求访问纹理信息150中存储的纹理块而查询元数据,来确定所请求的纹理块的纹理数据在纹理信息150中是否可用。如本文中所使用,短语“结合...”指示GPU 105针对访问纹理块的每个请求发出元数据的查询。例如,GPU 105可以在请求访问纹理块的同时查询元数据。又如,GPU 105可以在请求访问纹理块之前查询元数据,以使得可以确定纹理块的驻留状态,并且如果需要,可以在访问请求之前填充纹理块。
元数据除了对针对纹理块的压缩率进行编码之外,还对纹理块的驻留状态进行编码。例如,元数据对指示是否已在纹理块中填充纹理数据的信息进行编码,并且因此可用于GPU 105进行纹理映射操作。根据元数据是否指示纹理块驻留在存储器115中,将纹理块中的数据选择性返回至GPU 105。例如,响应于元数据指示纹理块驻留在存储器115中,存储器115返回纹理块中的数据。又如,响应于元数据指示纹理块未驻留在存储器115中,将指示所请求的数据不可用的信号返回至GPU 105。然后,GPU 105可以响应于接收到信号而在纹理块中填充数据,无论是通过致使数据从外部存储介质145写入到存储器115,或者通过按程序生成数据并且将其存储在存储器115中,或者通过致使CPU 130按程序生成数据并且将其存储在存储器115中。GPU 105可以响应于在纹理块中填充数据而随后结合(例如,同时)重新请求纹理块来重新访问元数据。如本文中所论述,还可以执行对纹理数据和元数据的缓存。
图2描绘了根据一些实施方案的能够处理高阶几何图元以生成预定分辨率的三维(3D)场景的光栅化图像的图形管线200。图形管线200在图1中所示的GPU 105的一些实施方案中实现。图形管线200访问存储资源201(诸如一个或多个存储器或缓存的层次结构),该存储资源用于实现缓冲器并且存储顶点数据、纹理数据等。存储资源201可以使用图1中所示的存储器115的一些实施方案来实现。
输入汇编器202被配置为从存储资源201访问信息,该信息用于定义表示部分场景模型的对象。可以以软件实现的顶点着色器203在逻辑上接收图元的单个顶点作为输入并且输出单个顶点。着色器的一些实施方案(诸如顶点着色器203)实现大规模单指令多数据(SIMD)处理,以使得可以同时处理多个顶点。图2中所示的图形管线200实现统一着色器模型以使得图形管线200中包括的所有着色器在共享的大规模SIMD计算单元上具有同一执行平台。包括顶点着色器203的着色器因此使用一组公共资源来实现,该资源在本文中称为统一着色器池204。统一着色器池204的一些实施方案使用图1中所示的GPU 105中的处理器来实现。
外壳着色器205在输入高阶面片或用于定义输入面片的控制点上操作。外壳着色器205输出曲面细分因子和其他面片数据。可以可选地向曲面细分单元206提供由外壳着色器205生成的图元。曲面细分单元206从外壳着色器205接收对象(诸如面片),并且生成识别对应于输入对象的图元的信息,例如,通过基于由外壳着色器205向曲面细分单元106提供的曲面细分因子来对输入对象进行曲面细分。曲面细分将输入较高阶图元(诸如面片)细分为表示更精细细节级别的一组较低阶输出图元,例如,如由指定由曲面细分过程产生的图元的粒度的曲面细分因子所指示。场景模型因此可以由较少数量的较高阶图元表示(以节省存储器或带宽),并且可以通过对较高阶图元进行曲面细分来添加额外细节。
域着色器207输入域位置和(可选地)其他面片数据。域着色器207对所提供的信息进行操作,并且基于输入域位置和其他信息来生成输出的单个顶点。几何着色器208接收输入图元,并且输出多达四个由几何着色器208基于输入图元生成的图元。向光栅化器209提供一个图元流,并且多达四个图元流可以串连至存储资源201中的缓冲器。光栅化器209执行着色操作以及其他操作(诸如裁剪、透视分割、剪切和视口选择等)。像素着色器210输入像素流并且响应于输入像素流而输出零或另一个像素流。输出合并器块211对从像素着色器210接收的像素执行混合、深度、模板或其他操作。
图形管线200中的一些或全部着色器可以使用存储资源201中存储的纹理数据来执行纹理映射。例如,像素着色器210可以从存储资源201读取纹理数据,并且使用纹理数据着色一个或多个像素。然后向显示器(诸如图1中所示的显示器110)提供着色像素以呈现给用户。然而,如本文中所论述,在图形管线200中的着色器需要纹理数据之前,不必将纹理数据填充到存储资源201。着色器(诸如像素着色器210)因此被配置为结合(例如,同时)请求纹理块而访问元数据以执行着色操作。元数据对针对纹理块的压缩率和纹理块的驻留状态进行编码。根据元数据是否指示纹理块驻留在存储资源201中,将纹理块中的数据选择性返回至着色器。
图3是根据一些实施方案的用于存储纹理块和对应元数据的存储器结构300的框图。存储器结构300在图1中所示的处理系统100和图2中所示的图形管线200的一些实施方案中实现。存储器结构300包括用于存储纹理块310(为了清楚起见,仅一个由附图标记指示)的GPU存储器305。GPU存储器305使用图1中所示的存储器115和图2中所示的存储资源201的一些实施方案来实现。
在所示的实施方案中,纹理块310是纹理信息的页面315的子集。例如,页面315可以实现为虚拟机页面粒度,该虚拟机页面粒度可以设置为4-64kB范围内的值。纹理块310可以被配置为任意粒度,诸如页面315的粒度的1/8、1/16或1/32。例如,每个纹理块310可以表示虚拟机页面的缓存行、图块或其他细分。GPU存储器305还存储对应纹理块310的元数据320(为了清楚起见,仅一个由附图标记指示)。元数据320对用于压缩对应纹理块310中的信息的压缩率进行编码。例如,如果可以以一组七个压缩率之一压缩纹理块310中的纹理数据,则可以使用三比特来对压缩率值进行编码。
并非所有纹理块310都填充有有效纹理数据。在所示的实施方案中,填充有有效纹理数据的纹理块310由交叉阴影框指示,而未填充有有效纹理数据的纹理块310由空心白框指示。元数据320因此包括用于指示对应纹理块310的有效纹理数据是否驻留在GPU存储器305中的驻留状态。在所示的实施方案中,包括指示有效纹理数据驻留在GPU存储器305中的编码信息的元数据320由交叉阴影框指示,而包括指示有效纹理数据未驻留在GPU存储器305中的编码信息的元数据320由空心白框指示。元数据320可以包括单独比特,该单独比特设置为不同值以指示对应纹理块310中的纹理数据是否驻留在GPU存储器305中。例如,比特可以设置为值1以指示纹理数据驻留,并且比特可以设置为值0以指示纹理数据未驻留。元数据320还可以组合压缩率而对驻留状态进行编码。例如,如果指示压缩率的七个值还指示纹理块310的纹理数据驻留在GPU存储器305中,则用于对七个可能压缩率进行编码的三比特还可以用于对驻留状态进行编码。第八值指示纹理块310的纹理数据未驻留在GPU存储器305中。
元数据320的一些实施方案还存储(或编码)指示元数据320的采样状态325的信息。采样状态325指示对与元数据320相关联的纹理块310的先前驻留检查是否指示纹理块310未驻留在GPU存储器305中。例如,采样状态325的值等于0指示没有先前驻留检查指示纹理块310未驻留在GPU存储器305中,而值等于1指示至少一个先前驻留检查指示纹理存储块310未驻留在GPU存储器305中。采样状态325可以用于对应用程序为应填充有加载的或生成的数据的图块生成的任务列表中的条目消除重复记录。尽管采样状态325由图3中的比特值指示,但是一些实施方案可以使用用于表示元数据320的比特值来对采样状态325进行编码。
存储器结构300包括用于存储频繁访问的元数据330的元数据缓存330。可以根据缓存替换策略将缓存的元数据335添加到元数据缓存330或从元数据缓存330中逐出。元数据330指示对应纹理块310的驻留状态,例如,交叉阴影化指示纹理数据驻留在GPU存储器305中。元数据缓存还存储对应于缓存的元数据335的采样状态325。可以响应于访问缓存的元数据335的请求而修改元数据330的采样状态325。例如,如果当将采样状态340和元数据335添加到元数据缓存330时采样状态325的值(或编码)为“非采样”,则响应于首次命中元数据335,将采样状态325改变为“采样”值(或编码)。如果对应纹理块310的纹理数据仍未驻留在GPU存储器305中,则响应于随后的报头,采样状态325维持“采样”值(或编码)。在一些实施方案中,响应于采样状态具有“采样”值以及驻留状态指示纹理块310的纹理数据未驻留在GPU存储器305中而为纹理块310填充纹理数据。为纹理块310所填充的纹理数据因此可用于随后的访问请求。响应于为纹理块310填充纹理数据,采样状态设置为“非采样”值,并且驻留状态设置为驻留。
存储器结构300的一些实施方案包括用于存储频繁访问的纹理块345(为清楚起见,仅一个由附图标记指示)的缓存(诸如L2缓存340)。根据缓存替换策略,将缓存的纹理块345添加到L2缓存340或从L2缓存340中逐出。例如,最近最少使用的缓存替换策略可以由L2缓存340来实现。在所示的实施方案中,缓存的纹理块345填充有有效纹理数据,如交叉阴影化所指示,以使得L2缓存340能够响应于缓存命中而返回有效纹理数据。
着色器(诸如着色器350)能够经由管线355结合访问对应纹理块而访问元数据。例如,着色器350可以在访问对应纹理块的同时访问元数据。在所示的实施方案中,着色器350将纹理请求提交给管线355,该管线将纹理请求变换为一个或多个同时的纹理数据请求和元数据请求。例如,管线355可以生成包含图块的元数据地址和图块内纹理数据的数据地址两者的请求。管线355的一些实施方案实现内部数据缓存以存储频繁访问的纹理数据副本,该纹理数据副本也存储在L2缓存340和GPU存储器305中。管线355因此可以通过返回其内部数据缓存中存储的纹理数据来响应一些纹理数据请求。
管线355被配置为将对纹理数据的请求提交给L2缓存340。如果请求命中L2缓存340,则所请求的纹理数据从L2缓存340返回至管线355。如果请求未命中L2缓存340,则将请求转发至GPU存储器305。将纹理数据的驻留状态的查询提交给元数据缓存330。如果查询命中元数据缓存330,则元数据缓存330将元数据330返回至管线355,该管线使用元数据330确定驻留状态(例如,驻留或非驻留),以及纹理数据的采样状态325(例如,是否先前采样)。如本文中所论述,可以响应于查询而修改驻留状态或采样状态。如果查询未命中元数据缓存330,则将查询转发至GPU存储器305。
响应于接收到对纹理块310的驻留状态的查询,GPU存储器305将编码的元数据320返回至管线355,该管线使用编码的元数据320确定纹理块310的纹理数据驻留还是未驻留在GPU存储器305中。如果纹理数据驻留,则GPU存储器305响应于对纹理块310中的纹理数据的请求,将所请求的纹理数据返回至管线355。
管线355从元数据缓存330或GPU存储器305接收所请求的纹理数据和所请求的元数据。管线355可以翻译这一信息,并且将所翻译的信息返回至着色器350。例如,管线355使用元数据确定所请求的纹理数据是否驻留在GPU存储器305中。如果是这样,则管线355将所请求的纹理数据返回至着色器350。如果元数据指示所请求的纹理数据未驻留在GPU存储器305中,则管线355返回指示所请求的纹理数据未驻留在GPU存储器305中的信号。如果返回所请求的纹理数据,则着色器350继续使用所请求的纹理数据来处理。如果着色器350接收指示所请求的纹理数据未驻留在GPU存储器305中的信号,则着色器350可以响应于接收到信号而发出用有效纹理数据填充纹理块310的指令。着色器350随后可以重新提交对纹理数据的请求以及纹理块310的元数据的查询。
图4是根据一些实施方案的用于基于包括纹理数据的纹理块的驻留状态来选择性返回纹理数据的方法400的流程图。方法在图1中所示的处理系统100、图2中所示的图形管线200和图3中所示的存储器结构300的一些实施方案中实现。
在框405处,着色器提交同时访问存储器中存储的纹理块的元数据和纹理数据的请求。如本文中所论述,在着色器提交请求之前不必填充纹理数据。元数据因此对纹理数据的驻留状态进行编码以指示纹理数据驻留还是未驻留在存储器中。因此,元数据访问用于确定纹理数据的驻留状态,同时访问纹理数据的请求用于从缓存或存储器检索纹理数据。元数据还用于确定纹理数据的压缩率。
在判定框410处,确定纹理块的纹理数据的驻留状态。例如,如果编码的元数据具有对应于驻留纹理数据的值,则将纹理数据的驻留状态确定为“驻留”。如果编码的元数据具有指示纹理数据未驻留在存储器中的值,则将纹理数据的驻留状态确定为“非驻留”。如果纹理数据驻留在存储器中,则方法流至到框415。如果纹理数据未驻留在存储器中,则方法流至框420。
在框415处,将所请求的纹理数据返回至着色器。如本文中所论述,驻留纹理数据可以从存储器(诸如GPU存储器305)或对应缓存(诸如图3中所示的L2缓存340)返回至着色器。
在框420处,将指示所请求的纹理数据未驻留在存储器中的信号返回至着色器。响应于接收到信号,着色器发出用所请求的纹理数据填充(在框425处)纹理块的指令。然后,方法400流至框405,并且着色器重新提交访问纹理块中的元数据和纹理数据的同时请求。此刻,纹理数据应驻留在存储器中。然而,如果纹理数据仍未驻留在存储器中,则方法400可以迭代直到着色器成功从存储器检索所请求的纹理数据。
图5是根据一些实施方案的操作与GPU存储器相关联的元数据缓存的方法500的流程图。方法500在图3中所示的元数据缓存330和GPU存储器305的一些实施方案中实现。
在框505处,向元数据缓存发出访问纹理块的元数据的请求。例如,请求可以包括图块的元数据地址。在判定框510处,元数据缓存确定请求是否命中元数据缓存,例如,通过比较部分元数据地址与元数据缓存中的标签数组。如果请求命中元数据缓存,则方法流至判定框515。如果请求未命中元数据缓存,则方法进流至框520。
在框520处,将对元数据的请求转发至GPU存储器,并且从GPU存储器访问所请求的元数据。如本文中所论述,所请求的元数据可以用于确定对应纹理数据的压缩率和驻留状态。在框525处,根据缓存替换策略,将从GPU存储器检索的元数据缓存在元数据缓存中。例如,最近最少使用的缓存条目可以从元数据缓存中逐出,并且用所检索的元数据替换。
在判定框515处,元数据用于确定所请求的纹理数据是否驻留在GPU存储器中。例如,管线(诸如图3中所示的管线355)可以转换元数据以确定所请求的纹理数据驻留还是未驻留。如果纹理数据未驻留在存储器中,则方法500流至框530。如果纹理数据驻留在存储器中,则方法500流至框535。
在框530处,将缓存的元数据的采样状态修改为“采样”以指示先前缓存的元数据已在其他访问请求下被采样。在一些实施方案中,缓存的元数据的采样状态可以用于对任务列表消除重复记录。然后,方法500从框530流至框535。在框535处,返回缓存的元数据值。例如,可以将缓存的元数据值返回至管线,该管线转换缓存的元数据值,并且向着色器提供所请求的纹理数据或指示所请求的纹理数据未驻留在存储器中的信号。
图6是根据一些实施方案的用于在GPU存储器和相关联的缓存中填充纹理数据的方法600的流程图。方法600在图3中所示的存储器结构300的一些实施方案中实现。例如,方法600可以响应于来自着色器350在图3中所示的纹理块310中填充未驻留纹理数据的请求而实现。
在框605处,为GPU存储器中的纹理块填充纹理数据。例如,可以通过从磁盘(诸如图1中所示的存储介质145)检索纹理数据来填充纹理数据。还可以通过按程序生成纹理数据来填充纹理数据。例如,CPU 130可以执行程序代码副本125中的指令以在GPU存储器中按程序生成纹理块的纹理数据。
在框610处,修改所填充的纹理块的元数据以指示纹理数据驻留在GPU存储器中。例如,可以修改对纹理数据的压缩率和纹理数据的驻留状态进行编码的元数据值,以指示纹理数据的压缩率和“驻留”的驻留状态。如果纹理块的元数据先前缓存在元数据缓存中,则修改(在框615处)元数据缓存中的条目以指示纹理块的新驻留状态。例如,缓存一致性协议可以用于修改编码的元数据的缓存值。
图7是根据一些实施方案的与纹理块相关联的元数据表面700的框图。元数据表面700包括指示用于纹理的对应部分(诸如图块)的压缩率以及图块的驻留状态的条目705(为了清楚起见,仅一个由附图标记指示)。元数据表面700因此可以表示图3中所示的对应纹理块310的元数据320的一些实施方案。如本文中所论述,存储器中驻留的图块由交叉阴影条目710指示(为了清楚起见,仅一个由附图标记指示),并且已被先前采样的驻留图块715进一步由字母“S”指示,驻留状态和采样状态可以由不同的比特子集指示,或者它们可以被编码成同一比特组。
可以通过对部分元数据表面700采样来确定图块的驻留状态或采样状态。例如,着色器可以对采样覆盖区720内的条目705、710采样以确定与元数据表面700相关联的纹理中对应图块的驻留状态或采样状态。在一些实施方案中,着色器检查采样覆盖区720内的图块的驻留状态,而不请求图块的纹理数据。可以结合从图块访问纹理数据而执行检查图块的驻留状态。例如,着色器可以使用指示纹理中的非驻留图块的反馈来生成在单独遍历期间要处理的图块的工作列表。然后,可以在单独遍历期间用有效数据填充工作列表中的非驻留图块。着色器对已填充有有效数据并且因此不需要额外访问元数据表面700的图块执行纹理数据采样。在一些实施方案中,着色器运行改变图块的采样状态的检查操作。例如,如果对采样覆盖区720内的图块执行检查操作,则响应于检查操作,将采样覆盖区720内的部分元数据中的条目的采样状态改变为“采样”。在单独遍历中,着色器读回元数据表面700并且识别“非驻留”和“采样”的条目。然后,用有效数据填充非驻留、采样的图块。这一方法解决了消除重复记录的问题,因为着色器在元数据检查遍历期间仅访问采样状态,而不管在一个或多个先前遍历期间对图块的采样访问次数。
图8是根据一些实施方案的通过对元数据表面采样来生成非驻留图块的工作列表的方法800的流程图。方法800使用图7中所示的元数据表面700的一些实施方案来实现,并且方法800可以在图1中所示的处理系统100和图2中所示的图形管线200的一些实施方案中实现。
在框805处,在第一遍历中,着色器通过对元数据表面的采样覆盖区内的元数据采样来执行驻留检查。例如,着色器可以检查在纹理的对应部分或图块的元数据条目中编码的驻留状态。如本文中所论述,驻留状态指示GPU存储器是否包含对应部分或图块的纹理数据。响应于驻留检查,不将纹理数据返回至着色器。
在框810处,着色器建立包括需要用纹理数据填充的非驻留图块的工作列表。例如,着色器可以基于在元数据中编码的驻留状态来识别非驻留图块。然后,着色器可以生成包括尚未用纹理数据填充的图块的标识符或地址的工作列表。在完成对采样覆盖区内的元数据条目的遍历之后,可以存储工作列表以供后续访问。
在框815处,着色器使用工作列表中的信息填充非驻留图块。例如,着色器可以检索工作列表,并且然后基于工作列表中的信息来检索或按程序生成纹理数据。
在框820处,在第二遍历中,着色器可以执行纹理数据采样以从纹理中的图块检索纹理数据。纹理数据应可用在GPU存储器中,以使得着色器能够在遍历期间检索纹理数据。因此结合通过对元数据采样来执行的驻留检查而执行纹理数据采样。
图9是根据一些实施方案的用纹理数据填充非驻留的、先前采样的图块的方法900的流程图。方法900使用图7中所示的元数据表面700的一些实施方案来实现,并且方法900可以在图1中所示的处理系统100和图2中所示的图形管线200的一些实施方案中实现。
在框905处,在对元数据表面的第一遍历中,着色器执行驻留检查以修改一个或多个图块的采样状态。着色器的一些实施方案可以通过对元数据表面的采样覆盖区内的元数据采样来执行驻留检查。例如,通过改变元数据表面中条目的位值或编码,将尚未被先前采样的非驻留图块的采样状态从“未采样”改变为“采样”。然而,在框905处执行的驻留检查不将任何反馈返回至着色器。如本文中所论述,驻留状态指示GPU存储器是否包含对应部分或图块的纹理数据。
在框910处,在第二遍历中,着色器读回元数据表面中的条目,并且检查条目以识别非驻留、采样的图块。在框915处,着色器填充非驻留、采样的图块。例如,着色器可以检索或按程序生成非驻留、采样的图块的纹理数据。在框920处,着色器对GPU存储器中存储的图块执行纹理数据采样以检索纹理数据。着色器因此结合检查图块的驻留状态而执行纹理数据采样。
在一些实施方案中,上述设备和技术在包括一个或多个集成电路(IC)装置(也称为集成电路封装或微芯片)的系统中实现,诸如以上参考图1-6所述的图形处理系统。电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具可以用于设计和制造这些IC装置。这些设计工具通常表示为一个或多个软件程序。一个或多个软件程序包括可以由计算机系统执行的代码以操纵计算机系统对表示一个或多个IC装置的电路的代码进行操作,以使得执行至少一部分过程以设计或调整制造系统以制造电路。此代码可以包括指令、数据、或者指令和数据的组合。表示设计工具或制造工具的软件指令通常存储在计算系统可访问的计算机可读存储介质中。同样,表示设计或制造IC装置的一个或多个阶段的代码可以存储在同一计算机可读存储介质或不同计算机可读存储介质中并且可以从该同一计算机可读存储介质或不同计算机可读存储介质访问。
计算机可读存储介质可以包括计算机系统在使用期间可访问以向计算机系统提供指令和/或数据的任何非暂时性存储介质或非暂时性存储介质的组合。此类存储介质可以包括但不限于光学介质(例如,光盘(CD)、数字多功能光盘(DVD)、蓝光光盘)、磁介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入在计算系统中(例如,系统RAM或ROM)、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的闪存存储器)或经由有线或无线网络(例如,网络可访问存储(NAS))耦接到计算机系统。
在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一组或多组可执行指令。软件可以包括指令和某些数据,该指令和某些数据当由一个或多个处理器执行时,操纵一个或多个处理器执行上述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括,例如磁盘或光盘存储装置、固态存储装置诸如闪存存储器、缓存、随机存取存储器(RAM)或其他非易失性存储装置等。非暂时性计算机可读存储介质上存储的可执行指令可以是以源代码、汇编语言代码、目标代码或由一个或多个处理器解译或者以其他方式可执行的其他指令格式。
应当注意,并非所有以上一般描述中所述的活动或元素都是必需的,特定活动或装置的一部分可以不是必需的,并且除了所述的那些之外,还可以执行一个或多个进一步的活动,或者可以包括进一步的元素。更进一步,活动列出的顺序不一定是它们执行的顺序。而且,已参考特定实施方案描述了构思。然而,本领域技术人员应当理解,可以作出各种修改和改变,而不脱离以下权利要求中阐述的本公开的范围。因此,说明书和附图应被视为说明性的而不是限制性的,并且所有此类修改都旨在包括在本公开的范围内。
以上已关于特定实施方案描述了益处、其他优点以及问题的解决方案。然而,益处、优点、问题的解决方案以及可以致使任何益处、优点或解决方案发生或变得更明显的(多个)任何特征不应被解释为任何或所有权利要求的关键、必要或基本的特征。此外,以上所公开的具体实施方案仅是说明性的,因为所公开的主题可以以不同但等效的方式修改和实践,该方式对于受益于本文教导的本领域技术人员来说是显而易见的。除了如以下权利要求中所述之外,本文中所示出的构造或设计的细节不受限制。因此明显的是,可以更改或修改以上所公开的具体实施方案,并且所有此类变型都被认为是在所公开的主题范围内。因此,本文寻求的保护在以下权利要求中阐述。
Claims (20)
1.一种设备,其包括:
管线,其被配置为访问存储器,所述存储器存储纹理块和元数据,所述元数据对所述纹理块的压缩参数和驻留状态进行编码,所述驻留状态指示所述纹理块是否驻留在所述存储器中;和
处理器,其结合请求所述纹理块中的数据而请求访问所述元数据以执行着色操作,其中所述管线根据所述驻留状态是否指示所述纹理块驻留在所述存储器中而选择性将所述纹理块中的所述数据返回至所述处理器。
2.根据权利要求1所述的设备,其中所述管线响应于所述驻留状态指示所述纹理块驻留在所述存储器中而返回所述纹理块中的所述数据。
3.根据权利要求1所述的设备,其中所述处理器响应于所述驻留状态指示所述纹理块未驻留在所述存储器中而接收指示所请求的数据不可用的信号,响应于接收到所述信号而在所述纹理块中填充数据,并且响应于在所述纹理块中填充所述数据而结合重新请求所述纹理块来重新访问所述元数据。
4.根据权利要求1-3中任一项所述的设备,其中所述处理器在对包括所述元数据的元数据表面的第一遍历期间,确定包括所述纹理块的多个纹理块的驻留状态或采样状态中的至少一个;基于所述驻留状态或所述采样状态中的至少一个来选择性填充所述多个纹理块;并且在第二遍历期间,对所述多个纹理块中的纹理数据采样。
5.根据权利要求1-3中任一项所述的设备,其进一步包括:
缓存,所述缓存包括用于存储对所述纹理块的所述压缩参数和所述驻留状态进行编码的所述元数据的副本的条目。
6.根据权利要求5所述的设备,其中所述缓存中存储的所述元数据的采样状态指示对所述纹理块的先前驻留检查是否指示所述纹理块未驻留在所述存储器中。
7.根据权利要求6所述的设备,其中响应于对访问所述缓存的所述条目中存储的所述元数据的请求而修改所述采样状态。
8.根据权利要求7所述的设备,其中所述处理器响应于所述驻留状态指示所述纹理块未驻留在所述存储器中以及所述采样状态指示所述缓存已接收到对访问所述条目中的所述元数据的至少一个先前请求而在所述纹理块中填充数据。
9.一种方法,其包括:
结合访问对存储器中存储的纹理块的压缩参数和指示所述纹理块是否驻留在所述存储器中的驻留状态进行编码的元数据而请求访问所述纹理块的数据;和
根据所述驻留状态是否指示所述数据驻留在所述存储器中来选择性接收所述纹理块中的数据。
10.根据权利要求9所述的方法,其中选择性接收所述纹理块中的所述数据包括响应于所述驻留状态指示所述纹理块驻留在所述存储器中而接收所述纹理块中的所述数据。
11.根据权利要求9所述的方法,其中选择性接收所述数据包括响应于所述驻留状态指示所述纹理块未驻留在所述存储器中而接收指示所请求的数据不可用的信号,并且进一步包括:
响应于接收到所述信号而在所述纹理块中填充数据;和
响应于在所述纹理块中填充所述数据而结合重新请求所述纹理块中的所述数据来重新访问所述元数据。
12.根据权利要求9-11中任一项所述的方法,其进一步包括:
在对包括所述元数据的元数据表面的第一遍历期间,确定包括所述纹理块的多个纹理块的所述驻留状态或采样状态中的至少一个;
基于所述驻留状态或所述采样状态中的至少一个来选择性填充所述多个纹理块;和
在第二遍历期间对所述多个纹理块中的纹理数据采样。
13.根据权利要求9所述的方法,其进一步包括:
将对所述纹理块的所述压缩参数和所述驻留状态进行编码的所述元数据的副本进行缓存。
14.根据权利要求13所述的方法,其中缓存中存储的所述元数据的采样状态指示对所述纹理块的先前驻留检查是否指示所述纹理块未驻留在所述存储器中。
15.根据权利要求14所述的方法,其进一步包括:
响应于对访问所述元数据的所述所缓存副本的请求而修改所述采样状态。
16.根据权利要求15所述的方法,其进一步包括:
响应于所述驻留状态指示所述纹理块未驻留在所述存储器中以及所述采样状态指示所述缓存已接收到对访问所述元数据的所述所缓存副本的至少一个先前请求而在所述纹理块中填充数据。
17.一种图形处理单元,其包括:
图形管线,其包括多个着色器;和
存储资源,其用于存储纹理块和元数据,所述元数据对所述纹理块的压缩参数和驻留状态进行编码,所述驻留状态指示所述纹理块是否驻留在所述存储资源中,
其中所述多个着色器中的一个着色器被配置为结合请求所述纹理块而访问所述元数据以执行着色操作,并且
其中根据所述驻留状态是否指示所述纹理块驻留在所述存储资源中,将所述纹理块中的数据选择性返回至所述着色器。
18.根据权利要求17所述的图形处理单元,其中响应于所述驻留状态指示所述纹理块驻留在所述存储资源中,将所述纹理块中的所述数据返回至所述着色器。
19.根据权利要求17所述的图形处理单元,其中所述着色器被配置为响应于所述驻留状态指示所述纹理块未驻留在所述存储资源中而接收指示所请求的数据不可用的信号。
20.根据权利要求19所述的图形处理单元,其中所述着色器被配置为响应于接收到所述信号而在所述纹理块中填充数据,并且其中,所述着色器响应于在所述纹理块中填充所述数据而结合重新请求所述纹理块来重新访问所述元数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/687,108 US10783694B2 (en) | 2017-08-25 | 2017-08-25 | Texture residency checks using compression metadata |
US15/687,108 | 2017-08-25 | ||
PCT/US2018/047539 WO2019040630A1 (en) | 2017-08-25 | 2018-08-22 | TEXTURE RESIDENCE CHECKS USING COMPRESSION METADATA |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111052172A true CN111052172A (zh) | 2020-04-21 |
CN111052172B CN111052172B (zh) | 2023-11-21 |
Family
ID=65435472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880055295.9A Active CN111052172B (zh) | 2017-08-25 | 2018-08-22 | 使用压缩元数据的纹理驻留检查 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10783694B2 (zh) |
EP (1) | EP3673456A4 (zh) |
JP (1) | JP7252209B2 (zh) |
KR (1) | KR102633002B1 (zh) |
CN (1) | CN111052172B (zh) |
WO (1) | WO2019040630A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116261740A (zh) * | 2020-09-23 | 2023-06-13 | 超威半导体公司 | 基于每个信道压缩纹理数据 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US10834413B2 (en) * | 2018-08-24 | 2020-11-10 | Disney Enterprises, Inc. | Fast and accurate block matching for computer generated content |
US10802970B1 (en) | 2019-03-27 | 2020-10-13 | Intel Corporation | Control surface access using flat memory mapping |
US10872458B1 (en) | 2019-09-06 | 2020-12-22 | Apple Inc. | Graphics surface addressing |
US11010863B2 (en) | 2019-09-27 | 2021-05-18 | Apple Inc. | Bindpoint emulation |
US12106418B2 (en) * | 2020-03-25 | 2024-10-01 | Advanced Micro Devices, Inc. | Sampling for partially resident textures |
US11636625B2 (en) * | 2020-12-11 | 2023-04-25 | Qualcomm Incorporated | Image compression and decompression |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6339428B1 (en) * | 1999-07-16 | 2002-01-15 | Ati International Srl | Method and apparatus for compressed texture caching in a video graphics system |
US20080204451A1 (en) * | 2007-02-26 | 2008-08-28 | Samsung Electronics Co., Ltd | Geometry processor using a post-vertex cache and method thereof |
US7948498B1 (en) * | 2006-10-13 | 2011-05-24 | Nvidia Corporation | Efficient texture state cache |
US20160071232A1 (en) * | 2014-09-10 | 2016-03-10 | Apple Inc. | Texture state cache |
US20160078665A1 (en) * | 2014-09-17 | 2016-03-17 | Samsung Electronics Co., Ltd. | Apparatus and method of decompressing rendering data and recording medium thereof |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3365293B2 (ja) * | 1998-02-12 | 2003-01-08 | 株式会社日立製作所 | Dram,ロジック混載lsiを使ったキャッシュメモリ及びそれを用いたグラフィックスシステム |
US8823724B2 (en) * | 2009-12-31 | 2014-09-02 | Nvidia Corporation | Sparse texture systems and methods |
US8587602B2 (en) | 2010-08-16 | 2013-11-19 | Microsoft Corporation | GPU texture tile detail control |
US8907969B2 (en) * | 2010-12-13 | 2014-12-09 | Advanced Micro Devices, Inc. | Partially resident textures |
US9378560B2 (en) | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US10019829B2 (en) * | 2012-06-08 | 2018-07-10 | Advanced Micro Devices, Inc. | Graphics library extensions |
US9754561B2 (en) * | 2013-10-04 | 2017-09-05 | Nvidia Corporation | Managing memory regions to support sparse mappings |
US10032246B2 (en) * | 2013-10-09 | 2018-07-24 | Nvidia Corporation | Approach to caching decoded texture data with variable dimensions |
US9355465B2 (en) | 2013-12-27 | 2016-05-31 | Intel Corporation | Dynamic programmable texture sampler for flexible filtering of graphical texture data |
US9852522B2 (en) * | 2014-03-17 | 2017-12-26 | Sony Interactive Entertainment Inc. | Image decoder, graphics processing system, image decoding method, and graphics processing method |
US9947071B2 (en) * | 2014-06-27 | 2018-04-17 | Samsung Electronics Co., Ltd. | Texture pipeline with online variable rate dictionary compression |
-
2017
- 2017-08-25 US US15/687,108 patent/US10783694B2/en active Active
-
2018
- 2018-08-22 WO PCT/US2018/047539 patent/WO2019040630A1/en unknown
- 2018-08-22 KR KR1020207006474A patent/KR102633002B1/ko active IP Right Grant
- 2018-08-22 EP EP18848519.7A patent/EP3673456A4/en active Pending
- 2018-08-22 CN CN201880055295.9A patent/CN111052172B/zh active Active
- 2018-08-22 JP JP2020510572A patent/JP7252209B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6339428B1 (en) * | 1999-07-16 | 2002-01-15 | Ati International Srl | Method and apparatus for compressed texture caching in a video graphics system |
US7948498B1 (en) * | 2006-10-13 | 2011-05-24 | Nvidia Corporation | Efficient texture state cache |
US20080204451A1 (en) * | 2007-02-26 | 2008-08-28 | Samsung Electronics Co., Ltd | Geometry processor using a post-vertex cache and method thereof |
US20160071232A1 (en) * | 2014-09-10 | 2016-03-10 | Apple Inc. | Texture state cache |
US20160078665A1 (en) * | 2014-09-17 | 2016-03-17 | Samsung Electronics Co., Ltd. | Apparatus and method of decompressing rendering data and recording medium thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116261740A (zh) * | 2020-09-23 | 2023-06-13 | 超威半导体公司 | 基于每个信道压缩纹理数据 |
Also Published As
Publication number | Publication date |
---|---|
CN111052172B (zh) | 2023-11-21 |
EP3673456A4 (en) | 2022-07-13 |
WO2019040630A1 (en) | 2019-02-28 |
EP3673456A1 (en) | 2020-07-01 |
US10783694B2 (en) | 2020-09-22 |
KR102633002B1 (ko) | 2024-02-05 |
JP7252209B2 (ja) | 2023-04-04 |
JP2020531994A (ja) | 2020-11-05 |
KR20200035446A (ko) | 2020-04-03 |
US20190066352A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111052172B (zh) | 使用压缩元数据的纹理驻留检查 | |
US7746352B2 (en) | Deferred page faulting in virtual memory based sparse texture representations | |
EP2721584B1 (en) | Real time on-chip texture decompression using shader processors | |
US8341380B2 (en) | Efficient memory translator with variable size cache line coverage | |
US10991146B2 (en) | Residency map descriptors | |
US10769837B2 (en) | Apparatus and method for performing tile-based rendering using prefetched graphics data | |
KR20190021474A (ko) | 페이지 오류 없이 가상 메모리 내 희소 데이터 세트에의 물리 페이지의 할당 | |
US7061500B1 (en) | Direct-mapped texture caching with concise tags | |
KR20060116916A (ko) | 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법 | |
KR20230127291A (ko) | 캐시 라인에 대한 누락 요청의 선택적 생성 | |
US6683615B1 (en) | Doubly-virtualized texture memory | |
KR102589298B1 (ko) | 그래픽스 프로세싱 장치 및, 그래픽스 프로세싱 장치에서 캐시 바이패스를 제어하는 방법 | |
US9754561B2 (en) | Managing memory regions to support sparse mappings | |
KR20230073239A (ko) | 채널별 기반 텍스처 데이터의 압축 | |
US7050061B1 (en) | Autonomous address translation in graphic subsystem | |
CN115934590A (zh) | 电路和方法 | |
US7710425B1 (en) | Graphic memory management with invisible hardware-managed page faulting | |
CN115867899A (zh) | 在处理的同时选择性地写回脏高速缓存行 | |
US20230206380A1 (en) | Optimizing partial writes to compressed blocks | |
WO2023094829A1 (en) | Cache arrangements in data processing systems |
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 |