用于渲染图像数据的多个剪刀平面寄存器的制造方法

文档序号:6485367阅读:146来源:国知局
用于渲染图像数据的多个剪刀平面寄存器的制造方法
【专利摘要】描述了包括接收指示正在显示的三维(3D)应用的各部分的可视矩形数据的操作的系统、装置、制品和方法。可以至少部分地基于可视矩形数据做出对两个或更多个剪刀平面的确定。可以至少部分地基于所确定的两个或更多个剪刀平面设置两个或更多个剪刀平面寄存器。可以至少部分地基于所确定的两个或更多个剪刀平面把图像数据渲染到渲染缓冲器。
【专利说明】用于渲染图像数据的多个剪刀平面寄存器
[0001]背景
[0002]当前,当三维(3D)应用准备重绘与该3D应用相关联的窗口时,驱动器可以绘制与3D应用相关联的整个窗口的所有屏幕数据,且然后,把可视内容分块图像传输(blockimage transfer:BLIT)给帧缓冲器。因为不同的窗口的重叠,可以不显示为该3D应用渲染(render)的一些内容。
[0003]当前,许多GPU支持剪刀(scissor)测试函数,剪刀测试函数可以被用来把渲染强制为发生在一个期望的区域中。在这样的剪刀测试函数中,可以在进一步处理在剪刀测试期间丢弃所有剪刀区域之外的像素。 [0004]类似地,在Linux型窗口系统中,3D应用的窗口是可绘制的,且可以具有可以被存储为剪贴矩形的可视信息。通常,在3D应用重绘其窗口时,剪贴矩形中的可视部分可以被BLIT到帧缓冲器。
[0005]在一些应用编程接口(API)(例如,OpenGL API和/或Direct3D API)中,程序员可以设置剪刀平面。然而,许多GPU支持表示一个矩形区域的一个剪刀平面。因此程序员仅可以设置一个活跃剪刀平面。
[0006]附图简述
[0007]在附图中作为示例而非限制阐释在此描述的材料。出于阐释的简单和清晰起见,并不必定按比例绘制各图中所阐释的元素。例如,为清晰起见,相对于其他元素,可以放大一些元素的尺寸。进一步,在认为合适时,在各图当中已经重复参考标签以指示相应的或类似的元素。附图中:
[0008]图1是示例图形处理系统的示意图;
[0009]图2是阐释不例?宣染过程的流程图;
[0010]图3是操作中的示例图形处理系统的示意图;
[0011]图4是示例图形处理系统的示意图;
[0012]图5是示例系统的示意图;以及
[0013]图6是均根据本公开内容的至少一些实现布置的示例系统的示意图。
[0014]详细描述
[0015]现在参考附图描述一个或多个实施例或实现。尽管讨论了特定的配置和布置,但应理解,仅处于说明性目的而这样做。相关领域中的技术人员将认识到,可以在不偏离本描述的精神和范围的前提下采用其他配置和布置。相关领域中的技术人员将明显看出,在不同于在此描述的各种其他系统和应用中也可以采用在此描述的技术和/或布置。
[0016]虽然下面的描述中阐述了可以在诸如例如片上系统(SoC)体系结构的体系结构中表现各种实现,但本文所描述的技术和/或布置的实现并不限于特定的结构和/或计算系统,并且可以由用于类似目的的任何结构和/或计算系统实现。举例来说,采用例如多个集成电路(IC)芯片和/或封装和/或诸如机顶盒、智能电话等等的各种计算设备和/或消费性电子(CE)设备的各种体系结构,可以实现在此描述的技术和/或布置。进一步,尽管下列的描述可以陈述众多特定的细节,例如逻辑实现、系统组件的类型和相互关系、逻辑划分/集成选择等等,但无需这样的特定细节就可以实践所要求保护的本主题。在其他实例中,可以不详细示出诸如例如控制结构和完全软件指令序列等的一些材料,以便不模糊在此公开的材料。
[0017]在此公开的材料可以以硬件、固件、软件或其任何组合实现。在此公开的材料也可以被实现为存储在机器可读介质上的可以由一个或多个处理器读取和执行的指令。机器可读介质可以包括用于存储或传输以机器(例如,计算设备)可读的形式的信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪速存储器设备;电、光、声或其他形式的所传播的信号(例如,载波、红外信号、数字信号等等)以及其他。
[0018]本说明书中对“一个实现”、“一种实现”、“一个示例实现”等等的引用指示所描述的实现可以包括具体的特征、结构或特性,但每一实现并不必定包括该具体的特征、结构或特性。此外,这样的短语并不必定指代相同的实现。进一步,在结合一种实现描述具体的特征、结构或特性时,应当认为,无论在此是否明确描述,这是在本领域的技术人员结合其他实现来实施这样的特征、结构或特性的知识范围内。
[0019]如下面更详细地描述的,一些示例实现可以包括接收指示正在显示的三维(3D)应用的各部分的可视矩形数据的操作。可以至少部分地基于可视矩形数据做出对两个或更多个剪刀平面的确定。可以至少部分地基于所确定的两个或更多个剪刀平面设置两个或更多个剪刀平面寄存器。可以至少部分地基于所确定的两个或更多个剪刀平面把图像数据渲染到渲染缓冲器。
[0020]例如,可以修改图形处理单元(GPU)以便支持多个剪刀。在3D渲染流水线中,可以结合来自窗口管理器的剪贴/可视信息使用这样的多个剪刀。例如,多个剪刀可以用来减少不必要的渲染,这可以增加3D渲染性能和/或也可以节省整体系统功率(例如,当在智能电话/平板平台上使用多个剪刀时)。
[0021]图1是根据本公开内容的至少一些实现布置的图形处理系统100的示意图。在所阐释的实现中,图形处理系统100可以包括图形处理单元(GPU) 102、窗口管理器120、渲染缓冲器112和/或帧缓冲器114。正如所阐释的,GPU102、窗口管理器120、渲染缓冲器112和/或帧缓冲器114能够彼此通信。在一些示例中,图形处理系统100可以包括出于清晰起见在图1中没有示出的附加项目。例如,图形处理系统100可以包括出于清晰起见在图1中没有示出的射频型(RF)收发器、天线、扬声器、显示器、加速度计、存储器、路由器、网络接口逻辑等等。
[0022]在一些实现中,图形处理单元102可以包括三维(3D)应用模块104、3D驱动器模块106和/或类似物。另外,图形处理单元102可以包括两个或更多个剪刀平面寄存器,例如第一剪刀平面寄存器108到第N个剪刀平面寄存器110。在一些示例中,剪刀平面寄存器108/110可以被实现为八个寄存器、十六个平面寄存器和/或类似物。
[0023]在所阐释的示例中,屏幕120可以包括3D应用模块104的可视呈现122。3D应用模块104的各部分可以被诸如窗口 124和/或窗口 126等的一个或多个窗口遮掩。例如,窗口 124可以与不同于3D应用模块104的第二应用相关联,而窗口 126可以与不同于3D应用模块104的第三应用相关联。
[0024]在所阐释的示例中,3D应用模块104的可视呈现122可以与诸如可视矩形130、可视矩形132、可视矩形134等的一个或多个可视矩形或更多或更少的可视矩形相关联。例如,窗口管理器120可以把3D应用模块104的可视呈现122与这样的一个或多个可视矩形130/132/134关联起来。在这样的示例中,窗口管理器120可以生成关于这样的一个或多个可视矩形130/132/134的可视矩形数据。
[0025]在操作中,图形处理单元102可以接收来自窗口管理器120的可视矩形数据,其中可视矩形数据可以指示正在显示的3D应用模块104的部分122。至少部分地基于可视矩形数据,图形处理单元102可以确定两个或更多个剪刀平面。至少部分地基于所确定的剪刀平面,图形处理单元102可以设置剪刀平面寄存器108/110。至少部分地基于剪刀平面寄存器108/110,图形处理单元102可以把图像数据渲染到渲染缓冲器112。在一些示例中,把图像数据渲染到渲染缓冲器112可以涉及仅渲染对应于与剪刀平面寄存器108/110相关联的剪刀平面的图像数据。
[0026]在操作中,图形处理单元102可以支持多个剪刀平面。在一些实现中,3D驱动器模块106可以使用来自窗口管理器120的剪贴(clip)/可视信息。例如,在渲染之前可以调用3D驱动器模块106中的函数,以便从窗口管理器120获取可视矩形数据。作为响应,至少部分地基于该可视矩形数据,3D驱动器模块106可以在剪刀平面寄存器108/110中设置多个剪刀平面。例如,这样的多个剪刀平面可以独立地启用/禁用,且可以允许图形处理单元102在渲染期间移除在活跃剪刀平面外的像素。
[0027]图2是阐释根据本公开内容的至少一些实现布置的示例渲染过程200的流程图。在所阐释的实现中,过程200可以包括正如框202、204、206和/或208中的一个或多个所阐释的一种或多种操作、函数或动作。作为非限制性示例,在此将参考图1的示例图形处理系统100描述过程200。
[0028]过程200可以在框202开始,“接收可视矩形数据”,其中可以接收可视矩形数据。例如,可以经由图形处理单元从窗口管理器接收可视矩形数据。在一些实现中,这样的可视矩形数据可以指示正在显示的三维(3D)应用的各部分。
[0029]处理可以从操作202继续到操作204,“确定两个或更多个剪刀平面”,其中可以确定两个或更多个剪刀平面。例如,经由图形处理单元,至少部分地基于可视矩形数据,可以确定两个或更多个剪刀平面。
[0030]处理可以从操作204继续到操作206,“在两个或更多个剪刀平面寄存器中设置剪刀平面”,其中可以在两个或更多个剪刀平面寄存器中设置剪刀平面。例如,经由图形处理单元,至少部分地基于所确定的两个或更多个剪刀平面,可以设置两个或更多个剪刀平面寄存器。
[0031]处理可以从操作206继续到操作208,“至少部分地基于两个或更多个剪刀平面寄存器中所设置的剪刀平面渲染图像数据”,其中可以至少部分地基于两个或更多个剪刀平面寄存器渲染图像数据。例如,经由图形处理单元,至少部分地基于两个或更多个剪刀平面寄存器,可以把图像数据渲染到渲染缓冲器。在一些示例中,把图像数据渲染到渲染缓冲器可以涉及仅渲染对应于两个或更多个剪刀平面的图像数据。
[0032]在下面参见图3更详细地讨论的各实现的一个或多个示例中阐释与过程200相关的一些附加的和/或替代的细节。
[0033]图3是根据本公开内容的至少一些实现布置的示例图形处理系统100的示意图,且渲染操作中的过程300。在所阐释的实现中,过程300可以包括正如由动作310、312、314、316、318、320、322和/或324中的一个或多个所阐释的一种或多种操作、函数或动作。作为非限制性示例,在此将参考图1的示例图形处理系统100描述过程300。
[0034]在所阐释的实现中,图形处理系统100可以包括GPU102、窗口管理器120、渲染缓冲器112和/或帧缓冲器114。正如所阐释的,GPU102、窗口管理器120、渲染缓冲器112和/或帧缓冲器114能够相互通信。如图3中所示出,尽管图形处理系统100可以包括与具体的模块相关联的一组具体的框或动作,这些框或动作可以与不同于在这里阐释的具体模块的模块相关联。
[0035]过程300可以在框310开始,“接收渲染请求”,其中可以接收渲染请求。例如,可以经由3D驱动器模块106接收来自三维(3D)应用模块104的渲染请求。
[0036]处理可以从操作310继续到操作312,“通信可视矩形数据”,其中可以传输可视矩形数据。例如,可以经由图形处理单元102从窗口管理器120接收可视矩形数据。在一些实现中,这样的可视矩形数据可以指示正在显示的3D应用模块104的各部分。
[0037]在一些实现中,可以从窗口管理器120推送这样的可视矩形数据。在其他实现中,通过经由3D驱动器模块106从窗口管理器120请求可视矩形数据(未例示),可以从窗口管理器120拉出这样的可视矩形数据。例如,响应于操作310的渲染请求,可以做出对可视矩形数据的这样的请求。
[0038]处理可以从操作312继续到操作314,“确定剪刀平面”,其中可以确定两个或更多个剪刀平面。例如,经由3D驱动器模块106,至少部分地基于可视矩形数据,可以确定两个或更多个剪刀平面。
[0039]处理可以从操作314继续到操作316,“设置剪刀平面”,其中可以在两个或更多个剪刀平面寄存器中设置剪刀平面。例如,经由3D驱动器模块106,至少部分地基于所确定的两个或更多个剪刀平面,可以设置两个或更多个剪刀平面寄存器。
[0040]处理可以从操作316继续到操作318,“渲染图像数据”,其中可以至少部分地基于两个或更多个剪刀平面寄存器渲染图像数据。例如,经由3D驱动器模块106,至少部分地基于两个或更多个剪刀平面寄存器,可以把图像数据渲染到渲染缓冲器112。在一些示例中,把图像数据渲染到渲染缓冲器112可以涉及仅渲染对应于两个或更多个剪刀平面的图像数据。
[0041]处理可以从操作318继续到操作320,“传输当前可视矩形数据”,其中可以传输当前可视矩形数据。例如,经由图形处理单元102,可以从窗口管理器120接收当前可视矩形数据。在一些实现中,这样的当前可视矩形数据可以指示正在显示的三维(3D)应用的各部分。
[0042]在一些实现中,可以从窗口管理器120推送这样的当前可视矩形数据。在其他实现中,通过经由3D驱动器模块106从窗口管理器120请求可视矩形数据(未例示),可以从窗口管理器120拉出这样的可视矩形数据。例如,在操作318处渲染图像数据之后,可以做出对当前可视矩形数据的这样的请求。
[0043]处理可以从操作320继续到操作322,“确定可视矩形的改变”,其中可以确定可视矩形的改变。例如,经由3D驱动器模块106,可以确定相比于可视矩形数据当前可视矩形数据是否已被改变。[0044]处理可以从操作322继续到操作324,“传送图像数据”,其中可以传输图像数据。例如,可以经由分块图像传输(BLIT)传输图像数据。在一些实现中,可以经由3D驱动器模块106把图像数据从渲染缓冲器112传输到帧缓冲器114。
[0045]例如,响应于在操作322处相比于可视矩形数据当前可视矩形数据未被改变的确定,可以执行在操作324处传输图像数据。
[0046]除了操作310-324之外,过程300可以包括图3中未例示的其他操作。例如,响应于在操作322处相比于可视矩形数据当前可视矩形数据已被改变的确定,过程300可以重复操作314-318。在这样的示例中,过程300可以重复在操作314处的两个或更多个剪刀平面的确定、在操作316处设置两个或更多个剪刀平面寄存器、在操作318处把图像数据渲染到渲染缓冲器312。
[0047]在操作中,过程300(和/或过程200)可以引起3D驱动器模块106接收来自3D应用模块104的请求(例如,glFlush/glSwapBuffer型命令)。作为响应,3D驱动器模块106可以为3D硬件准备命令缓冲器。3D驱动器模块106可以调用函数来从窗口管理器120获取可视矩形信息,并把可视矩形设置到剪刀平面寄存器GPU102中。在一些实现中,窗口管理器120可以具有用于每一窗口的可视矩形数据。例如,在X窗口中,窗口管理器120可以把可视矩形数据存储在每一可绘制元素(例如,在X窗口中,每一窗口可以被看作是一种类型的可绘制件(drawable))的剪贴矩形中。3D驱动器模块106可以从窗口管理器120请求这种可视矩形数据并至少部分地基于这样的可视矩形数据调整剪刀平面。
[0048]然后,,3D驱动器模块106可以断开命令缓冲器并开始3D渲染。接下来,3D驱动器模块106可以调用函数以便再次从窗口管理器120获取当前可视矩形信息。3D驱动器模块106可以把当前可视矩形信息与先前的当前可视矩形信息进行比较。通常,在其中可视矩形信息不改变的情况中,渲染缓冲器112可以被BLIT给帧缓冲器114。替代地,在其中可视矩形信息改变的情况中,3D驱动器模块106可以清除剪刀平面寄存器以便再次重绘(re-draw)渲染缓冲器112,且然后根据当前可视矩形把经更新的渲染缓冲器112BLIT到帧缓冲器114。例如,在一些条件下,在渲染期间,3D应用模块104的窗口或其重叠窗口可以移动或改变。如果这种改变发生在渲染期间,则3D驱动器模块106可以再次渲染该景物;否则,3D驱动器模块106可以直接转到BLIT。因为每一场景的渲染通常是非常快速的(通常是几毫秒),在这种渲染期间窗口改变的可能性非常小。并且,往往可以经由窗口改变触发渲染请求发起过程300,因此在许多情况下,窗口的改变将直接转到BLIT。
[0049]尽管正如图2和图3中所阐释的示例过程200和300的实现可以包括采取按所阐释的次序示出的所有框,但本公开内容不限于此,并且在各种示例中,过程200和300的实现可以包括仅采用所示出的框的子集和/或按照不同于所阐释的次序。
[0050]另外,可以响应于由一个或多个计算机程序产品提供的指令采取图2和图3中的各框中的任何一个或多个。这样的程序产品可以包括提供指令的信号承载介质,当指令例如由处理器执行时,可以提供在此描述的功能性。可以以任何形式的计算机可读介质提供计算机程序产品。因而,例如,响应于由计算机可读介质传输给处理器的指令,包括一个或多个处理器核的处理器可以采取图5和图6中所示出的各框中的一个或多个。
[0051]在此描述的任何实现中所使用的术语“模块”是指被配置为提供在此描述的功能性的软件、固件和/或硬件的任何组合。软件可以被实现为软件包、代码和/或指令集或指令,并且,在此描述的任何实现中所使用的“硬件”可以包括例如分别包括或者以任何组合包括硬布线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。各模块可以共同地或分别地被实现为形成更大系统的部分的电路,例如,集成电路(IC)、片上系统(SoC)等等。
[0052]图4是根据本公开内容的至少一些实现布置的图形处理系统100的另一实现的示意图。在所阐释的实现中,图形处理系统100可以包括增强P0WerVR(能力VR)型3D引擎402。在此公开的图形处理系统100可以被应用到不同的GPU和操作系统(OS)。在所阐释的示例中,把图形处理系统100描述为利用增强PowerVR型3D引擎402和Linux系统,作为3D驱动器模块逻辑路径(例如,参见3D图1的驱动器模块106)的示例实现。
[0053]在所阐释的实现中,增强PowerVR型3D引擎402可以包括顶点TOS/USSE (可编程数据定序器/通用可扩展着色器引擎)410、顶点MTE/TE (宏瓦片化(tiling)引擎/瓦片化引擎)412、带有多剪刀支持的ISP(图像合成处理器)414、纹理/着色器设置模块416、像素PDS/USSE (可编程数据定序器/通用可扩展着色器引擎)418、像素协处理器420、类似物和/或其组合。在一些示例中,增强PowerVR型3D引擎402可以包括出于清晰起见在图4中没有示出的附加项。
[0054]在操作中,增强PowerVR型3D引擎402可以接收顶点数据404并把图像数据渲染到渲染缓冲器112。例如,增强PowerVR型3D引擎402可以执行包括顶点流水线的3D渲染流水线以处理顶点数据404(例如,诸如矢量点数据等的几何形状数据),以便向要显示的2D平面创建场景中的3D数据点。
[0055]更具体地,顶点PDS/USSE410可以执行顶点变换和/或照明。例如,顶点I3DS/USSE410的PDS部分可以控制增强PowerVR型3D引擎402中的硬件逻辑。例如,顶点I3DS/USSE410的PDS部分可以取出顶点数据404并设置顶点/像素着色器程序。另外或替代地,顶点TOS/USSE410的USSE可以指示硬件执行单元运行这样的顶点/像素着色器程序。
[0056]进一步,顶点MTE/TE412可以履行剪贴/视口(viewport)函数并输出显示器列表(例如,顶点处理的基于瓦片(tile)的输出缓冲器,其可以用作像素处理的输入数据)。例如,顶点MTE/TE412的MTE部分可以执行一系列操作,包括视口变换、屏幕投影、剪贴和/或背面剔除。另外或替代地,顶点MTE/TE412的TE部分可以瓦片化所得到的数据以便在存储器中创建显不器列表。
[0057]在顶点MTE/TE412完成工作之后,可以完成在3D顶点阶段内的操作。可以把生成结果显示器列表430 (其可以包含2D计算数据)发送给像素TOS/USSE418,用于可以在诸如纹理化和片段着色等3D像素阶段发生的进一步处理。例如,ISP414可以执行像素处理流水线的第一阶段,其执行隐藏表面移除。在一些实现中,增强PowerVR型3D引擎402可以支持多个剪刀(例如,八个剪刀、十六个剪刀等等);每一剪刀可以与一个平面相关联且可以独立地启用和禁用。在这样的示例中,仅与活跃剪刀相关联的像素数据可在此阶段中通过。
[0058]进一步,纹理/着色器设置模块416可以为每一可视像素产生颜色和纹理坐标系,并准备着色器以便修改像素。接下来,像素TOS/USSE418可以执行像素处理。最后,像素协处理器420可以执行像素混合/格式化并把图像数据输出给渲染缓冲器112。
[0059]图5阐释根据本公开内容的示例系统500。在各种实现中,系统500可以是媒体系统,但系统500不限于这种上下文。例如,系统500可以被合并到个人计算机(PC)、膝上型计算机、超膝上型计算机(ultra-laptop computer)、平板、触控板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝式电话、组合蜂窝式电话/PDA、电视、智能设备(例如、智能电话、智能平板或智能电视)、移动因特网设备(MID)、消息接发设备、数据通信设备等等。
[0060]在各种实现中,系统500包括耦合到显示器520的平台502。平台502可以接收来自诸如内容服务设备530或内容传输设备540或其他类似内容源等的内容设备的内容。包括一个或多个导航部件的导航控制器550可以被用来与例如平台502和/或显示器520交互。下面更详细地描述这些组件中的每一种。
[0061]在各种实现中,平台502可以包括芯片组505、处理器510、存储器512、存储514、图形子系统515、应用516和/或无线电518的任何组合。芯片组505可以提供在处理器510、存储器512、存储514、图形子系统515、应用516和/或无线电518当中的相互通信。例如,芯片组505可以包括能够提供与存储514的相互通信的存储适配器(未描绘)。
[0062]处理器510可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器;兼容x86指令集的处理器、多多核或任何其他微处理器或中央处理单元(CPU)。在各种实现中,处理器510可以是(多个)双核处理器、(多个)双多核移动处理器等等。
[0063]存储器512可以被实现为易失性存储器设备,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM (SRAM)。
[0064]存储514可以被实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动、内部存储设备、附加存储设备、闪速存储器、电池供电的SDRAM (同步DRAM)和/或网络可访问存储设备。在各种实现中,例如在包括多个硬盘驱动器时,存储514可以包括增加对有价值的数字媒体的存储性能增强的保护的技术。
[0065]图形子系统515可以执行例如用于显示静态或视频的图像的处理。例如,图形子系统515可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟接口或数字接口可以被用来通信上耦合图形子系统515和显示器520。例如,该接口可以是高清多媒体接口、DisplayPort (显示端口)、无线HDMI和/或兼容无线HD的技术中的任何。图形子系统515可以被集成到处理器510或芯片组505中。在一些实现中,图形子系统515可以是通信上耦合到芯片组505的独立板卡。
[0066]可以在各种硬件体系结构中实现在此描述的图形和/或视频处理技术。例如,图形和/或视频功能性可以被集成在芯片组内。替代地,可以使用分离的图形和/或视频处理器。作为再一种实现,可以由包括多多核处理器的通用处理器提供图形和/或视频功能。在进一步的实施例中,可以在消费性电子设备中实现各功能。
[0067]无线电518可以包括能够使用各种合适的无线通信技术传送和接收信号的一个或多个无线电。这样的技术可以涉及跨越一个或多个无线网络通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝式网络和卫星网络。在跨越这样的网络通信时,无线电518可以根据任何版本的一种或多种适用标准操作。
[0068]在各种实现中,显示器520可以包括任何电视型监视器或显示器。显示器520可以包括例如计算机显示器屏幕、触摸屏幕显示器、视频监视器、类似电视的设备和/或电视。显示器520可以是数字显示器和/或模拟显示器。在各种实现中,显示器520可以是全息显示器。而且,显示器520可以是可以接收可视投影的透明表面。这样的投影可以表达各种形式的信息、图像和/或对象。例如,这样的投影可以是移动增强现实(MAR)应用的可视覆盖。在个或多个软件应用516的控制下,平台502可以在显示器520上显示用户界面522。
[0069]在各种实现中,(多个)内容服务设备530可以由任何国家、国际和/或独立的服务主控,且因而可由平台502例如经由因特网访问。(多个)内容服务设备530可以耦合到平台502和/或显示器520。平台502和/或(多个)内容服务设备530可以耦合到网络560,以便向网络560或从其传输(例如,发送和/或接收)媒体信息。(多个)内容传输设备540也可以耦合到平台502和/或显示器520。
[0070]在各种实现中,(多个)内容服务设备530可以包括有线电视盒、个人计算机、网络、电话、启用因特网的设备或能够传输数字信息和/或内容的电器,以及能够经由网络560或直接地在内容提供商和平台502和/显示器520之间单向地或双向地传输内容的任何其他类似设备。应明白,经由网络560,可以单向地或双向地向系统500中的组件中的任何一个和内容提供商或者从其传输内容。内容的示例可以包括任何媒体信息,包括例如视频、首乐、医疗和游戏?目息等等。
[0071](多个)内容服务设备530可以接收包括媒体信息、数字信息和/或其他内容的、诸如有线电视节目等的内容。内容提供商的示例可以包括任何有线或卫星电视或无线电或因特网内容提供商。所提供的示例不预期以任何方式限制根据本公开内容的实现。
[0072]在各种实现中,平台502可以接收来自具有一个或多个导航部件的导航控制器550的控制信号。例如,控 制器550的导航部件可以被用来与用户界面522交互。在各实施例中,导航控制器550可以是指点设备,指点设备可以是允许用户向计算机输入空间(例如,持续和多维的)数据的计算机硬件组件(具体地,人机界面设备)。诸如图形用户界面(GUI)和电视以及监视器等的多种系统允许用户使用物理手势来控制计算机或电视并向其提供数据。
[0073]通过在显示器上显示的指针、光标、聚焦环或其他可视指示符的移动,可以在显示器(例如,显示器520)上复制控制器550的导航部件的移动。例如,在软件应用516的控制下,位于导航控制器550上的导航部件可以被映射到例如在用户界面522上显示的虚拟导航部件。在各实施例中,控制器550可以不是分离的组件,而是可以被集成到平台502和/或显示器520。然而,本公开内容不限于在此示出或描述的元素或上下文。
[0074]在各种实现中,驱动器(未示出)可以包括允许用户借助于在初始引导之后触摸按钮(例如在启用时)立即开启和关闭平台502例如电视的技术。程序逻辑可以允许平台502即使在“关闭”平台时也把内容传输给介质适配器或(多个)其他内容服务设备530或(多个)内容传输设备540。另外,芯片组505可以包括例如对(5.1)环绕声音频和/或高清晰度(7.1)环绕声音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在各实施例中,图形驱动器可以包括高速外围组件互连(PCI)图形卡。
[0075]在各种实现中,可以集成系统500中所示出的组件中的任何一个或多个。例如,可以集成平台502和(多个)内容服务设备530,或者可以集成平台502和(多个)内容传输设备540,或者例如可以集成平台502、(多个)内容服务设备530和(多个)内容传输设备540。在各种实施例中,平台502和显示器520可以是集成的单元。可以集成显示器520和(各)内容服务设备530,或者例如可以集成显示器520和(多个)内容传输设备540。这些示例不意味着限制本公开内容。
[0076]在各种实施例中,系统500可以被实现为无线系统、有线系统或两者的组合。在被实现为无线系统时,系统500可以包括适于在无线共享介质上通信的组件和接口,例如一个或多个天线、发射机、接收机、收发器、放大器、滤波器、控制逻辑等等。无线共享介质的示例可以包括无线频谱的各部分,例如RF谱等等。在实现为有线系统时,系统500可以包括适于在有线通信介质上通信的组件和接口,例如输入/输出(I/O)适配器、把I/O适配器与相应的有线通信介质连接起来的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换织物、半导体材料、双绞线、同轴电缆、光纤等等。
[0077]平台502可以建立一个或多个逻辑或物理信道以便传输信息。信息可以包括媒体信息和控制信息。媒体信息可以是指表示预期送给用户的内容的任何数据。内容示例可以包括,例如,来自语音会话、视频会议、流媒体视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等的数据。来自语音会话的数据可以是例如语音信息、静音期、舒适的背景噪声、乐音等等。控制信息可以是指表示预期送给自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以被用来通过系统路由媒体信息,或者指示节点以预先确定的方式处理媒体信息。然而,各实施例不限于图5中示出或描述的元素或上下文。
[0078]如上所述,可以在不同物理样式或形状因子中实现系统500。图6阐释其中可以实现系统500的小形状因子设备600的实现。在各实施例中,例如,设备600可以被实现为具有无线能力的移动计算设备。移动计算设备可以是指具有处理系统和诸如例如一个或多个电池等的移动电源或电力供应的任何设备。
[0079]如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触控板、便携式计算机、手持式计算机、掌上计算机、个人数字助理(PDA)、蜂窝式电话、组合蜂窝式电话/PDA、电视、智能设备(例如,智能电话、智能平板或智能电视)、移动因特网设备(MID)、通讯设备、数据通信设备等等。
[0080]移动计算设备的示例也可以包括被配置为由个人穿戴的计算机例如腕式计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋式计算机、服装计算机和其他可穿戴计算机。在各种实施例中,例如,移动计算设备可以被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以作为示例借助于被实现为智能电话的移动计算设备来描述一些实施例,但应明白,也可以使用其他无线移动计算设备来实现其他实施例。各实施例不限于这一上下文。
[0081]如图6中所不出,设备600可以包括外壳602、显不器604、输入/输出(I/O)设备606和天线608。设备600也可以包括导航部件612。显示器604可以包括用于显示适用于移动计算设备的信息的任何合适的显示单元。I/O设备606可以包括用于把信息输入到移动计算设备的任何合适的I/O设备。I/O设备606的示例可以包括字母数字键盘、数字键区、触控板、输入键、按钮、开关、翘板开关、话筒、扬声器、语音识别设备和软件等等。
[0082]也可以通过话筒(未示出)把信息输入到设备600中。这样的信息可以由语音识别设备(未示出)数字化。各实施例不限于这一上下文。[0083]可以使用硬件元件、软件元件或两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码片段、计算机代码片段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件实现实施例可以根据任何数量的因素改变,这些因素例如所期望的计算速度、功率级、热容差、处理循环预算、输入数据率、输出数据率、存储器资源、数据总线速度和其他设计或性能约束。
[0084]至少一种实施例一个或多个的各方面可以由被存储在机器可读介质上的表示性指令实现,表示性指令表示在处理器内各种逻辑,在由机器读取时,这些逻辑引起机器构造执行在此描述的技术的逻辑。被称为“IP核”的这样的表示可以被存储在有形的机器可读介质上,且被提供给各种消费者或制造设施,以便加载到实际上制造逻辑或处理器的制造机器。
[0085]尽管已经参考各种实现描述了在此陈述的特定特征,但不预期以限制性意义来解释本描述。因此,在此描述的实现以及本公开内容所属于的领域中的技术人员将明显看出的其他实现的各种修改被视为落在本公开内容的精神和范围内。
【权利要求】
1.一种计算机实现的方法,包括: 经由图形处理单元从窗口管理器接收可视矩形数据,其中所述可视矩形数据指示正在显示的三维(3D)应用的各部分; 经由所述图形处理单元,至少部分地基于所述可视矩形数据确定两个或更多个剪刀平面; 经由所述图形处理单元,至少部分地基于所确定的两个或更多个剪刀平面设置两个或更多个剪刀平面寄存器;以及 经由所述图形处理单元,把图像数据渲染到渲染缓冲器,其中图像数据的所述渲染至少部分地基于所述两个或更多个剪刀平面寄存器。
2.如权利要求1所述的方法,其特征在于,所述把图像数据渲染到所述渲染缓冲器包括仅渲染对应于所述两个或更多个剪刀平面的图像数据。
3.如权利要求1所述的方法,其特征在于,所述两个或更多个剪刀平面寄存器包括八个或更多个平面寄存器。
4.如权利要求1所述的方法,其特征在于,所述两个或更多个剪刀平面寄存器包括十六个或更多个平面寄存器。
5.如权利要求1所述的方法,其特征在于,进一步包括: 经由所述图形处理单元,接收来自所述3D应用的渲染请求;以及 经由所述图形处理单元,从所述窗口管理器请求所述可视矩形数据。
6.如权利要求1所述的方法,其特征在于,进一步包括: 经由所述图形处理单元,从所述窗口管理器接收当前可视矩形数据;以及经由所述图形处理单元,确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变。
7.如权利要求1所述的方法,其特征在于,进一步包括: 经由所述图形处理单元,从所述窗口管理器接收当前可视矩形数据; 经由所述图形处理单元,确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变;以及 响应于相比于所述可视矩形数据所述当前可视矩形数据未被改变的确定,经由所述图形处理单元,把所述图像数据从所述渲染缓冲器传递到帧缓冲器。
8.如权利要求1所述的方法,其特征在于,进一步包括: 经由所述图形处理单元,从所述窗口管理器接收当前可视矩形数据; 经由所述图形处理单元,确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变;以及 响应于相比于所述可视矩形数据所述当前可视矩形数据已被改变的确定,重复对所述两个或更多个剪刀平面的确定、设置所述两个或更多个剪刀平面寄存器、把图像数据渲染到所述渲染缓冲器。
9.如权利要求1所述的方法,其特征在于,进一步包括: 经由所述图形处理单元,接收来自所述3D应用的渲染请求; 经由所述图形处理单元,从所述窗口管理器请求所述可视矩形数据; 经由所述图形处理单元,在把图像数据渲染到所述渲染缓冲器之后从所述窗口管理器请求当前可视矩形数据; 经由所述图形处理单元,从响应于所述对当前可视矩形数据的请求的所述窗口管理器接收所述当前可视矩形数据; 经由所述图形处理单元,确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变; 响应于相比于所述可视矩形数据所述当前可视矩形数据未被改变的确定,经由所述图形处理单元,把所述图像数据从所述渲染缓冲器传递到帧缓冲器;以及 响应于相比于所述可视矩形数据所述当前可视矩形数据已被改变的确定,重复对所述两个或更多个剪刀平面的确定、设置所述两个或更多个剪刀平面寄存器、把图像数据渲染到所述渲染缓冲器; 其中把图像数据渲染到所述渲染缓冲器包括仅渲染对应于所述两个或更多个剪刀平面的图像数据, 其中,两个或更多个剪刀平面寄存器包括十六个或更多个平面寄存器。
10.一种制品,其包括其中存储有指令的计算机程序产品,如果所述指令被执行则引起: 经由图形处理单元,从窗口管理器接收可视矩形数据,其中所述可视矩形数据指示正在显示的三维(3D)应用的 各部分; 经由所述图形处理单元,至少部分地基于所述可视矩形数据确定两个或更多个剪刀平面; 经由所述图形处理单元,至少部分地基于所确定的两个或更多个剪刀平面设置两个或更多个剪刀平面寄存器;以及 经由所述图形处理单元,把图像数据渲染到渲染缓冲器,其中渲染图像数据至少部分地基于所述两个或更多个剪刀平面寄存器。
11.如权利要求10所述的制品,其特征在于,把图像数据渲染到所述渲染缓冲器包括仅渲染对应于所述两个或更多个剪刀平面的图像数据。
12.如权利要求10所述的制品,其特征在于,如果所述指令被执行还引起: 经由所述图形处理单元,接收来自所述3D应用的渲染请求;以及 经由所述图形处理单元,从所述窗口管理器请求所述可视矩形数据。
13.如权利要求10所述的制品,其特征在于,如果所述指令被执行还引起: 经由所述图形处理单元,从所述窗口管理器接收当前可视矩形数据;以及 经由所述图形处理单元,确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变。
14.如权利要求10所述的制品,其特征在于,如果所述指令被执行还引起: 经由所述图形处理单元,从所述窗口管理器接收当前可视矩形数据; 经由所述图形处理单元,确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变; 响应于相比于所述可视矩形数据所述当前可视矩形数据未被改变的确定,经由所述图形处理单元,把所述图像数据从所述渲染缓冲器传递到帧缓冲器;以及 响应于相比于所述可视矩形数据所述当前可视矩形数据已被改变的确定,重复对所述两个或更多个剪刀平面的确定、设置所述两个或更多个剪刀平面寄存器、把图像数据渲染到所述渲染缓冲器。
15.一种装置,包括: 图形处理单元,其包括两个或更多个剪刀平面寄存器,其中所述图形处理单元被配置为: 从窗口管理器接收可视矩形数据,其中所述可视矩形数据指示正在显示的三维(3D)应用的各部分; 至少部分地基于所述可视矩形数据确定两个或更多个剪刀平面; 至少部分地基于所确定的两个或更多个剪刀平面设置所述两个或更多个剪刀平面寄存器;以及 把图像数据渲染到渲染缓冲器,其中图像数据的所述渲染至少部分地基于所述两个或更多个剪刀平面寄存器。
16.如权利要求15所述的装置,其特征在于,把图像数据渲染到所述渲染缓冲器包括仅渲染对应于所述两个或更多个剪刀平面的图像数据。
17.如权利要求15所述的装置,其特征在于,所述两个或更多个剪刀平面寄存器包括八个或更多个平面寄存器。
18.如权利要求15所述的装置,其特征在于,所述两个或更多个剪刀平面寄存器包括十六个或更多个平面寄存器。
19.如权利要求15所述的装置,其特征在于,所述图形处理单元还被配置为: 接收来自所述3D应用的渲染请求;以及 从所述窗口管理器请求所述可视矩形数据。
20.如权利要求15所述的装置,其特征在于,所述图形处理单元还被配置为: 从所述窗口管理器接收当前可视矩形数据;以及 确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变。
21.如权利要求15所述的装置,其特征在于,所述图形处理单元还被配置为: 从所述窗口管理器接收当前可视矩形数据; 确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变;以及响应于相比于所述可视矩形数据所述当前可视矩形数据未被改变的确定,把所述图像数据从所述渲染缓冲器传递到帧缓冲器;以及 响应于相比于所述可视矩形数据所述当前可视矩形数据已被改变的确定,重复对所述两个或更多个剪刀平面的确定、设置所述两个或更多个剪刀平面寄存器、把图像数据渲染到所述渲染缓冲器。
22.—种系统,包括: 渲染缓冲器; 窗口管理器模块;以及 图形处理单元,其包括两个或更多个剪刀平面寄存器,其中所述图形处理单元通信地耦合到所述渲染缓冲器和所述窗口管理器模块,且其中所述图形处理单元被配置为: 从所述窗口管理器接收可视矩形数据,其中所述可视矩形数据指示正在显示的三维(3D)应用的各部分;至少部分地基于所述可视矩形数据确定两个或更多个剪刀平面; 至少部分地基于所确定的两个或更多个剪刀平面设置所述两个或更多个剪刀平面寄存器;以及 把图像数据渲染到所述渲染缓冲器,其中图像数据的所述渲染至少部分地基于所述两个或更多个剪刀平面寄存器。
23.如权利要求22所述的所述系统,其特征在于,所述把图像数据渲染到所述渲染缓冲器包括仅渲染对应于所述两个或更多个剪刀平面的图像数据。
24.如权利要求22所述的所述系统,其特征在于,所述两个或更多个剪刀平面寄存器包括八个或更多个平面寄存器。
25.如权利要求22所述的所述系统,其特征在于,所述两个或更多个剪刀平面寄存器包括十六个或更多个平面寄存器。
26.如权利要求22所述的所述系统,其特征在于,所述图形处理单元还被配置为: 接收来自所述3 D应用的渲染请求;以及 从所述窗口管理器请求所述可视矩形数据。
27.如权利要求22所述的所述系统,其特征在于,所述图形处理单元还被配置为: 从所述窗口管理器接收当前可视矩形数据;以及 确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变。
28.如权利要求22所述的所述系统,其特征在于,所述图形处理单元还被配置为: 从所述窗口管理器接收当前可视矩形数据; 确定相比于所述可视矩形数据所述当前可视矩形数据是否已被改变;以及 响应于相比于所述可视矩形数据所述当前可视矩形数据未被改变的确定,把所述图像数据从所述渲染缓冲器传递到帧缓冲器;以及 响应于相比于所述可视矩形数据所述当前可视矩形数据已被改变的确定,重复对所述两个或更多个剪刀平面的确定、设置所述两个或更多个剪刀平面寄存器、把图像数据渲染到所述渲染缓冲器。
【文档编号】G06T15/00GK104011774SQ201180075917
【公开日】2014年8月27日 申请日期:2011年12月26日 优先权日:2011年12月26日
【发明者】X·J·徐, L·S·龚 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1