CN105321142B - 经由计算流水线进行的采样、错误管理和/或上下文切换 - Google Patents
经由计算流水线进行的采样、错误管理和/或上下文切换 Download PDFInfo
- Publication number
- CN105321142B CN105321142B CN201510276147.8A CN201510276147A CN105321142B CN 105321142 B CN105321142 B CN 105321142B CN 201510276147 A CN201510276147 A CN 201510276147A CN 105321142 B CN105321142 B CN 105321142B
- Authority
- CN
- China
- Prior art keywords
- texture
- assembly line
- graphics pipeline
- calculating
- sampling
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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/005—General purpose rendering architectures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
Abstract
装置、系统和方法可以对纹理进行采样、管理页面错误和/或对与页面错误相关联的上下文进行切换。三维(3D)图形流水线可以提供与纹理相对应的纹理采样位置数据,其中,对纹理的采样是在3D图形流水线外部执行的。计算流水线可以使用纹理采样位置数据来执行对纹理的采样,并提供与纹理相对应的纹理采样结果数据,其中,3D图形流水线可以使用纹理采样结果数据来合成帧。计算流水线可以管理页面错误,其中,页面错误和/或对页面错误的管理对图形应用是隐藏的。此外,计算流水线可以对与页面错误相关联的计算上下文进行切换,以允许与页面错误不相关联的图形任务被执行和/或防止拖延。
Description
背景技术
三维(3D)图形流水线可以执行采样。例如,3D图形流水线可以计算像素着色器处的纹理坐标,向采样器发送坐标以进行采样,从采样器接收像素着色器处的像素数据,以及从着色器向渲染目标返回输出。然而,在不等待的情况下无法切换与页面错误相关联的3D上下文。例如,纹理读取中的错误可能使图形处理单元(GPU)停止并且可能不允许其它硬件上下文的前向进展,直到取得足够的前向进展来实现当前原语的完成为止。因此,具有相对大数量的页面错误的相对大的多边形可能导致拖延。例如,在窗口化应用中,在遇到错误时,渲染图形用户界面(GUI)的3D硬件上下文可能不被调度,并且可能导致不响应的平台。
可以在应用(例如,来自id软件的MegaTextures)或驱动器扩展(例如,来自高级微设备公司的AMD_sparse_texture,来自微软公司的Tiled Textures(平铺纹理))中实现纹理或页表管理系统,以便将纹理子集页面调入(使之存在)到存储器中,以对当前帧/视图进行渲染。然而,可能需要对应用、应用编程接口(API)和/或驱动器进行大量改变来支持这些系统。此外,图形应用可能需要是页面感知的和/或错误感知的,其中,着色器对由采样器返回的错误代码进行检查,并且将缺失的页面标识符写出到缓冲器(例如,无序访问视图),以允许应用主机代码上传缺失的页面。此外,在没有对平铺资源的硬件支持的情况下,应用可能需要对使用适当的边界将纹理划分成块(tile)进行管理,以允许着色器中的滤波和相对复杂的页面查找。由于GPU可能不知道软件管理的纹理高速缓存中的mip贴图(mip-map)和/或相邻纹理的位置,因此还可能要求着色器绕开硬件采样器滤波功能,并且使用执行单元(EU)指令来进行计算。
附图说明
通过阅读以下的说明书和所附的权利要求书,并且通过参考以下的附图,本发明的实施例的各个优点对于本领域技术人员来说将变得显而易见,在附图中:
图1是根据实施例的、采样、错误管理和/或上下文切换装置的例子的框图;
图2是根据实施例的、用于执行采样、错误管理和/或上下文切换的方法的例子的流程图;
图3是根据实施例的、用于执行采样、错误管理和/或上下文切换的方法的例子的流程图;
图4是根据实施例的、采样、错误管理和/或上下文切换的计算系统的例子的框图;
图5是根据实施例的、包括三维(3D)流水线和计算流水线的系统的框图;以及
图6是根据实施例的具有小外形尺寸的系统的例子的框图。
具体实施方式
图1示出了根据实施例的、采样、错误管理和/或上下文切换装置100。装置100可以包括诸如以下各项的任何计算平台:膝上型计算机、个人数字助理(PDA)、无线智能电话、媒体内容播放器、成像设备、移动互联网设备(MID)、服务器、游戏控制台、可穿戴计算机、诸如智能电话、智能平板设备、智能TV等的任何智能设备或其任意组合。装置100可以包括一个或多个处理器,例如,中央处理单元(CPU)、图形处理单元(GPU)(也可以被称为视觉处理单元(VPU))等或其组合。在一个图形执行模型中,装置100可以包括用于控制一个或多个计算设备(例如,CPU、GPU/VPU等)的一个或多个主机(例如,CPU等),其中,每个计算设备可以包括下面论述的一个或多个计算单元(例如,核(core)、单指令多数据单元等),其中一个或多个计算单元具有用于执行功能的一个或多个执行单元。
装置100包括应用110(例如,三维(3D)图形应用),其可以与一个或多个流水线通信以执行图形任务(例如,其包括渲染颗粒效果、渲染阴影贴图、对纹理进行采样、对帧进行合成,对帧进行显示等)。应用110可以不需要是页面感知的和/或错误感知的,其中,页面错误和/或对页面错误的管理可以对应用110是隐藏的。此外,由于可以在无需等待足够的前向进展来实现当前原语的完成的情况下,切换(基本上立即切换)与页面错误相关联的上下文(例如,出错的上下文),因此页面错误可以不导致拖延,从而允许执行另一图形任务(例如,不涉及纹理采样,与错误不相关联等)。
应用110可以与三维(3D)图形流水线112进行通信以合成用于显示的帧。例如,帧可以与对以下各项的3D渲染相对应:场景和/或视频游戏、电子表格、文本(例如,丰富文本等)、标记语言(例如,超文本标记语言、可扩展标记语言等)、图像(例如,联合图像专家组(JPEG)数据等)、视频(例如,运动图像专家组(MPEG)数据等)等、或其组合。此外,帧可以与包括例如图形用户接口(GUI)的窗口化应用相对应。帧还可以与要求相对高的帧速率响应性(例如,每秒大约30帧)的应用相对应。装置100可以在3D图形流水线112合成帧之后,经由例如液晶显示器(LCD)、发光二极管(LED)显示器、触摸屏等对帧进行显示。
3D图形流水线112可以支持3D应用编程接口(API),例如,开放图形库API(硅谷图形公司的商标)、Direct3D API(微软公司的商标)等。例如,应用110可以通过创建3D上下文来使用3D API,以处理命令以及合成帧,3D上下文可以与用于工作负载的3D流水线的状态相对应。例如,应用110可以通过创建OpenGL上下文来使用OpenGL,OpenGL上下文可以与存储与应用110的渲染有关的数据的状态机相对应。此外,所示出的3D图形流水线112包括纹理采样位置模块114,其用于提供与纹理相对应的纹理采样位置数据(例如,用于对纹理进行采样的信息(例如,用于确定纹理中的要从其进行采样的位置的纹理坐标和/或梯度))。例如,可以将纹理采样位置模块114包括在应用110的源代码中,作为对应用110的扩展来包括,在驱动器中实现,至少部分地用固定功能硬件来实现等,或其组合。
纹理采样位置模块114可以生成采样信息缓冲器,其用于保存纹理采样位置数据(例如,其包括纹理坐标、uv坐标、梯度(例如,dx/dy)、纹理句柄、细节层次(LOD)等或其组合)。可以将采样信息缓冲器作为层来包括在G缓冲器中,G缓冲器具有用于保存图形数据(例如,位置、法线、着色参数等)的多个层。可以在延迟着色过程中生成G缓冲器,其中,在单通道中对几何图形进行处理以输出G缓冲器,并且将另外的通道作为二维(2D)后处理通道来执行,以合成最终的帧。应当注意的是,对纹理的采样可以是在3D图形流水线112外部执行的,其可以与使用纹理坐标和/或梯度来取得用于纹理的信息(例如,颜色数据)的操作相对应。在一个例子中,可以通过使用纹理采样位置数据(例如,纹理坐标、采样信息缓冲器等)来对纹理进行采样,从而在3D图形流水线112外部对片段进行处理,以生成纹理采样结果数据(例如,颜色等)。
因此,装置100包括计算流水线126,其用于在3D图形流水线112外部执行采样和/或用于提供由3D图形流水线112用于合成帧的纹理采样结果数据。计算流水线126可以支持计算API,例如,开放计算语言API(苹果公司的商标)、计算着色器API(例如,扩展Direct3D)、计算统一设备架构API(CUDATM,NVIDIA公司的商标)等。例如,应用110可以通过创建计算上下文来使用计算API,以执行采样并提供纹理采样结果数据。例如,应用110可以通过创建OpenCL上下文来使用OpenCL,OpenCL上下文允许计算设备(例如,CPU、GPU/VPU等)执行(和/或运行)内核(例如,每个内核可以对从程序获得的函数进行封装)和/或传输数据。因此,使用计算流水线126,可以将图形任务(例如,采样)划分成要由一个或多个执行单元(例如,工作项、线程等)并行执行的工作(例如,内核等),其中,可以将一个或多个执行单元组合在一起成为单元组(例如,工作组、线程块等)的一个或多个单元块(例如,子组、线程束(warp)等),并且其中,图形执行模型中的单元组可以在GPU/计算设备134上执行。
所示出的计算流水线126包括纹理采样结果模块128,其用于使用纹理采样位置数据来执行对纹理的采样,和/或提供与纹理相对应的纹理采样结果数据。在一个例子中,纹理采样结果模块128可以读取和/或接收纹理采样位置数据以执行采样。例如,纹理采样结果模块128可以创建OpenCL内核来执行采样,其中,OpenCL内核将由收集到将在GPU/计算设备134中执行的工作组中的工作项来执行。例如,纹理采样结果模块128可以读取采样信息缓冲器,以生成与纹理采样位置数据相关联的OpenCL内核。例如,可以将纹理采样结果模块128包括在应用110的源代码中,作为对应用110的扩展来包括,在驱动器中实现,至少部分地用固定功能硬件来实现等,或其组合。
纹理采样结果模块128可以向3D图形流水线112提供采样的结果(例如,纹理采样结果数据)。例如,纹理采样结果模块128可以生成包括纹理采样结果数据的纹理层缓冲器,纹理层缓冲器可以作为层而被包括在G缓冲器中,并且用于完成延迟着色。在一个例子中,3D图形流水线的渲染模块116可以通过读取纹理层缓冲器和/或通过接收由纹理采样结果模块128提供的纹理采样结果数据,来使用纹理采样结果数据,从而合成帧。例如,可以将渲染模块116包括在应用110的源代码中,作为对应用110的扩展来包括,在驱动器中实现,至少部分地用固定功能硬件来实现等,或其组合。
计算流水线126包括错误管理模块130,其用于管理(例如,在纹理采样结果数据被提供给3D图形流水线之前)遇到的页面错误。例如,当针对并不存在(例如,加载)于物理存储器中(例如,在图形存储器中)的纹理而访问页面时,可能遇到页面错误。应当注意的是,计算流水线126内部的采样可以包括对虚拟纹理的采样,虚拟纹理可能并不保证存在于物理存储器中。因此,当针对并不保证位于存储器中的虚拟纹理而访问页面时,可能遇到页面错误。错误管理模块130可以用于对虚拟纹理中的实际需要的部分(例如,与当前纹理读取相关联的精确纹素)进行页面调入(例如,使之存在),而不是对纹理的整个工作集进行页面调入和/或要求纹理的子集存在于存储器中。因此,具有相对高分辨率的纹理可以在无需完全存在于存储器中的情况下和/或在不浪费诸如物理存储器的资源之类的情况下来使用。
此外,可以使相对于纹理的大小而言较小的物理存储器专用于纹理的平台可以受益于计算流水线126。例如,相对大的纹理(例如,数百兆比特、千兆比特、比专用物理内存大等)可能无法完全存在于存储器中,而可能仅需要纹理的子集用于采样。因此,可以由错误管理模块130来实现涉及对纹理中的渲染当前帧所需的精确部分(例如,根据纹理读取和/或页面错误而确定的)进行页面调入的纹理流化,以适应以下情况的采样:纹理中的进行渲染所需的部分是当前实际需要(例如,按需)。此外,可以由错误管理模块130来实现纹理流化,以适应以下情况的采样:纹理中的进行渲染所需的部分(其是实际需要的)存在于相对大的纹理(例如,大于专用物理存储器)中。例如,可以将错误管理模块130包括在OS错误处理程序、调度程序、和/或驱动器源代码中,作为对OS错误处理程序、调度程序、和/或驱动器的扩展来包括,至少部分地用固定功能硬件来实现等,或其组合。
因此,应用110可以不需要是页面感知的和/或错误感知的,其中,页面错误、页表管理和/或页面错误管理可以对应用110是隐藏的。此外,可以利用共享虚拟存储器(SVM)框架来支持纹理流化。例如,可以使用英特尔SVM(英特尔公司的注册商标)来支持纹理流化,英特尔SVM可以允许CPU和GPU具有统一的存储器(例如,CPU和GPU地址是统一的(例如,64比特)),可以允许GPU在纹理不存在时在存储器访问上出现错误,并且可以允许由OS/驱动器对页面错误进行管理/处理(例如,对纹理进行页面调入、修复页面错误等)。因此,GPU可以包括使用SVM来支持虚拟纹理的、可出现错误的计算流水线126。
计算流水线126还包括上下文切换模块132,其用于对与页面错误相关联的计算上下文(例如,出错的计算上下文)进行切换。例如,上下文切换模块132可以对错误的计算上下文进行切换,以允许由GPU/计算设备134完成另外的工作,而不是等待页面错误被修复(例如,对纹理中的当前所需的部分进行页面调入)和/或等待取得前向进展来实现用于切换的当前原语的完成。例如,上下文切换模块132可以将出错的计算上下文切换成另一计算上下文。当与该上下文相关联的错误被修复时(例如,当对纹理中的当前所需的部分进行页面调入时),上下文切换模块132还可以切换回出错的计算上下文。
在一个例子中,上下文切换模块132可以从第一出错的计算上下文切换到第二计算上下文(例如,用于计算图形任务(例如,经由计算流水线126进行的采样)),其中,如果第二计算上下文变得与页面错误相关联,那么上下文切换模块132随后还可以切换第二计算上下文。在这点上,上下文切换模块132可以将已经出错的第二计算上下文切换成另一计算上下文,例如,第三计算上下文(例如,用于计算图形任务)、先前出错的第一计算上下文(在错误已经被修复时)等。上下文切换模块132还可以对用于来自3D流水线112的3D图形任务的、出错的计算上下文进行切换(下面论述的)。
因此,通过不拖延GPU/计算设备134,可以由不依赖于出错数据的其它上下文完成另外的工作。例如,在页面被修复(例如,页面调入)的同时,应用110可以执行帧的其它部分的渲染(例如,颗粒、阴影贴图等)。在与窗口化应用有关的一个例子中,可以调度与渲染GUI的3D硬件上下文相关联的3D图形任务,以防止窗口拖延,并维持响应性(例如,当遇到页面错误并且页面错误正在被修复时(例如,当纹理中的解决页面错误实际需要的精确部分将被页面调入时))。例如,可以将上下文切换模块132包括在OS错误处理程序、调度程序、和/或驱动器源代码中,作为对OS错误处理程序、调度程序、和/或驱动器的扩展来包括,至少部分地用固定功能硬件来实现等,或其组合。例如,上下文切换模块132可以与GPU/计算设备134上的硬件(例如,逻辑电路等)相关联,以促进相对高性能的上下文切换。
计算流水线126可以实现一个或多个节流机制,以允许计算流水线126赶上3D图形流水线(例如,使用主3D线程)。计算流水线126可以实现LOD偏移,从而使得相对较粗糙的mip贴图层次用于降低带宽要求并相对地对采样进行加速。例如,纹理采样位置数据可以包括与LOD偏移相对应的LOD,其中,采样由计算流水线126根据LOD偏移来实现。此外,计算流水线126可以通过分配较小的内核组而不是同时分配所有内核,而不等待整个采样信息缓冲器完成。例如,可以在生成整个采样信息缓冲器之前,向计算流水线126提供纹理采样位置数据,其中,计算流水线126用于分配与纹理采样位置数据相关联的线程的子集。此外,即使针对帧而言存在整个纹理采样位置数据,也可以分配相对小的内核组。例如,当3D图形流水线112需要纹理采样结果数据(例如,当前帧的结尾)时,即使所有内核尚未被分配,也可以停止内核分配,并且计算流水线126可以移动到另一帧(例如,下一帧)。
当纹理采样结果数据在预定时间段内是不可用的时,3D图形流水线112可以将来自计算流水线126的部分结果与来自相对较高层次的(例如,较粗糙的)、保证存在的mip贴图的替代纹理采样结果数据一起使用,来结束帧。虽然计算流水线126可以作为流化系统来进行操作,以尽快对纹理中的所需的部分进行页面调入并采样(和/或滤波),但是3D图形流水线112的替代纹理采样结果模块118可以生成替代纹理采样结果数据作为备用。例如,可以将替代纹理采样结果模块118包括在应用110的源代码中,作为对应用110的扩展来包括,在驱动器中实现,至少部分地用固定功能硬件来实现等,或其组合。
在一个例子中,当纹理采样结果数据不可用于维持期望的和/或要求的帧速率(例如,采样工作在预定时间内无法完成来跟上帧速率)时,3D图形流水线112可以使用替代纹理采样结果数据来合成帧。因此,主3D线程可以不等待来自计算流水线126的工作来合成帧。此外,替代纹理采样结果模块118可以通过对虚拟纹理(例如,与当前页面错误相关联的虚拟纹理)中的已知存在的、高层次的(例如较粗糙的)mip贴图进行采样,来生成相对较低分辨率的纹理采样结果数据。此外,当纹理采样结果数据变得可用于解决伪影(例如,突然出现的伪影)时,3D图形流水线112可以在一时间段内将来自计算流水线126的流式的、相对较高分辨率层的纹理采样结果数据进行混合。
3D图形流水线112还包括3D图形任务模块120,其用于执行3D图形任务(例如,不涉及虚拟纹理采样、与错误不相关联等)。在一个例子中,当页面错误正在被管理时执行3D图形任务。3D图形任务模块120可以与GPU/计算设备134进行通信,以渲染帧中独立(例如,不使用虚拟纹理)的其它部分(例如,颗粒效果、阴影贴图等)。例如,可以将3D图形任务模块120包括在应用110的源代码中,作为对应用110的扩展来包括,在驱动器中实现,至少部分地用固定功能硬件来实现等,或者其组合。
3D图形流水线112还包括等待模块122,其用于等待3D图形流水线112(例如,等待合成帧,不执行其它工作等),直到例如错误管理模块130修复页面错误和/或纹理采样结果模块128提供纹理采样结果数据为止。在一个例子中,等待模块122可以通过使渲染模块116等待直到从计算流水线126接收到纹理层缓冲器和/或纹理采样结果数据,来促进延迟着色。例如,可以将等待模块122包括在应用110的源代码中,作为对应用110的扩展来包括,在驱动器中实现,至少部分地用固定功能硬件来实现等,或其组合。
例如,当预定时间段已经过去和/或替代纹理采样结果数据可用于合成帧时,等待模块122可以不生成等待指令和/或3D图形流水线112可以忽略等待指令。例如,当帧速率大约为60帧每秒(fps)时,3D图形流水线112可以等待来自计算流水线126的纹理采样结果数据大约15ms。3D图形流水线112可以在预定时段到期时,立即使用替代纹理采样结果数据,和/或可以等待额外的预定时间段(例如,1ms),以不再等待来自计算流水线126的纹理采样结果数据和/或使用替代纹理采样结果数据。在一个例子中,替代纹理采样结果数据可以是从非虚拟纹理(例如,虚拟纹理中的相对低分辨率、已知存在的mip贴图版本)中生成。
因此,等待模块122可以用于对3D图形流水线112和计算流水线126进行同步。例如,等待模块122可以对OpenGL上下文与OpenCL上下文之间的采样信息缓冲器以及所产生的纹理层缓冲器进行同步,以确保以逻辑顺序生成和/或使用纹理采样位置数据和纹理采样结果数据。在一个例子中,可以使用在例如OS X平台(OS苹果公司的商标)上提供的大中央调度(Grand Central Dispatch)(GCD)来实现同步。还可以使用cl_khr_gl_事件扩展(如果支持的话)来实现同步,以通过将GL围栏链接到CL事件来对GL与CL之间的资源进行同步。还可以使用明确的结束(例如,glFinish)来实现同步,以在例如可以忍受驱动器拖延的风险的情况下对3D图形流水线112和上下文流水线126进行同步。
图2示出了根据实施例的、用于采样、管理错误和/或上下文切换的方法200。方法200可以作为存储在以下各项中的逻辑指令集来实现:诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、闪速存储器等的机器或计算机可读存储介质,诸如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)的可配置逻辑单元,使用诸如专用集成电路(ASIC)、CMOS或晶体管-晶体管逻辑(TTL)技术的电路技术的固定功能逻辑硬件,或其任意组合。例如,用于执行方法200中示出的操作的计算机程序代码可以是用一种或多种编程语言的任意组合编写的,这些编程语言包括诸如C++等的面向对象的编程语言以及诸如“C”编程语言或类似编程语言的常规过程编程语言。此外,方法200可以使用本文中提及的电路技术中的任何一种电路技术来实现。
所示出的处理框240包括:经由三维(3D)图形流水线来提供与纹理相对应的纹理采样位置数据,其中,对纹理的采样是在3D图形流水线外部执行的。例如,3D图形流水线可以包括上面论述的3D图形流水线112(图1)。因此,处理框240可以包括:经由3D图形流水线来生成包括纹理采样位置数据的采样信息缓冲器。例如,处理框240可以包括:经由3D图形流水线来支持图形库(GL)3D应用编程接口(API),以生成包括纹理采样位置数据(例如,uv坐标、梯度、纹理句柄、细节层次(LOD)等或其组合)的采样信息缓冲器。
所示出的处理框242包括:经由计算流水线,使用纹理采样位置数据来执行采样。例如,计算流水线可以包括上面论述的计算流水线126(图1)。因此,处理框242可以包括:经由计算流水线来读取采样信息缓冲器,以执行采样和/或生成包括纹理采样结果数据的纹理层缓冲器。例如,处理框242可以包括:经由计算流水线来支持计算API(例如,OpenCLAPI),以生成保存纹理中的将用于最终确定帧的任何数据(例如,颜色数据等)的纹理层缓冲器。
处理框242可以包括:经由计算流水线来管理页面错误,其中,页面错误和/或对页面错误的管理可以对图形应用(例如,3D图形应用)是隐藏的。应当注意的是,采样可以包括不保证位于存储器中的纹理(例如,虚拟纹理)。因此,计算流水线可以对实际需要的(例如,按需)虚拟纹理(例如,纹理中的与当前纹理读取相关联的精确部分)进行页面调入(例如,使之存在),而不是对纹理的整个工作集进行页面调入和/或要求纹理的子集存在于存储器中。此外,可以实现涉及对渲染当前帧所需的精确纹理(例如,根据当前纹理读取和/或页面错误而确定的)进行页面调入的纹理流化,以适应以下情况的采样:纹理中的进行渲染所需的部分是当前实际需要的和/或纹理中的进行渲染所需的部分(其是实际需要的)存在于相对大的纹理(例如,大于专用物理存储器)中。
处理框242可以包括:经由计算流水线,响应于页面错误来对与页面错误相关联的计算上下文进行切换,以便允许执行另外的工作和/或防止GPU设备拖延。例如,计算流水线可以断开出错的计算上下文以允许执行另一图形任务(例如,调度、接入等),而不是等待页面错误被修复(例如,对所需的纹理进行页面调入)和/或取得前向进展来实现当前原语的完成。因此,GPU设备可以响应于页面错误而不拖延,并且可以允许由其它上下文在页面正被修复的同时完成另外的GPU工作(例如,渲染颗粒效果、渲染阴影贴图等)。在针对窗口化应用的一个例子中,可以调度与渲染GUI的3D硬件上下文相关联的3D图形任务,以防止窗口拖延并维持响应性。当页面错误被修复时(例如,当纹理中的解决当前页面错误实际需要的精确部分将被页面调入时),计算流水线还可以调度所切换的和/或出错的计算上下文,以用于恢复的执行。
处理框242可以包括:经由计算流水线来实现细节层次(LOD)偏移和/或线程子集分配,以允许计算流水线赶上3D图形流水线。计算流水线可以实现LOD偏移,从而使得相对较粗糙的mip贴图层次用于降低带宽要求并相对地对采样进行加速。此外,计算流水线可以通过分配较小的内核组而不是同时分配所有内核,而不等待整个采样信息缓冲器完成。此外,即使存在整个位置数据,计算流水线也可以分配相对小的内核组。
所示出的处理框244包括:经由计算流水线来提供与纹理相对应的纹理采样结果数据,其中,3D图形流水线用于使用纹理采样结果数据来合成帧。因此,处理框244可以包括:经由3D图形流水线来读取纹理层缓冲器以合成帧。应当理解的是,处理框240、242和/或244可以包括任意组合的一个或多个操作。在一个例子中,方法200可以包括:当3D图形流水线在处理框240处提供纹理采样位置数据时、当计算流水线在处理框240处管理页面错误时等或其组合,经由3D图形流水线来执行不涉及纹理采样(例如,不涉及对虚拟纹理的采样)的图形任务。
在另一例子中,方法200可以包括:当在处理框244处纹理采样结果数据在预定时段内是不可用的时,经由3D图形流水线来生成替代纹理采样结果数据以合成帧。例如,可以在处理框244处完成以下操作:经由3D图形流水线来对纹理中存在的较粗糙的mip贴图进行采样(例如,对与虚拟纹理相对应的非虚拟纹理的采样),以生成替代纹理采样结果数据。此外,处理框240、242和/或244可以包括:等待3D图形流水线(例如,直到计算流水线修复页面错误为止)以合成帧,其中,等待使3D图形流水线与计算流水线在没有明确结束的情况下同步。
现在转到图3,根据一实施例,将方法300示为采样、管理错误、和/或上下文切换。可以使用本文提及的技术中的任何一种技术(例如,存储在机器或计算机可读存储介质中的逻辑指令集)来实现方法300。所示出的处理框350可以经由三维(3D)图形流水线来生成采样信息缓冲器。例如,3D图形流水线可以包括上面论述的3D图形流水线112(图1)。可以向处理框352提供采样信息缓冲器,处理框352可以经由计算流水线来读取采样信息缓冲器并执行采样。例如,计算流水线可以包括上面论述的计算流水线126(图1)。
可以在框354处经由计算流水线进行是否存在与采样相关联的页面错误的确定。例如,页面错误可以涉及针对虚拟纹理的当前纹理读取,其中,该虚拟纹理不保证存在于存储器中,并且实际上并不存在于存储器中、但与纹理读取相关联。如果不存在页面错误,那么在处理框356处,经由计算流水线来生成包括纹理采样结果数据(例如,颜色等)的纹理层缓冲器。如果存在与采样相关联的页面错误,那么处理框358经由计算流水线来管理和/或修复页面错误。例如,处理框358可以对响应于例如当前纹理读取和/或页面错误而确定的、解决页面错误实际需要的、纹理的部分或精确纹素进行页面调入。此外,处理框360可以经由计算流水线,响应于页面错误来对与页面错误相关联的上下文进行切换,以允许执行另一图形任务(例如,不涉及纹理采样,与当前没有在等待错误的任何上下文相关联等),以防止拖延。当页面错误被解决时,在处理框362处,可以经由计算流水线来切换回出错的上下文,以继续采样。可以将生成的纹理采样结果数据保存在处理框356处经由计算流水线来生成的纹理层缓冲器中。
同时,在处理框364处,可以经由3D流水线来生成3D图形任务。例如,当计算流水线管理页面错误时,可以在处理框366处经由3D流水线来执行3D图形任务。例如,在处理框366处完成对一个或多个3D图形任务的处理之后,处理框368可以等待3D流水线。在框370处可以进行是否在大于预定时间段时处向3D图形流水线提供纹理层缓冲器的确定。如果是,那么处理框372经由3D流水线来生成替代纹理采样结果数据和/或向处理框376提供替代纹理采样结果数据,其中,处理框376经由3D流水线使用替代纹理采样结果数据来合成(例如,结束)帧。如果不是,那么处理框374读取纹理层缓冲器并向处理框376提供纹理采样结果数据,以经由3D流水线使用纹理采样结果数据来合成帧。此外,替代纹理采样结果数据和纹理采样结果数据可以通过经由3D流水线实现例如混合操作来一起使用。
现在转到图4,示出了根据实施例的、块操作计算系统600。计算系统600可以是诸如以下各项的移动平台的一部分:膝上型计算机、PDA、无线智能电话、媒体播放器、成像设备、MID、游戏控制台、可穿戴计算机、诸如智能电话、智能平板设备等的任何智能设备或其任意组合。计算系统600还可以是诸如个人计算机(PC)、智能TV、服务器、工作站等的固定平台的一部分。所示出的计算系统600包括一个或多个CPU(中央处理单元)676、显示设备682、硬盘驱动器684和主存储器686(例如,其可以包括DDR模块)。可以将系统存储器686的模块并入SIMM(单列直插存储器模块)、DIMM(双列直插式存储器模块)、SODIMM(小外形DIMM)等。
计算系统600可以包括图形总线(例如,槽)680,其中,包含图形处理单元(GPU)678和专用图形存储器690的图形卡(未示出)可以耦合(例如,插入)到图形总线680。例如,图形总线680可以包括:PCI Express(高速)图形(PEG,例如,外围部件互连/PCI Express x16图形150W-ATX规范1.0、PCI特别兴趣组)总线、加速图形端口(例如,AGP V3.0接口规范,2002年9月)总线等。CPU 676可以具有集成存储器控制器(iMC)684以及一个或多个处理器核(未示出),一个或多个处理器核用于执行与主机OS(操作系统)和/或应用软件相关联的一个或多个驱动器,其中,每个核可以是功能全面的,其具有指令提取单元、指令解码器,一级(L1)高速缓存、执行单元等。CPU 676还可以经由前端总线与iMC 683的片外变型(也被称为北桥)进行通信。所示出的CPU 676经由集线器总线与输入/输出(I/O)模块692(也被称为南桥)进行通信。iMC 683/CPU 676和I/O模块692有时被称为芯片组,或者可以一起实现为片上系统(SoC)架构。
所示出的计算系统600还包括三维(3D)图形流水线677。例如,3D图形流水线677可以包括上面论述的3D图形流水线112(图1)。因此,例如,3D图形流水线677可以提供与纹理相对应的纹理采样位置数据,其中,对纹理的采样是在3D图形流水线外部执行的。此外,计算系统600包括计算流水线679。例如,计算流水线679可以包括上面论述的计算流水线126(图1)。因此,例如,计算流水线679可以使用纹理采样位置数据来执行对纹理的采样,和/或提供与纹理相对应的纹理采样结果数据。3D图形流水线677和计算流水线679可以用专用图形和/或集成图形格式来实现。例如,在集成图形格式中,3D图形流水线677、计算流水线679和总线可以是同一个模具的一部分。然而,3D图形流水线677和/或计算流水线679的一个或多个部件可以位于远处(例如,在CPU 676中)。
应当注意的是,当纹理没有存在于物理存储器中(例如,在主存储器686中、在专用图形存储器690中等或其组合)时,计算流水线679可以管理与纹理(例如,虚拟纹理)相关联的页面错误。此外,计算流水线679可以对出错的上下文进行切换(例如,在EU指令级处(例如,提供相对较细的粒度))。计算流水线679还可以包括和/或利用硬件采样器681来对纹理进行采样,硬件采样器681可以在3D图形流水线677与计算流水线679之间共享。因此,应用可以不需要是页面感知的和/或错误感知的,其中,页面错误和/或对页面错误的管理可以对应用是隐藏的。此外,由于可以无需等待足够的前向进展来实现当前原语的完成的情况下,对与页面错误相关联的上下文(例如,出错的上下文)进行切换(例如,基本上立即切换),从而允许执行另一图形任务(例如,不涉及纹理采样、与当前没有在等待错误的任何上下文相关联的图形任务等),因此,页面错误可以不导致拖延。
此外,GPU硬件的使用可以允许另外的采样优点,例如,支持最接近滤波、双线性滤波、三线性滤波、各向异性滤波等。此外,可以支持梯度输入,并且可以支持缺少纹理格式或LOD偏移。例如,可以支持tex3Dgrad,以确定用于mip映射(mip-mapping)和/或滤波的LOD。
此外,压缩优点可以包括按需解压缩(例如,以16K x 16K粒度)。此外,采样可以通过可以包括本地/远程服务器的存储器映射的网络文件来完成,以对相对大的纹理(例如,卫星图像)进行解压缩。此外,格式(例如,JPEG)可以被解压缩并经由共享存储器与工作组共享。LOD回退优点可以包括:如果通过处理作为期望(例如,正常)的层次的、相对较粗糙的mip贴图层次和/或通过保证存在mip贴图,无法按时地对页面进行流化,那么回退到保证存在的页面。此外,在着色器是错误感知的情况下,如果采样导致页面错误,那么非阻塞采样指令可以用于返回失败,以允许着色器尝试相对较粗糙的mip层次。流化优点可以包括:由于相对小的纹理预加载,从而提供相对少的加载(例如,启动)时间。此外,可以提供相对瘦客户端(例如,对于网络应用),和/或硬盘驱动器上可以不需要纹理资源。
此外,可以使用webkit。例如,开源webkit渲染模块可以使CPU 676能够将块(tile)直接渲染到共享的存储器,其中,块和图像可以经由采样器(例如,GPU硬件采样器681,其可以是可出现错误的)直接访问。此外,在流化跟不上帧速率的情况下,检查器框纹理可以由3D上下文(或另一计算上下文)而不是LOD来使用。地形渲染优点可以包括:通过不需要应用将可视块(tile)切成方块和更新存储器(例如,VRAM),使用相对大高度的贴图来进行相对简化的地形渲染。
图5示出了根据实施例的、可以实现三维(3D)图形流水线和计算流水线的系统700的实施例。例如,3D图形流水线可以包括上面论述的3D图形流水线112(图1)和/或3D图形流水线677(图4)。此外,计算流水线可以包括上面论述的计算流水线126(图1)和/或计算流水线679(图4)。在多个实施例中,尽管系统700并不限于该情况,但是系统700可以是媒体系统。例如,可以将系统700合并入以下各项中:个人计算机(PC)、膝上型计算机、超膝上型计算机、平板设备、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板设备或智能电视机)、移动互联网设备(MID)、消息传送设备、数据通信设备、游戏控制台等。
在多个实施例中,系统700包括耦合到显示器720的平台702。平台702可以从内容设备(例如,内容服务设备730、或内容传送设备740、或其它类似的内容源)接收内容。包括一个或多个导航功能的导航控制器750可以用于与例如平台702和/或显示器720进行交互。下面更详细地描述这些部件中的每个部件。
在多个实施例中,平台702可以包括以下各项的任意组合:芯片组705、处理器710、存储器712、存储设备714、图形子系统715、应用716和/或无线电设备718。芯片组705可以在处理器710、存储器712、存储设备714、图形子系统715、应用716和/或无线电设备718之间提供互通。例如,芯片组705可以包括能够提供与存储设备714的互通的存储适配器(未示出)。
处理器710可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核、或任何其它微处理器或中央处理单元(CPU)。在多个实施例中,处理器710可以包括双核处理器、双核移动处理器等。
存储器712可以实现为易失性存储器设备,例如但不限于:随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。
存储设备714可以实现为非易失性存储设备,例如但不限于:磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪速存储器、电池备份的SDRAM(同步DRAM)和/或网络可访问的存储设备。在多个实施例中,例如,当包括多个硬盘驱动器时,存储设备714可以包括用于针对有价值的数字媒体增加存储性能增强的保护的技术。
图形子系统715可以执行对图像(例如,用于显示的静照或视频)的处理。例如,图形子系统715可以是图形处理单元(GPU)和/或视觉处理单元(VPU)。模拟或数字接口可以用于将图形子系统715和显示器720通信地耦合。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI、和/或无线HD兼容技术中的任何一种。图形子系统715可以集成到处理器710或芯片组705中。图形子系统715可以是通信地耦合到芯片组705的独立的卡。
本文中描述的图形和/或视频处理技术可以在各种硬件架构中实现。例如,图形和/或视频功能可以集成在芯片组内。或者,可以使用分立的图形和/或视频处理器。作为又一实施例,图形和/或视频功能可以由通用处理器(包括多核处理器)来实现。在另外的实施例中,这些功能可以在消费者电子设备中实现。
无线电设备718可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电设备。这样的技术可以涉及跨越一个或多个无线网络的通信。示例性无线网络包括(但不限于):无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、以及卫星网络。在跨越这样的网络的通信中,无线电设备718可以根据任何版本的一个或多个可应用的标准进行操作。
在多个实施例中,显示器720可以包括任何电视机类型的监视器或显示器。例如,显示器720可以包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视机的设备、和/或电视机。显示器720可以是数字的和/或模拟的。在多个实施例中,显示器720可以是全息显示器。另外,显示器720可以是可以接收视觉投影的透明表面。这样的投影可以传递各种形式的信息、图像和/或对象。例如,这样的投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用716的控制之下,平台702可以在显示器720上显示用户接口722。
在多个实施例中,例如,内容服务设备730可以由任何国家、国际和/或独立的服务托管,并且因此可由平台702经由互联网来访问。内容服务设备730可以耦合到平台702和/或显示器720。平台702和/或内容服务设备730可以耦合到网络760,以向网络760和从网络760传输(例如,发送和/或接收)媒体信息。内容传送设备740还可以耦合到平台702和/或显示器720。
在多个实施例中,内容服务设备730可以包括:有线电视盒、个人计算机、网络、电话、能够传送数字信息和/或内容的具有互联网功能的设备或装置、以及能够在内容提供商与平台702和/显示器720之间经由网络760或者直接单向地或双向地传送内容的任何其它类似的设备。应当明白的是,可以经由网络760,向系统700中的部件中的任何一个以及内容提供商以及从系统700中的部件中的任何一个以及内容提供商单向地或双向地传输内容。内容的例子可以包括任何媒体信息,例如,其包括视频、音乐、医疗和游戏信息等。
内容服务设备730接收诸如有线电视节目之类的内容(包括媒体信息、数字信息和/或其它内容)。内容提供商的例子可以包括任何有线或卫星电视或无线电广播或互联网内容提供商。所提供的例子并不意在限制本发明的实施例。
在多个实施例中,平台702可以从具有一个或多个导航功能的导航控制器750接收控制信号。例如,控制器750的导航功能可以用于与用户接口722进行交互。在多个实施例中,导航控制器750可以是定点设备,该定点设备可以是允许用户向计算机输入空间(例如,连续和多维)数据的计算机硬件部件(尤其是人机接口设备)。诸如图形用户接口(GUI)和电视机和监测器之类的许多系统允许用户使用物理姿势来控制计算机或电视机并向计算机或电视机提供数据。
控制器750的导航功能的运动可以通过显示器上显示的指针、光标、对焦环、或其它视觉指示器的运动来反映在显示器(例如,显示器720)上。例如,在软件应用716的控制下,可以将位于导航控制器750上的导航功能映射到例如用户接口722上显示的虚拟导航功能。在多个实施例中,控制器750可以不是单独的部件,而是集成在平台702和/或显示器720中。然而,多个实施例并不局限于本文中示出或描述的要素或情况。
在多个实施例中,驱动器(未示出)可以包括:用于使用户能够在初始启动之后(例如,当启用时),利用对按钮的触摸来像电视机一样立即打开或关闭平台702的技术。当平台“关闭”时,程序逻辑单元可以允许平台702将内容流化到媒体适配器或其它内容服务设备730或内容传送设备740。此外,芯片组705可以包括支持例如5.1环绕声音频和/或高清7.1环绕声音频的硬件和/或软件。驱动器可以包括用于集成的图形平台的图形驱动器。在多个实施例中,图形驱动器可以包括外围部件互连(PCI)Express图形卡。
在各个实施例中,系统700中示出的部件中的任何一个或多个部件可以是集成的。例如,平台702和内容服务设备730可以是集成的,或者平台702和内容传送设备740可以是集成的,或者例如平台702、内容服务设备730和内容传送设备740可以是集成的。在各个实施例中,平台702和显示器720可以是集成单元。例如,显示器720和内容服务设备730可以是集成的,或者显示器720和内容传送设备740可以是集成的。这些例子并不意在限制本发明。
在各个实施例中,系统700可以实现为无线系统、有线系统、或者二者的组合。当实现为无线系统时,系统700可以包括适合于通过无线共享介质来进行通信的部件和接口(例如,一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑单元等)。无线共享介质的例子可以包括无线频谱的多个部分(例如,RF频谱等)。当实现为有线系统时,系统700可以包括适合于通过有线通信介质来进行通信的部件和接口(例如,输入/输出(I/O)适配器、用于将I/O适配器与对应的有线通信介质相连接的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等)。有线通信介质的例子可以包括:电线、线缆、金属引线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
平台702可以建立用于传输信息的一个或多个逻辑或物理信道。信息可以包括媒体信息和控制信息。媒体信息可以是指表示针对用户的内容的任何数据。例如,内容的例子可以包括来自以下各项的数据:来自语音会话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等。例如,来自语音会话的数据可以是语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以是指表示针对自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统来路由媒体信息,或者指示节点以预定方式处理媒体信息。然而,这些实施例并不限于图5示出或描述的要素或情况。
如上所述,可以以不同的物理样式或外形尺寸来实现系统700。图6示出了可以在其中体现系统700的小外形尺寸设备800的实施例。例如,在多个实施例中,设备800可以实现为具有无线能力的移动计算设备。例如,移动计算设备可以是指具有处理系统和移动电源或供电(例如,一个或多个电池)的任何设备。
如上所述,移动计算机设备的例子可以包括:个人计算机(PC)、膝上型计算机、超膝上型计算机、平板设备、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视机、智能设备(例如,智能电话、智能平板设备或智能电视机)、移动互联网设备(MID)、消息传送设备、数据通信设备等。
移动计算设备的例子还可以包括被设置为由人穿戴的计算机,例如,腕式计算机、手指式计算机、环状计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋式计算机、服装计算机以及其它可穿戴的计算机。在多个实施例中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然通过举例的方式,一些实施例可以用实现为智能电话的移动计算设备来描述,但是应当明白的是,其它实施例也可以使用其它无线移动计算设备来实现。这些实施例并不限于这种情况。
如图6中所示,设备800可以包括:壳体802、显示器804、输入/输出(I/O)设备806、和天线808。设备800还可以包括导航功能812。显示器804可以包括适合于移动计算设备的、用于显示信息的任何合适的显示单元。I/O设备806可以包括用于向移动计算设备输入信息的任何合适的I/O设备。I/O设备806的例子可以包括:字母数字键盘、数字键盘、触摸板、输入键、按钮、开关、摇杆开关、麦克风、扬声器、语音识别设备和软件等。也可以通过麦克风的方式将信息输入到设备800。这样的信息可以由语音识别设备进行数字化。这些实施例并不限于这种情况。
额外注释和例子:
例子可以包括诸如方法、用于执行该方法的动作的单元、包括指令的至少一种机器可读介质之类的主题,其中,指令在由机器执行时使机器执行根据本文中描述的实施例和例子的、用于对纹理进行采样、管理错误和/或纹理切换的方法、装置或系统的动作。
例子1可以包括:包括一个或多个处理器的装置,该装置可以包括一个或多个流水线。该装置可以包括三维(3D)图形流水线,其包括用于提供与纹理相对应的纹理采样位置数据的纹理采样位置模块,其中,对纹理的采样是在3D图形流水线外部执行的。该装置可以包括计算流水线,其包括纹理采样结果模块,纹理采样结果模块用于使用纹理采样位置数据来执行对纹理的采样和/或提供与纹理相对应的纹理采样结果数据,其中,3D图形流水线的渲染模块用于使用纹理采样结果数据来合成帧,和/或其中该帧要由显示器进行显示。
例子2可以包括例子1的主题,并且还可选地可以包括纹理采样位置模块,纹理采用位置模块用于生成包括纹理采样位置数据的采样信息缓冲器,其中,纹理采样结果模块用于读取采样信息缓冲器来执行采样,和/或生成包括纹理采样结果数据的纹理层缓冲器,和/或其中,渲染模块用于读取纹理层缓冲器来合成帧。
例子3可以包括例子1至例子2中的任一个的主题,并且还可选地可以包括3D图形流水线,3D图像流水线用于支持图形库(GL)3D应用编程接口(API),以生成包括uv坐标、梯度和/或纹理句柄中的一个或多个的采样信息缓冲器,和/或其中,计算流水线用于支持计算API以执行采样和/或生成包括颜色数据的纹理层缓冲器。
例子4可以包括例子1至例子3中的任一个的主题,并且还可选地可以包括计算流水线,计算流水线包括用于管理页面错误的错误管理模块,其中,页面错误和/或对页面错误的管理中的一项或多项对图形应用是隐藏的。
例子5可以包括例子1至例子4中的任一个的主题,并且还可选地可以包括计算流水线,计算流水线包括上下文切换模块,上下文切换模块用于响应于页面错误,对与页面错误相关联的计算上下文进行切换,以允许与页面错误不相关联的图形任务被执行和/或防止拖延。
例子6可以包括例子1至例子5中的任一个的主题,并且还可选地可以包括3D图形流水线,3D图形流水线包括3D上下文图形任务模块,3D上下文图形任务模块用于当错误管理模块用于管理页面错误时,执行与页面错误不相关联的3D图形任务。
例子7可以包括例子1至例子6中的任一个的主题,并且还可选地可以包括3D图形流水线,3D图形流水线包括替代纹理采样结果模块,替代纹理采样结果模块用于当纹理采样返回数据在预定时段内是不可用的时,生成替代纹理采样结果数据以合成帧。
例子8可以包括例子1至例子7中的任一个的主题,并且还可选地可以包括替代纹理采样结果模块,替代纹理采样结果模块用于执行对纹理中存在的相对较粗糙的mip贴图的采样以生成替代纹理采样结果数据。
例子9可以包括例子1至例子8中的任一个的主题,并且还可选地可以包括3D图形流水线,3D图形流水线包括用于等待模块,等待模块用于等待3D图形流水线直到错误管理模块修复页面错误为止以合成帧,其中,等待用于使3D图形流水线与计算流水线在没有明确结束的情况下同步。
例子10可以包括例子1至例子9中的任一个的主题,并且还可选地可以包括计算流水线,计算流水线用于实现细节层次(LOD)偏移和/或线程子集分配中的一项或多项,以允许计算流水线赶上3D图形流水线。
例子11可以包括根据本文中描述的实施例和例子的、用于对纹理进行采样、管理错误、和/或上下文切换的方法。该方法可以包括:经由三维(3D)图形流水线来提供与纹理相对应的纹理采样位置数据,其中,对纹理的采样是在3D图形流水线外部执行的。该方法可以包括:经由计算流水线,使用纹理采样位置数据来执行采样。该方法可以包括:经由计算流水线来提供与纹理相对应的纹理采样结果数据,其中,3D图形流水线用于使用纹理采样结果数据来合成帧。
例子12可以包括例子11的主题,并且还可选地可以包括:经由3D图形流水线来生成包括纹理采样位置数据的采样信息缓冲器;经由计算流水线来读取采样信息缓冲器以执行采样,和/或生成包括纹理采样结果数据的纹理层缓冲器;和/或经由3D图形流水线来读取纹理层缓冲器以合成帧。
例子13可以包括例子11至例子12中的任一个的主题,并且还可选地可以包括:经由3D图形流水线来支持图形库(GL)3D应用编程接口(API),以生成包括uv坐标、梯度和/或纹理句柄中的一个或多个的采样信息缓冲器;和/或经由计算流水线来支持计算API以生成包括颜色数据的纹理层缓冲器。
例子14可以包括例子11至例子13中的任一个的主题,并且还可选地可以包括:经由计算流水线来管理页面错误,其中,页面错误和/或对页面错误管理中的一项或多项对图形应用是隐藏的。
例子15可以包括例子11至例子14中的任一个的主题,并且还可选地可以包括:经由计算流水线,响应于页面错误来对与页面错误相关联的计算上下文进行切换,以允许与页面错误不相关联的图形任务被执行和/或防止拖延。
例子16可以包括例子11至例子15中的任一个的主题,并且还可选地可以包括:当计算流水线管理页面错误时,经由3D图形流水线来执行与页面错误不相关联的3D图形任务。
例子17可以包括例子11至例子16中的任一个的主题,并且还可选地可以包括:当纹理采样结果数据在预定时段内是不可用的时,经由3D图形流水线来生成替代纹理采样结果数据以合成帧。
例子18可以包括例子11至例子17中的任一个的主题,并且还可选地可以包括:执行对纹理中存在的相对较粗糙mip贴图的采样,以生成替代纹理采样结果数据。
例子19可以包括例子11至例子18中的任一个的主题,并且还可选地可以包括:等待3D图形流水线直到页面错误被修复为止,以合成帧,其中,等待用于使3D图形流水线与计算流水线在没有明确结束的情况下同步。
例子20可以包括例子11至例子19中的任一个的主题,并且还可选地可以包括:经由计算流水线来实现细节层次(LOD)偏移和/或线程子集分配中的一项或多项,以允许计算流水线赶上3D图形流水线。
例子21可以包括至少一种计算机可读存储介质,其包括一个或多个指令,一个或多个指令在计算设备上被执行时使计算设备执行以下操作:经由三维(3D)图形流水线来提供与纹理相对应的纹理采样位置数据,其中,对纹理的采样是在3D图形流水线外部执行的;经由计算流水线,使用纹理采样位置数据来执行采样;和/或经由计算流水线来提供与纹理相对应的纹理采样结果数据,其中,3D图形流水线用于使用纹理采样结果数据来合成帧。
例子22可以包括例子21的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:经由3D图形流水线来生成包括纹理采样位置数据的采样信息缓冲器;经由计算流水线来读取采样信息缓冲器以执行采样,和/或生成包括纹理采样结果数据的纹理层缓冲器;和/或经由3D图形流水线来读取纹理层缓冲器以合成帧。
例子23可以包括例子21至例子22中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:经由3D图形流水线来支持图形库(GL)3D应用编程接口(API),以生成包括uv坐标、梯度和/或纹理句柄中的一个或多个的采样信息缓冲器;和/或经由计算流水线来支持计算API以生成包括颜色数据的纹理层缓冲器。
例子24可以包括例子21至例子23中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:经由计算流水线来管理页面错误,其中,页面错误和/或对页面错误的管理中的一项或多项对图形应用是隐藏的。
例子25可以包括例子21至例子24中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:经由计算流水线,响应于页面错误来对与页面错误相关联的计算上下文进行切换,以允许与页面错误不相关联的图形任务被执行和/或防止拖延。
例子26可以包括例子21至例子25中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:当计算流水线用于管理页面错误时,经由3D图形流水线来执行与页面错误不相关联的3D图形任务。
例子27可以包括例子21至例子26中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:当纹理采样结果数据在预定时段内是不可用的时,经由3D图形流水线来生成替代纹理采样结果数据以合成帧。
例子28可以包括例子21至例子27中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:执行对纹理中存在的相对较粗糙的mip贴图的采样,以生成替代纹理采样结果数据。
例子29可以包括例子21至例子28中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:等待3D图形流水线直到页面错误被修复为止以合成帧,其中,等待用于使3D图形流水线与计算流水线在没有明确结束的情况下同步。
例子30可以包括例子21至例子29中的任一个的主题,并且还可选地可以包括:一个或多个指令在被执行时使计算设备执行以下操作:经由计算流水线来实现细节层次(LOD)偏移和/或线程子集分配中的一项或多项,以允许计算流水线赶上3D图形流水线。
例子31可以包括:包括处理器单元的装置,处理器单元可以包括一个或多个流水线。该装置可以包括:用于经由三维(3D)图形流水线来提供与纹理相对应的纹理采样位置数据的单元,其中,对纹理的采样是在3D图形流水线外部执行的。该装置可以包括:用于经由计算流水线使用纹理采样位置数据来执行采样的单元。该装置可以包括:用于经由计算流水线来提供与纹理相对应的纹理采样结果数据的单元,其中,3D图形流水线用于使用纹理采样结果数据来合成帧,和/或其中,该帧用于由显示单元进行显示。
例子32可以包括例子31的主题,并且还可选地可以包括:用于经由3D图形流水线来生成包括纹理采样位置数据的采样信息缓冲器的单元;用于经由计算流水线来读取采样信息缓冲器,以执行采样和/或生成包括纹理采样结果数据的纹理层缓冲器的单元;和/或用于经由3D图形流水线来读取纹理层缓冲器以合成帧的单元。
例子33可以包括例子31至例子32中的任一个的主题,并且还可选地可以包括:用于经由3D图形流水线来支持图形库(GL)3D应用编程接口(API),以生成包括uv坐标、梯度和/或纹理句柄中的一个或多个的采样信息缓冲器的单元;和/或用于经由计算流水线来支持计算API以生成包括颜色数据的纹理层缓冲器的单元。
例子34可以包括例子31至例子33中的任一个的主题,并且还可选地可以包括:用于经由计算流水线来管理页面错误的单元,其中,页面错误和/或对页面错误的管理中的一项或多项对图形应用是隐藏的。
例子35可以包括例子31至例子34中的任一个的主题,并且还可选地可以包括:用于经由计算流水线,响应于页面错误来对与页面错误相关联的计算上下文进行切换,以允许与页面错误不相关联的图形任务被执行和/或防止拖延的单元。
例子36可以包括例子31至例子35中的任一个的主题,并且还可选地可以包括:用于当计算流水线管理页面错误时,经由3D图形流水线来执行与页面错误不相关联的3D图形任务的单元。
例子37可以包括例子31至例子36中的任一个的主题,并且还可选地可以包括:用于当纹理采样结果数据在预定时段内是不可用的时,经由3D图形流水线来生成替代纹理采样结果数据以合成帧的单元。
例子38可以包括例子31至例子37中的任一个的主题,并且还可选地可以包括:用于执行对纹理中存在的相对较粗糙的mip贴图的采样,以生成替代纹理采样结果数据的单元。
例子39可以包括例子31至例子38中的任一个的主题,并且还可选地可以包括:用于等待3D图形流水线直到页面错误被修复为止以合成帧的单元,其中,等待用于使3D图形流水线与计算流水线在没有明确结束的情况下同步。
例子40可以包括例子41至例子49中的任一个的主题,并且还可选地可以包括:用于经由计算流水线来实现细节层次(LOD)偏移和/或线程子集分配中的一项或多项以允许计算流水线赶上3D图形流水线的单元。
可以使用硬件单元、软件单元或二者的组合来来实现各个实施例。硬件单元的例子可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的例子可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定是否使用硬件单元和/或软件单元来实现实施例可以根据多种因素而改变,例如,期望的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束。
至少一个实施例的一个或多个方面可以由机器可读介质上存储的代表性指令来实现,这些代表性指令表示处理器中的各个逻辑单元,这些代表性指令在由机器读取时使得机器制造逻辑单元以执行本文中描述的技术。被称为“IP核”的这样的表示可以存储在有形机器可读介质上,并且被提供给各个消费者或制造工厂,以加载到实际制造逻辑单元或处理器的制造机器中。
本发明的实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的例子包括但不限于:处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片等。此外,在一些附图中,信号导线用线条表示。一些可以是不同的,以指示更多的组成信号路径,其具有数字标签以指示多个组成信号路径,和/或其在一个或多个端部具有箭头以指示主信息流的方向。然而,这不应当以限制性的方式来解释。相反地,这些增加的细节可以结合一个或多个示例性实施例来使用,以促进对电路的更容易的理解。任何所表示的信号线(不管是否具有额外的信息)实际上可以包括可以在多个方向上行进的一个或多个信号,并且可以使用任何合适类型的信号方案(例如,使用差分对、光纤链线路、和/或单端线路来实现的数字或模拟线路)来实现。
可能已经给出了示例尺寸/模型/值/范围,尽管本发明的实施例不限于此。由于制造技术(例如,光刻法)随着时间的推移不断成熟,预期能够制造更小尺寸的设备。此外,为了说明和论述的简单起见,并且为了不使本发明的实施例的某些方面模糊,可以在图中示出或者可以不在图中示出到IC芯片和其它部件的公知的功率/接地连接。此外,为了避免模糊本发明的实施例,并且还鉴于以下事实:关于框图装置的实现的细节高度依赖于将要在其中实现实施例的平台(即,这样的细节应当很好地处于本领域技术人员的范畴之内),可以以框图形式示出这样的装置。在为了描述本发明的示例实施例而阐述了具体细节(例如,电路)的情况下,对于本领域技术人员来说应当显而易见的是,可以在不具有这些具体细节或具有这些具体细节的变型的情况下来实施本发明的实施例。因此本说明书被认为是说明性的而非限制性的。
例如,可以使用机器或有形计算机可读介质或制品来实现一些实施例,所述介质或制品可以存储指令或指令集,指令或指令集在由机器执行的情况下可以使机器执行根据这些实施例的方法和/或操作。例如,这样的机器可以包括任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并且可以使用硬件和/或软件的任意合适的组合来实现。例如,机器可读介质或制品可以包括任何合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元(例如,存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、压缩盘只读存储器(CD-ROM)、可记录压缩盘(CD-R)、可重写压缩盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储卡或盘、各种类型的数字多功能盘(DVD)、磁带,盒式磁带等)。指令可以包括任何合适类型的代码,例如,使用任何合适的高级、低级、面向对象、可视、编译和/或解释编程语言来实现的源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等。
除非特别声明,否则应当明白的是,诸如“处理”、“运算”、“计算”、“确定”等术语是指计算机或计算系统或者类似电子计算设备(其将计算系统的寄存器和/或存储器内的、表示为物理(电子)量的数据操作和/或转换成计算系统的存储器、寄存器或其它这样的信息存储、传输或显示设备内的类似地表示成物理量的其它数据)的动作和/或过程。这些实施例并不局限于这种情况。
在本文中,术语“耦合”可以用于指代讨论中的部件之间的、任何类型的直接或间接关系,并且可以应用于电、机械、流体、光、电磁、机电或其它连接。此外,除非另有说明,否则在本文中,术语“第一”、“第二”等可以仅是用于促进论述,并且不具有特定的时间或时间顺序意义。此外,应当理解的是,不定冠词“一”或“一个”具有“一个或多个”或“至少一个”的含义。此外,如在本申请和权利要求书中所使用的,通过术语“一个或多个”和“至少一个”连接的项目的列表可以意指所列出的术语的任意组合。例如,“A、B或C中的一个或多个”或“A、B和C中的一个或多个”可以意指A;B;C;A和B;A和C;B和C;或者A、B和C。
本领域技术人员应当从前述描述中明白,本发明的实施例的广泛的技术可以以各种形式来实现。因此,尽管已经结合本发明的实施例的特定例子描述了本发明的实施例,但是本发明的实施例的真实范围应当不限于此,这是因为在对附图、说明书和以下的权利要求书研究时,其它修改对于技术人员来说将变得显而易见。
Claims (24)
1.一种用于对纹理进行采样的装置,包括:
处理器单元,其包括一个或多个流水线;
用于经由三维3D图形流水线来提供与纹理相对应的纹理采样位置数据的单元,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;
用于当与所述纹理相对应的纹理采样结果数据在预定时段内是不可用的时,经由所述3D图形流水线来生成替代纹理采样结果数据以合成帧的单元;
用于经由计算流水线,使用所述纹理采样位置数据来实现执行采样的单元;
用于经由所述计算流水线来提供与所述纹理相对应的所述纹理采样结果数据的单元,其中,所述3D图形流水线用于使用所述纹理采样结果数据和所述替代纹理采样结果数据中的一项或多项来合成所述帧;以及
用于经由所述计算流水线来管理页面错误的单元,其中,所述页面错误和对所述页面错误的管理中的一项或多项对图形应用是隐藏的。
2.根据权利要求1所述的装置,其中:
用于经由所述3D图形流水线来生成包括所述纹理采样位置数据的采样信息缓冲器的单元;
用于经由所述计算流水线来读取所述采样信息缓冲器,以执行所述采样和生成包括所述纹理采样结果数据的纹理层缓冲器的单元;以及
用于经由所述3D图形流水线来读取所述纹理层缓冲器以合成所述帧的单元。
3.根据权利要求2所述的装置,其中:
用于经由所述3D图形流水线来支持图形库(GL)3D应用编程接口API,以生成包括uv坐标、梯度和纹理句柄中的一个或多个的所述采样信息缓冲器的单元;以及
用于经由所述计算流水线来支持计算API以生成包括颜色数据的所述纹理层缓冲器的单元。
4.根据权利要求1所述的装置,还包括:
用于经由所述计算流水线,响应于所述页面错误来对与所述页面错误相关联的计算上下文进行切换,以允许与所述页面错误不相关联的上下文被执行并防止拖延的单元。
5.根据权利要求1所述的装置,还包括:
用于当所述计算流水线管理所述页面错误时,经由所述3D图形流水线来执行与所述页面错误不相关联的3D图形任务的单元。
6.根据权利要求1所述的装置,还包括:
用于执行对所述纹理中存在的、相对较粗糙的mip贴图的采样,以生成所述替代纹理采样结果数据的单元。
7.根据权利要求1所述的装置,还包括:
用于等待所述3D图形流水线直到所述页面错误被修复为止,以合成所述帧的单元,其中,所述等待用于使所述3D图形流水线与所述计算流水线在没有明确结束的情况下同步。
8.根据权利要求1所述的装置,还包括:
用于经由所述计算流水线来实现细节层次(LOD)偏移和线程子集分配中的一项或多项,以允许所述计算流水线赶上所述3D图形流水线的单元。
9.一种用于对纹理进行采样的方法,包括:
经由三维3D图形流水线来提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;
当与所述纹理相对应的纹理采样结果数据在预定时段内是不可用的时,经由所述3D图形流水线来生成替代纹理采样结果数据以合成帧;
经由计算流水线,使用所述纹理采样位置数据来执行采样;
经由所述计算流水线来提供与所述纹理相对应的所述纹理采样结果数据,其中,所述3D图形流水线用于使用所述纹理采样结果数据和所述替代纹理采样结果数据中的一项或多项来合成所述帧;以及
经由所述计算流水线来管理页面错误,其中,所述页面错误和对所述页面错误的管理中的一项或多项对图形应用是隐藏的。
10.根据权利要求9所述的方法,还包括:
经由所述3D图形流水线来生成包括所述纹理采样位置数据的采样信息缓冲器;
经由所述计算流水线来读取所述采样信息缓冲器,以执行采样和生成包括所述纹理采样结果数据的纹理层缓冲器;以及
经由所述3D图形流水线来读取所述纹理层缓冲器以合成所述帧。
11.根据权利要求10所述的方法,还包括:
经由所述3D图形流水线来支持图形库(GL)3D应用编程接口API,以生成包括uv坐标、梯度和纹理句柄中的一个或多个的所述采样信息缓冲器;以及
经由所述计算流水线来支持计算API以生成包括颜色数据的所述纹理层缓冲器。
12.根据权利要求9所述的方法,还包括:
经由所述计算流水线,响应于所述页面错误来对与所述页面错误相关联的计算上下文进行切换,以允许与所述页面错误不相关联的图形任务被执行并防止拖延。
13.根据权利要求9所述的方法,还包括:
当所述计算流水线管理所述页面错误时,经由所述3D图形流水线来执行与所述页面错误不相关联的3D图形任务。
14.至少一种非暂态计算机可读存储介质,其包括一个或多个指令,所述一个或多个指令在计算设备上被执行时使所述计算设备执行以下操作:
经由三维3D图形流水线来提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;
当与所述纹理相对应的纹理采样结果数据在预定时段内是不可用的时,经由所述3D图形流水线来生成替代纹理采样结果数据以合成帧;
经由计算流水线,使用所述纹理采样位置数据来执行采样;
经由所述计算流水线来提供与所述纹理相对应的所述纹理采样结果数据,其中,所述3D图形流水线用于使用所述纹理采样结果数据和所述替代纹理采样结果数据中的一项或多项来合成所述帧;以及
经由所述计算流水线来管理页面错误,其中,所述页面错误和对所述页面错误的管理中的一项或多项对图形应用是隐藏的。
15.根据权利要求14所述的至少一种非暂态计算机可读存储介质,其中,所述一个或多个指令在被执行时使所述计算设备执行以下操作:
经由所述3D图形流水线来生成包括所述纹理采样位置数据的采样信息缓冲器;
经由所述计算流水线来读取所述采样信息缓冲器,以执行采样和生成包括所述纹理采样结果数据的纹理层缓冲器;以及
经由所述3D图形流水线来读取所述纹理层缓冲器以合成所述帧。
16.根据权利要求15所述的至少一种非暂态计算机可读存储介质,其中,所述一个或多个指令在被执行时使所述计算设备执行以下操作:
经由所述3D图形流水线来支持图形库(GL)3D应用编程接口API,以生成包括uv坐标、梯度和纹理句柄中的一个或多个的所述采样信息缓冲器;以及
经由所述计算流水线来支持计算API以生成包括颜色数据的所述纹理层缓冲器。
17.根据权利要求14所述的至少一种非暂态计算机可读存储介质,其中,所述一个或多个指令在被执行时使所述计算设备执行以下操作:
经由所述计算流水线,响应于所述页面错误来对与所述页面错误相关联的计算上下文进行切换,以允许与所述页面错误不相关联的图形任务被执行并防止拖延。
18.根据权利要求14所述的至少一种非暂态计算机可读存储介质,其中,所述一个或多个指令在被执行时使所述计算设备执行以下操作:
当所述计算流水线管理所述页面错误时,经由所述3D图形流水线来执行与所述页面错误不相关联的3D图形任务。
19.一种用于对纹理进行采样的装置,包括:
一个或多个处理器,其包括一个或多个流水线,所述一个或多个流水线包括:
三维3D图形流水线,其包括:
纹理采样位置模块,用于提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;和
等待模块,用于等待所述3D图形流水线直到错误管理模块修复页面错误为止以合成帧,其中,等待使所述3D图形流水线与计算流水线在没有明确结束的情况下同步;以及
所述计算流水线,其包括:
纹理采样结果模块,其用于使用所述纹理采样位置数据来执行对所述纹理的采样并且提供与所述纹理相对应的纹理采样结果数据,其中,所述3D图形流水线的渲染模块用于使用所述纹理采样结果数据来合成帧;和
所述错误管理模块,其用于管理所述页面错误,其中,所述页面错误和对所述页面错误的管理中的一项或多项对图形应用是隐藏的。
20.一种用于对纹理进行采样的方法,包括:
经由三维3D图形流水线提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;
等待所述3D图形流水线直到计算流水线修复页面错误为止以合成帧,其中,等待使所述3D图形流水线与计算流水线在没有明确结束的情况下同步;
经由所述计算流水线使用所述纹理采样位置数据来执行采样;
经由所述计算流水线提供与所述纹理相对应的纹理采样结果数据,其中,所述3D图形流水线用于使用所述纹理采样结果数据来合成帧;并且
经由所述计算流水线来管理所述页面错误,其中,所述页面错误和对所述页面错误的管理中的一项或多项对图形应用是隐藏的。
21.至少一种非暂态计算机可读存储介质,其包括一个或多个指令,所述一个或多个指令在计算设备上被执行时使所述计算设备执行以下操作:
经由三维3D图形流水线提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;
等待所述3D图形流水线直到计算流水线修复页面错误为止以合成帧,其中,等待使所述3D图形流水线与计算流水线在没有明确结束的情况下同步;
经由所述计算流水线使用所述纹理采样位置数据来执行采样;
经由所述计算流水线提供与所述纹理相对应的纹理采样结果数据,其中,所述3D图形流水线用于使用所述纹理采样结果数据来合成帧;并且
经由所述计算流水线来管理所述页面错误,其中,所述页面错误和对所述页面错误的管理中的一项或多项对图形应用是隐藏的。
22.一种用于对纹理进行采样的装置,包括:
一个或多个处理器,其包括一个或多个流水线,所述一个或多个流水线包括:
三维3D图形流水线,其包括纹理采样位置模块,用于提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;以及
计算流水线,其包括纹理采样结果模块,用于使用所述纹理采样位置数据来执行对所述纹理的采样并且提供与所述纹理相对应的纹理采样结果数据,其中,所述计算流水线用于实现细节层次(LOD)偏移和线程子集分配中的一项或多项以允许所述计算流水线跟上所述3D图形流水线,并且其中,所述3D图形流水线的渲染模块用于使用所述纹理采样结果数据来合成帧。
23.一种用于对纹理进行采样的方法,包括:
经由三维3D图形流水线提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;
经由计算流水线使用所述纹理采样位置数据来执行采样;并且
经由所述计算流水线提供与所述纹理相对应的纹理采样结果数据,其中,所述计算流水线实现细节层次(LOD)偏移和线程子集分配中的一项或多项以允许所述计算流水线跟上所述3D图形流水线,并且其中,所述3D图形流水线用于使用所述纹理采样结果数据来合成帧。
24.至少一种非暂态计算机可读存储介质,其包括一个或多个指令,所述一个或多个指令在计算设备上被执行时使所述计算设备执行以下操作:
经由三维3D图形流水线提供与纹理相对应的纹理采样位置数据,其中,对所述纹理的采样是在所述3D图形流水线外部执行的;
经由计算流水线使用所述纹理采样位置数据来执行采样;并且
经由所述计算流水线提供与所述纹理相对应的纹理采样结果数据,其中,所述计算流水线实现细节层次(LOD)偏移和线程子集分配中的一项或多项以允许所述计算流水线跟上所述3D图形流水线,并且其中,所述3D图形流水线用于使用所述纹理采样结果数据来合成帧。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/318,562 US9449363B2 (en) | 2014-06-27 | 2014-06-27 | Sampling, fault management, and/or context switching via a compute pipeline |
US14/318,562 | 2014-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105321142A CN105321142A (zh) | 2016-02-10 |
CN105321142B true CN105321142B (zh) | 2019-04-02 |
Family
ID=53506291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510276147.8A Expired - Fee Related CN105321142B (zh) | 2014-06-27 | 2015-05-26 | 经由计算流水线进行的采样、错误管理和/或上下文切换 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9449363B2 (zh) |
CN (1) | CN105321142B (zh) |
DE (1) | DE102015006750A1 (zh) |
GB (1) | GB2528558B (zh) |
TW (1) | TWI576784B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105957137B (zh) * | 2016-04-20 | 2018-09-21 | 上海交通大学 | 基于纹理映射的三维彩色模型图像处理方法 |
US11228754B2 (en) | 2016-05-06 | 2022-01-18 | Qualcomm Incorporated | Hybrid graphics and pixel domain architecture for 360 degree video |
US10388058B2 (en) | 2017-02-16 | 2019-08-20 | Microsoft Technology Licensing, Llc | Texture residency hardware enhancements for graphics processors |
US11609791B2 (en) | 2017-11-30 | 2023-03-21 | Advanced Micro Devices, Inc. | Precise suspend and resume of workloads in a processing unit |
CN108121566A (zh) * | 2017-12-06 | 2018-06-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形指令解析设计方法 |
CN111008042B (zh) * | 2019-11-22 | 2022-07-05 | 中国科学院计算技术研究所 | 基于异构流水线的高效通用处理器执行方法及系统 |
CN113760278A (zh) * | 2021-01-13 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种页面管理方法和装置 |
CN114978926B (zh) * | 2022-05-17 | 2023-09-19 | 电子科技大学 | 一种适用于确定性网络协议的仿真方法及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259460B1 (en) | 1998-03-26 | 2001-07-10 | Silicon Graphics, Inc. | Method for efficient handling of texture cache misses by recirculation |
US6297832B1 (en) * | 1999-01-04 | 2001-10-02 | Ati International Srl | Method and apparatus for memory access scheduling in a video graphics system |
US7274365B1 (en) * | 2003-01-31 | 2007-09-25 | Microsoft Corporation | Graphical processing of object perimeter information |
US7013383B2 (en) * | 2003-06-24 | 2006-03-14 | Via-Cyrix, Inc. | Apparatus and method for managing a processor pipeline in response to exceptions |
US20050140688A1 (en) * | 2003-12-29 | 2005-06-30 | Kim Pallister | Method and mechanism for programmable filtering of texture map data in 3D graphics subsystems |
US20060174232A1 (en) * | 2005-02-02 | 2006-08-03 | Bluestreak Media Inc. | Interger-based calculation method |
US8817035B2 (en) | 2005-12-21 | 2014-08-26 | Nvidia Corporation | Texture pipeline context switch |
US8325184B2 (en) * | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US8159505B2 (en) | 2008-10-01 | 2012-04-17 | Ati Technologies Ulc | System and method for efficient digital video composition |
US20120229481A1 (en) * | 2010-12-13 | 2012-09-13 | Ati Technologies Ulc | Accessibility of graphics processing compute resources |
JP5891388B2 (ja) * | 2011-03-31 | 2016-03-23 | パナソニックIpマネジメント株式会社 | 立体視画像の描画を行う画像描画装置、画像描画方法、画像描画プログラム |
US9153065B2 (en) * | 2013-02-05 | 2015-10-06 | Google Technology Holdings LLC | System and method for adjusting image pixel color to create a parallax depth effect |
US9390463B2 (en) * | 2013-08-12 | 2016-07-12 | Intel Corporation | Techniques for reducing memory bandwidth for display composition |
US20150084952A1 (en) * | 2013-09-23 | 2015-03-26 | Nvidia Corporation | System, method, and computer program product for rendering a screen-aligned rectangle primitive |
-
2014
- 2014-06-27 US US14/318,562 patent/US9449363B2/en active Active
-
2015
- 2015-05-26 TW TW104116809A patent/TWI576784B/zh active
- 2015-05-26 DE DE102015006750.8A patent/DE102015006750A1/de not_active Withdrawn
- 2015-05-26 CN CN201510276147.8A patent/CN105321142B/zh not_active Expired - Fee Related
- 2015-05-26 GB GB1508928.7A patent/GB2528558B/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425175A (zh) * | 2007-12-06 | 2009-05-06 | 威盛电子股份有限公司 | 着色器处理系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201604831A (zh) | 2016-02-01 |
GB201508928D0 (en) | 2015-07-01 |
GB2528558B (en) | 2018-05-09 |
TWI576784B (zh) | 2017-04-01 |
CN105321142A (zh) | 2016-02-10 |
US9449363B2 (en) | 2016-09-20 |
DE102015006750A1 (de) | 2015-12-31 |
GB2528558A (en) | 2016-01-27 |
US20150379730A1 (en) | 2015-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105321142B (zh) | 经由计算流水线进行的采样、错误管理和/或上下文切换 | |
Wheeler et al. | Virtual interaction and visualisation of 3D medical imaging data with VTK and Unity | |
CN107251098B (zh) | 使用动态三维形状促进真实对象的真三维虚拟表示 | |
CN108734640A (zh) | 利用多种分辨率进行显示器带宽降低 | |
US11151424B2 (en) | System and method for 3D blob classification and transmission | |
WO2018044403A1 (en) | Multi-resolution deferred shading using texel shaders in computing environments | |
US10559112B2 (en) | Hybrid mechanism for efficient rendering of graphics images in computing environments | |
WO2021008627A1 (zh) | 游戏角色渲染方法、装置、电子设备及计算机可读介质 | |
US11550632B2 (en) | Facilitating efficient communication and data processing across clusters of computing machines in heterogeneous computing environment | |
US10089264B2 (en) | Callback interrupt handling for multi-threaded applications in computing environments | |
US9811334B2 (en) | Block operation based acceleration | |
WO2017082973A2 (en) | Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices | |
US20140198110A1 (en) | Reducing the number of sequential operations in an application to be performed on a shared memory cell | |
CN103927223B (zh) | 用于对图形资源的串行化访问的方法、系统、装置、设备以及存储介质 | |
EP3629300A1 (en) | Coarse compute shading | |
CN104067318A (zh) | 使用三维光栅化的时间连续碰撞检测 | |
US20210374987A1 (en) | Training and deploying pose regressions in neural networks in autonomous machines | |
US10026142B2 (en) | Supporting multi-level nesting of command buffers in graphics command streams at computing devices | |
US10002405B2 (en) | Smart optimization of unused graphics buffer memory in computing environments | |
CN103460292B (zh) | 定义立体视觉图形对象的场景图形 | |
CN103577046A (zh) | 一种3d立体桌面系统及其实现方法 | |
US20140176440A1 (en) | Apparatus and system for implementing a wireless mouse using a hand-held device | |
US20210256714A1 (en) | Dense motion tracking mechanism | |
CN104915191B (zh) | 图形处理器中的连接组件标记 | |
WO2022115380A1 (en) | Methods and apparatus to provide remote telepresence communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190402 Termination date: 20210526 |
|
CF01 | Termination of patent right due to non-payment of annual fee |