CN112925592A - 渲染主页面的内核软件驱动的颜色重新映射 - Google Patents
渲染主页面的内核软件驱动的颜色重新映射 Download PDFInfo
- Publication number
- CN112925592A CN112925592A CN201911233223.1A CN201911233223A CN112925592A CN 112925592 A CN112925592 A CN 112925592A CN 201911233223 A CN201911233223 A CN 201911233223A CN 112925592 A CN112925592 A CN 112925592A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- mode driver
- processor
- executing
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000009877 rendering Methods 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims description 27
- 239000000872 buffer Substances 0.000 claims description 24
- 239000002131 composite material Substances 0.000 claims description 10
- 230000007547 defect Effects 0.000 abstract 1
- 238000012805 post-processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 7
- 239000004744 fabric Substances 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
- G09G3/34—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
- G09G3/36—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/10—Intensity circuits
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/399—Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
- G09G2320/0252—Improving the response speed
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/10—Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/14—Solving problems related to the presentation of information to be displayed
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/16—Determination of a pixel data signal depending on the signal applied in the previous frame
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer Graphics (AREA)
- Data Mining & Analysis (AREA)
- Crystallography & Structural Chemistry (AREA)
- Chemical & Material Sciences (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
本发明涉及计算机领域,公开了渲染主页面的内核软件驱动的颜色重新映射,以及用于实现内核软件驱动的渲染主页面的颜色重新映射的系统、装置和方法。系统至少包括通用处理器、图形处理器和内存。通用处理器执行用户模式应用程序、用户模式驱动程序和内核模式驱动程序。代表用户模式应用程序在图形处理器上渲染主页面。主页面存储在由用户模式驱动程序分配给主页面的内存位置中,并且在准备好显示主页面时通知内核模式驱动程序。内核模式驱动程序不显示主页面,而是使用选择的查找表(LUT)将主页面的像素重新映射到图形处理器上,以便生成重新映射的页面,该页面存储在为重新映射的页面分配的内存位置中。其克服了现有技术的缺陷,具有实用性。
Description
技术领域
本发明总体上涉及计算机领域,具体涉及渲染主页面(primary surfaces)的内核软件驱动的颜色重新映射。
背景技术
当显示随时间变化的视频或其他内容时,某些显示会生成视觉伪像,从而可能损害用户的观看体验。这些视觉伪像可能是由于显示器上的像素的响应时间缓慢和/或变化而更改颜色或亮度所致。例如,在一种情况下,像素通常由子像素组成,对于具有8位像素深度的视频,子像素可以采用0到255的值。子像素是指图像或帧的单个像素的不同像素通道(例如,红色、绿色、蓝色、亮度、色度)。注意,为了便于讨论,术语“像素”在本文中可以用来指代子像素。
改变内容导致像素水平针对单个像素从一帧到下一帧变化。虽然视频帧的单个像素应该从第一值转变为第二值,但显示器上的实际像素可能无法足够快地实现此转变以匹配视频帧速率(例如每秒60帧)。通常,不同颜色的亮度变化可能会在不同的时间范围内发生,从而在显示新帧时导致视觉伪像或运动模糊。另外,在对显示器的分开的左眼和右眼部分执行立体渲染的情况下,在左眼和右眼部分合并的地方会发生模糊。
为了减轻这些负面视觉效果,可以使用称为像素过载的特征。例如,可能期望渲染帧的给定像素从0转变为127,但是显示器上的相应物理像素太慢而无法及时实现这种转变以用于下一帧。为了补偿此缓慢的响应时间,实际上可以使用对应于较高值(例如160)的电压来短暂地驱动物理像素,以加速转变到127的目标水平。理想情况下,物理像素在帧周期结束时不会达到对应于160的颜色(其对应于不同类型的视觉伪像),但是物理像素可能比其他情况更接近于对应于所需的127的颜色。在该示例中的特定像素值仅是像素过驱动的构思的说明,而无意于限制可以应用像素过驱动或其他后处理步骤的情形。
一种实现像素过驱动功能的方法是使用额外的硬件组件,该组件可对将要显示的像素值进行修改。但是,使用额外的硬件组件是一种昂贵的解决方案
发明内容
在一个方面,本发明提供了一种系统,其可包括:内存子系统;和与所述内存子系统耦合的第一处理器。所述第一处理器可以被配置为:检测正在开始对第一尺寸的页面进行渲染的指示;响应于检测到所述指示,分配在所述内存子系统中的内存的量以用于存储所述第一尺寸的至少两个页面;使第一页面被渲染并存储在所分配的所述内存的第一部分中;利用选择的查找表(LUT)重新映射所述第一页面以生成第二页面,该第二页面存储在所分配的所述内存的第二部分中;以及使所述第二页面被驱动到显示器。
在一实施方案中,所述第一处理器还可以被配置为:执行用户模式驱动程序以为两个页面分配在所述内存子系统中的内存;执行第一用户应用程序以使所述第一页面被渲染并存储在所分配的所述内存的第一半中;执行内核模式驱动程序,以利用所选择的LUT重新映射所述第一页面,从而生成所述第二页面,所述第二页面存储在所分配的所述内存的第二半中;以及执行所述内核模式驱动程序以使所述第二页面被驱动到所述显示器。
在又一实施方案中,所述第一处理器还可以被配置为执行第二用户应用程序,所述第二用户应用程序向所述内核模式驱动程序提供标识所选择的所述LUT以重新映射所述第一页面的索引。
在又一实施方案中,执行所述内核模式驱动程序可以使多个着色器在第二处理器上启动,以用所选择的所述LUT重新映射所述第一页面以生成所述第二页面。
在又一实施方案中,所述第一处理器还可以被配置为响应于接收到关于所述第一页面的翻转请求,执行所述内核模式驱动程序以延迟帧缓冲器的翻转。
在又一实施方案中,所述第一处理器还可以被配置为响应于所述第二页面的生成完成而使所述帧缓冲器翻转。
在又一实施方案中,所述第一页面可以是包括多个像素的复合帧。
在另一方面,提供了一种方法,该方法可以包括:通过第一处理器检测正在开始对第一尺寸的页面进行渲染的指示;响应于检测到所述指示,分配在所述内存子系统中的内存的量以用于存储所述第一尺寸的两个页面;使第一页面被渲染并存储在所分配的所述内存的第一半中;利用选择的查找表(LUT)重新映射所述第一页面以生成第二页面,该第二页面存储在所分配的所述内存的第二半中;以及使所述第二页面被驱动到显示器。
在一实施方案中,所述方法还可以包括:通过第一处理器执行用户模式驱动程序以为两个页面分配在内存子系统中的内存;执行所述第一用户应用程序以使所述第一页面被渲染并存储在所分配的所述内存的所述第一半中;执行内核模式驱动程序,以利用所选择的LUT重新映射所述第一页面,从而生成所述第二页面,所述第二页面存储在所分配的所述内存的第二半中;以及执行所述内核模式驱动程序以使所述第二页面被驱动到所述显示器。
在又一实施方案中,所述方法还可以包括:执行第二用户应用程序,所述第二用户应用程序向所述内核模式驱动程序提供标识所选择的所述LUT以重新映射所述第一页面的索引。
在又一实施方案中,执行所述内核模式驱动程序可以使多个着色器在第二处理器上启动,以用所选择的所述LUT重新映射所述第一页面以生成所述第二页面。
在又一实施方案中,所述方法还可以包括:响应于接收到关于所述第一页面的翻转请求,执行所述内核模式驱动程序以延迟帧缓冲器的翻转。
在又一实施方案中,所述方法还可以包括:响应于所述第二页面的生成完成而使所述帧缓冲器翻转。
在又一实施方案中,所述第一页面可以是包括多个像素的复合帧。
在又一方面,提供了一种装置,该装置可以包括:第一处理器和第二处理器。所述第一处理器可以被配置为:检测正在开始对第一尺寸的页面进行渲染的指示;响应于检测到所述指示,分配在所述内存子系统中的内存的量以用于存储所述第一尺寸的两个页面。所述第二处理器可以被配置为:将所述第一页面渲染并存储在所分配的所述内存的第一半中;利用选择的查找表(LUT)重新映射所述第一页面以生成第二页面;将所述第二页面存储在所分配的所述内存的第二半中;以及将所述第二页面驱动到显示器。
在一实施方案中,所述第一处理器还可以被配置为:执行用户模式驱动程序,以响应于从第一用户应用程序接收到渲染要显示的单个页面的请求,为两个页面分配内存;执行所述第一用户应用程序以使所述第一页面被渲染;执行内核模式驱动程序,以利用所选择的LUT重新映射所述第一页面,从而生成所述第二页面。
在又一实施方案中,所述第一处理器还可以被配置为执行第二用户应用程序,所述第二用户应用程序向所述内核模式驱动程序提供标识所选择的所述LUT以重新映射所述第一页面的索引。
在又一实施方案中,所述第一处理器还可以被配置为响应于接收到关于所述第一页面的翻转请求,执行所述内核模式驱动程序以延迟帧缓冲器的翻转。
在又一实施方案中,所述第一处理器还可以被配置为响应于所述第二页面的生成完成而使所述帧缓冲器翻转。
在又一实施方案中,所述第一页面可以是包括多个像素的复合帧。
附图说明
通过结合附图参考以下描述,可以更好地理解在本文中所描述的方法和机制的优点,其中:
图1是计算系统的一种实现方式的框图。
图2是计算系统的一种实现方式的框图。
图3是计算系统的一种实现方式的框图。
图4是示出用于选择要应用于页面的LUT的方法的一种实现方式的一般流程图。
图5是示出用于在第一组页面上执行后处理动作的方法的一种实现方式的一般流程图。
图6是示出用于采用LUT来重新映射页面的方法的一种实现方式的一般流程图。
图7是示出用于为正在渲染的页面分配双倍的内存的方法的一种实现方式的一般流程图。
图8是示出用于对经渲染的页面采用后处理模式的方法的一种实现方式的一般流程图。
图9是使用LUT生成重新映射的页面以进行显示的一种实现方式的框图。
具体实施方式
在以下描述中,阐述了许多具体细节以提供对本文所呈现的方法和机制的透彻理解。然而,本领域的普通技术人员应该认识到,可以在没有这些具体细节的情况下实践各种实现方式。在一些情况下,没有详细示出公知的结构、组件、信号、计算机程序指令和技术,以避免使本文所述的方法难以理解。应该理解的是,为了说明的简单和清楚,图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可能相对于其他元件被放大。
本文公开了用于对经渲染的主页面进行内核软件驱动的颜色重新映射的各种系统、装置和方法。在一种实现方式中,系统至少包括通用处理器、图形处理器和存储器。通用处理器执行用户模式应用程序、用户模式驱动程序和内核模式驱动程序。用户模式驱动程序将代表用户模式应用程序使主页面在图形处理器上渲染。用户模式驱动程序还为主页面的副本分配内存。在完成对主页面的渲染时,将通知内核模式驱动程序:主页面已准备好显示。内核模式驱动程序不使主页面显示,而是使用选择的查找表(LUT)重新映射主页面的像素,以生成重新映射的页面。该重新映射由图形处理器执行。所选择的LUT定义了对于特定显示器和/或特定显示器的设置和操作条件的响应。重新映射的页面将写入用户模式驱动程序为主页面副本分配的内存位置。然后,将重新映射的页面驱动到显示器。
现在参考图1,示出了计算系统100的一种实现方式的框图。在一种实现方式中,计算系统100至少包括处理器105A-N、输入/输出(I/O)接口120、总线/架构链(fabric)125、内存控制器130、网络接口135、内存设备140、显示控制器150和显示器155。在其他实现方式中,计算系统100包括其他组件和/或计算系统100以不同方式布置。处理器105A-N代表系统100中包括的任何数量的处理器。总线/架构链125代表总线和/或互连架构链的任何类型和配置,其用于提供系统100的组件之间的连接。在一些情况下,总线/架构链125包括与任何数量的协议兼容的多个不同的总线或架构链组件。
在一种实现方式中,处理器105A是通用处理器,例如中央处理单元(CPU)。在一种实现方式中,处理器105N是具有高度并行架构的数据并行处理器。数据并行处理器包括图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。在一些实现方式中,处理器105A-N包括多个数据并行处理器。在一种实现方式中,处理器105N是GPU,其向显示控制器150提供多个像素以被驱动到显示器155。在该实现方式中,处理器105N重新映射主页面的像素以创建被驱动至显示器155的重新映射页面。像素的这种重新映射将在本文的其余部分中更详细地描述。
内存控制器130表示可由处理器105A-N和耦合至I/O接口120的I/O设备(未示出)访问的任何数量和类型的内存控制器。内存控制器130耦合到任何数量和类型的内存设备140。内存设备140代表任何数量和类型的内存设备。例如,内存设备140中的内存类型包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、NAND快闪存储器、NOR快闪存储器、铁电随机存取存储器(FeRAM)等。
I/O接口120代表任何数量和类型的I/O接口(例如,外围组件互连(PCI)总线、PCI-扩展(PCI-X)、PCIE(PCI Express)总线、千兆以太网(GBE)总线、通用串行总线(USB))。各种类型的外围设备(未示出)耦合到I/O接口120。这些外围设备包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、游戏杆或其他类型的游戏控制器、媒体记录设备、外部存储设备、网络接口卡等等。网络接口135用于通过网络接收和发送网络消息。
在多种实现方式中,计算系统100是计算机、膝上型计算机、移动设备、游戏控制台、服务器、流式传输设备、可穿戴设备或任何各种其他类型的计算系统或设备。注意,计算系统100的组件的数量因实现方式不同(from implementation to implementation)而变化。例如,在其他实现方式中,每种组件的数量比图1中所示的数量更多或更少。还应注意,在其他实现方式中,计算系统100包括图1中未示出的其他组件。另外,在其他实现方式中,计算系统100以与图1中所示的方式不同的其他方式构造。
现在转向图2,示出了计算系统200的一种实现方式的框图。在一种实现方式中,系统200包括GPU 205、系统内存225和本地内存230。系统200还包括为避免使图形不清晰而未示出的其他组件。GPU205至少包括命令处理器235、控制逻辑240、调度单元250、计算单元255A-N、内存控制器220、全局数据共享270、共享一级(L1)高速缓存265和二级(L2)高速缓存260。应该理解,针对GPU 205示出的组件和连接仅表示一种类型的GPU。该示例不排除使用其他类型的GPU(或其他类型的并行处理器)来实现本文提出的技术。在其他实现方式中,GPU 205包括其他组件,省略一个或多个所示组件,具有组件的多个实例(尽管图2中仅示出了一个实例),和/或以其他合适的方式组织。同样,图2所示的每个连接都表示组件之间的任何数量的连接。另外,即使这些连接未在图2中明确示出,组件之间也可以存在其他连接。
在多种实现方式中,计算系统200执行各种类型的软件应用程序和/或软件驱动程序中的任何一种。作为执行给定的软件应用程序/驱动程序的一部分,计算系统200的主机CPU(未示出)启动要在GPU 205上执行的内核。命令处理器235从主机CPU接收内核并使用调度单元250调度这些内核的波前到计算单元255A-N。在计算单元255A-N上执行的内核内的线程读取数据并将数据写入到GPU 205中的相应本地L0高速缓存257A-N、全局数据共享270、共享L1高速缓存265和L2高速缓存260。注意,每个本地L0高速缓存257A-N和/或共享L1高速缓存265可以包括用于数据和指令高速缓存的单独的结构。虽然系统200中所示的实现方式具有3级高速缓存层次结构,但是应该理解,这仅仅是可以使用的多级高速缓存层次结构的一个示例。在其他实现方式中,可以采用具有其他数量的高速缓存级别的其他类型的高速缓存层次结构。
现在参考图3,示出了计算系统300的一种实现方式的框图。在一种实现方式中,计算系统300包括处理器305、内存330、图形管线360和显示器370。系统300还可以包括任意数量的其他组件(例如,I/O架构链、电源、I/O设备、网络接口),其未显示,以免使图形不清晰。在一种实现方式中,处理器305执行多个软件组件,其被显示为应用程序310和315、用户模式驱动程序320和内核模式驱动程序325。处理器305还可以包括任意数量的其他软件组件。内存330代表用于存储查找表335A-N、一个或多个主页面340和一个或多个重新映射的页面345的任何数量的高速缓存或内存设备。内存330还可以存储其他数据和/或指令。图形管线360代表任何类型的图形硬件。例如,在一种实现方式中,图形管线360是GPU(例如,图2的GPU 205)。在其他实现方式中,图形管线360包括其他类型的处理资源(例如,FPGA、ASIC)。
在一种实现方式中,应用程序310是向用户模式驱动程序320提供查找表(LUT)335A-N的用户模式应用程序。LUT 335A-N代表用于重新映射主页面的像素以创建重新映射的页面的任何数量的LUT 335A-N。用户模式驱动程序320分配在内存330中的用于存储LUT335A-N的内存。在一种实现方式中,LUT 335A-N包括多个表,每个表被设计用于特定类型的显示。在该实现方式中,LUT 335A-N之一专用于显示器370,并且应用程序310将该特定表的索引提供给用户模式驱动程序320。在另一实现方式中,多个LUT 335A-N对应于单个显示器370,并且应用程序310向LUT提供与显示器370的特定操作条件(例如,频率、温度)匹配的索引。在一种实现方式中,每个LUT 335A-N被实现为256像素×256像素×3通道表。在此实现方式中,独立于其他通道重新映射页面的每个红色、绿色和蓝色通道。在其他实现方式中,LUT 335A-N可以具有其他数量的像素和/或其他数量的通道。
注意,在一种实现方式中,用户模式应用程序310和315以及用户模式驱动程序320相对于图形管线360处于非特权保护级别。换句话说,用户模式应用程序310和315以及用户模式驱动程序320没有用于直接访问图形管道360的处理资源的特权。为了访问图形管道360的处理资源,用户模式驱动程序320通过内核模式驱动程序325,该内核模式驱动程序325相对于图形管道360处于特权保护级别。用户模式驱动程序320只能访问已分配给用户模式应用程序315的用户空间地址空间。如本文所使用的,术语“用户模式”是指缺少系统特权的驱动程序或应用程序。同样,术语“内核模式”是指具有系统特权的驱动程序或应用程序。一般而言,“内核模式”驱动程序或应用程序比“用户模式”驱动程序或应用程序具有更大的系统资源(例如,内核地址空间、外围设备、操作系统设置、处理单元)访问。
在一种实现方式中,用户模式应用程序315是图形应用程序(例如,三维(3D)应用程序),其渲染要在显示器370上显示的帧。当新帧的渲染由应用程序315启动时,用户模式驱动程序320为帧的两组页面分配缓冲器。这两组页面被显示为一个或多个主页面340和一个或多个重新映射的页面345。在该示例中,一个或多个重新映射的页面345旨在作为一个或多个主页面340的重新映射的副本,其中一个或多个重新映射的页面345和一个或多个主页面340共享相同的尺寸(即,像素尺寸)和属性。
在一种实现方式中,一个或多个主页面340表示打算用于显示器370的最终复合页面。最终的复合页面在本文中也可以称为帧或复合帧。根据像素的数量,一个或多个主页面340的尺寸可以根据显示器370的实现方式和尺寸而变化。应用程序315实际上可以渲染多个较小的页面,这些较小的页面被组合在一起以创建一个或多个主页面340。对于立体显示器,一个或多个主页面340将包括两个页面,而对于非立体显示器,一个或多个主页面340将仅包括单个页面。
在一种实现方式中,应用程序315将渲染命令调度给用户模式驱动程序320以渲染主页面340。在该实现方式中,用户模式驱动程序320将渲染命令转变为与图形兼容的硬件特定命令。然后,内核模式驱动程序320在图形流水线360上启动着色器,以执行硬件特定命令。一旦渲染了最终的复合主页面340,就生成翻转请求以供内核模式驱动程序325将主页面340驱动至显示器370。如本文所使用的,“翻转请求”被定义通过在前缓冲区和后缓冲区之间交换指针而将后缓冲区中的像素驱动到显示器的请求。当交换指针时,先前的后缓冲区将成为新的前缓冲区,而先前的前缓冲区将成为新的后缓冲区。然而,内核模式驱动程序325不是响应于接收到翻转请求而驱动主页面340到显示器340,而是在图形管线360上启动多个着色器以利用来自LUT 335A-N的给定LUT来处理主页面340,从而生成重新映射的页面345。在一个实现方式中,使用给定的LUT处理主页面340和先前的主页面(未显示),以生成重新映射的页面345。当重新映射的页面345准备就绪时,触发翻转以导致重新映射的页面345被写入到显示器370。当翻转被触发时,被驱动到显示器370的先前的重新映射的页面(代表先前的视频帧)成为新的后缓冲器,并且经重新映射的页面345成为新的前缓冲器。
可以针对由应用程序315生成的每个视频帧重复上述过程。通过执行该过程,为显示器370重新映射经渲染的页面(即,将其原始像素值修改以生成新的像素值),而无需特别的硬件组件来执行重新映射。而是,使用图形管线360来执行重新映射。
现在转向图4,示出了用于选择要应用到页面的LUT的方法400的一种实现方式。为了讨论的目的,该实现方式中的步骤和图5-8中的那些步骤是按顺序显示的。然而,应注意,在所描述的方法的多种实现方式中,所描述的要素中的一个或多个同时执行,以与所示出的顺序不同的顺序执行,或者被完全省略。还可以根据需要执行其他附加要素。本文描述的各种系统或装置中的任何一种都被配置为实现方法400。
用户模式驱动程序分配用于存储两个分开的页面的内存空间(框405)。两个单独的页面(用户模式驱动程序为其分配内存空间)可以称为第一页面和第二页面。可替代地,这两个页面可以被称为主页面和重新映射的页面。应当理解,第一页面和第二页面可各自包括多个页面。例如,对于立体渲染,第一页面包括可以渲染为不同页面的左眼部分和右眼部分。替代地,对于非立体渲染,第一页面代表单个页面。
接下来,图形应用程序与用户模式驱动程序通信,以将渲染命令调度到图形管线,以渲染第一页面(框410)。在一种实现方式中,图形应用程序生成与硬件无关的渲染命令(hardware-agnostic rendering commands),该渲染命令由用户模式驱动程序转变为针对特定图形管线的硬件特定的渲染命令。注意,第一页面也可以被称为复合页面或帧。
一旦已经渲染了第一页面,内核模式驱动程序就接收到该第一页面的句柄以及该第一页面已经准备就绪的指示(框415)。如本文所使用的,“句柄”被定义为与可用资源(例如,缓冲器)相关联的标识符。接下来,内核模式驱动程序使给定的查找表(LUT)应用于第一页面以创建第二页面,然后将该第二页面存储在用户模式驱动程序分配的内存位置中(框420)。在一种实现方式中,内核模式驱动程序在图形管线上启动多个着色器,以基于给定的LUT重新映射第一页面。然后,第二页面被驱动到显示器(框425)。在框425之后,方法400结束。在一种实现方式中,针对视频序列的每个视频帧重复方法400。
现在参考图5,示出了用于在第一组页面上执行后处理动作的方法500的一种实现方式。内核模式驱动程序接收准备好显示第一组页面的指示(框505)。在一种实现方式中,第一组页面包括一起构成整个帧的左侧部分和右侧部分。在另一实现方式中,第一组页面实际上可以是单个页面。内核模式驱动程序在第一组页面上启动后处理动作,以创建第二组页面(框510)。在一种实现方式中,后处理动作涉及将重新映射LUT应用于第一组页面。在其他实现方式中,后处理动作会涉及其他类型的后处理步骤。
当正在进行后处理动作时(条件框515,“是”分支),内核模式驱动程序延迟显示帧缓冲器的翻转(框520)。在框520之后,方法500返回条件框515。在一种实现方式中,内核模式驱动程序通过在竖直同步(VSYNC)中断中不向OS报告当前ID的报告来延迟翻转,直到第一组页面准备好翻转为止。如果后处理动作完成(条件框515,“否”分支),则内核模式驱动程序向OS报告第二组页面准备就绪(框525)。接下来,OS使显示帧缓冲器翻转(框530)。在框530之后,方法500结束。
现在转向图6,示出了用于采用查找表(LUT)来重新映射页面的方法600的一种实现方式。用户模式驱动程序从第一用户模式应用程序接收多个重新映射LUT(框605)。在一个实现方式中,针对目标显示的不同组的操作条件来优化多个重新映射LUT中的每个重新映射LUT。用户模式驱动程序为重新映射LUT分配内存空间,并将重新映射LUT存储在内存中(方框610)。第一用户模式应用程序提供到多个重映射LUT中的索引,以标识要用于重新映射页面的特定重新映射LUT(框615)。
在渲染视频序列的每个视频帧期间,第二用户模式应用程序生成要显示的第一组页面(框620)。在一种实现方式中,第二用户模式应用程序是与第一用户模式应用程序不同的应用程序。对于每一帧,内核模式驱动程序启动多个着色器,以使用特定的重新映射LUT来重新映射第一组页面以创建第二组页面(框625)。然后,对于每一帧,第二组页面被驱动到显示器(框630)。在框630之后,方法600结束。
现在参考图7,示出了一种用于为正在渲染的页面分配双倍的内存的方法700的实现方式。处理器检测正在开始对第一尺寸的页面的渲染的指示(框705)。接下来,处理器响应于检测到指示而分配用于存储第一尺寸的两个页面的内存量(框710)。然后,处理器使第一页面被渲染并存储在所分配的内存的第一半中(框715)。接下来,处理器使第一页面利用所选择的查找表(LUT)重新映射以生成第二页面,该第二页面被存储在分配的内存的第二半中(框720)。然后,处理器使第二页面被驱动到显示器(框725)。在框725之后,方法700结束。
现在转向图8,示出了用于对渲染的页面采用后处理模式的方法800的一种实现方式。用户模式驱动程序检测由图形应用程序渲染的页面的初始化(框805)。响应于检测到正在渲染的页面的初始化,用户模式驱动程序确定是否已经为系统启用了后处理模式(条件框810)。如果后处理模式已启用(条件框810,“是”分支),则用户模式驱动程序分配的内存多于页面所需的内存(框815)。例如,在一实施方案中,分配了页面所需的内存量的两倍。在框815之后,将经渲染的页面存储在所分配的内存的第一部分(例如,第一半)中,并且将经渲染的页面的后处理版本存储在所分配的内存的不同的第二部分(例如,第二半)中(框820)。在框820之后,方法800结束。否则,如果尚未启用后处理模式(条件框810,“否”分支),则用户模式驱动程序仅分配页面所需的内存量(框825)。在框825之后,将经渲染的页面存储在所分配的内存的整体中(框830)。在框830之后,方法800结束。
现在参考图9,示出了使用LUT生成重新映射的页面以用于显示的一种实现方式的框图。在一种实现方式中,对于当前页面905的每个像素,该像素值与先前页面910的对应像素的像素值之间的差由比较器920计算。然后,对于每个像素,将由比较器920计算的差提供到LUT930。利用像素值的差执行对LUT 930的查找,并且从LUT 930的匹配条目中获取重新映射的值。该重新映射的值也可以称为提升值。然后,加法器940将此重新映射值与当前页面905的原始像素值相加,以生成重新映射的页面950的对应像素值。对当前页面905的每个通道的每个像素执行这些操作,以生成重新映射的页面950的每个通道的对应像素。注意,每个通道可以具有单独的LUT930。一旦整体生成了重新映射的页面950,就将重新映射的页面950驱动到显示器。在其他实现方式中,可以使用LUT 930执行其他操作以修改当前页面905的像素值,以便生成重新映射的页面950的像素值。
在一种实现方式中,内核模式驱动程序(例如,图3的内核模式驱动程序325)在图形处理器上启动多个着色器以执行图9所示的操作,以使用LUT 930将当前页面905转变为重新映射的页面950。在其他实现方式中,可以在当前页面905上执行其他类型的后处理操作以生成重新映射的页面950。在一个实现方式中,LUT 930基于目标显示器的操作条件选自多个LUT。在一种实现方式中,目标显示器被集成在整个计算系统内。例如,笔记本电脑包括集成显示器,并且基于该集成显示器选择LUT 930。在另一实现方式中,目标显示器在主机计算系统外部。例如,台式计算机包括外部显示器,并且可以将不同类型的外部显示器连接到台式计算机。在进一步的实现方式中,服务器渲染被发送到客户端以进行显示的页面。在此实现方式中,客户端可以使用各种类型的显示器中的任何一种。
对于具有外部显示器的实现方式,驱动程序(例如,用户模式驱动程序、内核模式驱动程序)执行发现阶段以确定上面将显示渲染的页面的目标显示器。在一种实现方式中,驱动程序向用户模式应用程序发送请求,以指示所使用的目标显示器的类型和/或目标显示器的当前操作条件。驱动程序等待接收响应,该响应包括目标显示器类型和/或当前操作条件的识别。然后,驱动程序选择一个LUT或一组LUT,它们与目标显示器的特定类型和/或当前操作条件相匹配。在某些情况下,可能没有与目标显示器的特定类型精确匹配的LUT。在这些情况下,驱动程序确定哪个LUT最接近特定类型的目标显示器,然后选择该LUT以便从当前页面905生成重新映射的页面950。在一种实现方式中,驱动程序将最接近匹配目标显示器的两个LUT组合以创建要用于所述显示器的LUT。在另一种实现方式中,驱动程序根据特定的附加显示器的特性创建一个新的LUT。
在多种实现方式中,使用软件应用程序的程序指令来实现本文描述的方法和/或机制。例如,可以设想可由通用或专用处理器执行的程序指令。在多种实现方式中,这样的程序指令由高级编程语言来表示。在其他实现方式中,程序指令从高级编程语言编译为二进制、中级或其他形式。可选地,编写描述硬件行为或设计的程序指令。这样的程序指令可以由诸如C之类的高级编程语言来表示。可选地,使用诸如Verilog之类的硬件设计语言(HDL)。在多种实现方式中,程序指令被存储在各种非暂时性计算机可读存储介质中的任一个上。存储介质在使用期间可由计算系统访问以向计算系统提供程序指令用于程序执行。一般而言,这样的计算系统包括至少一个或多个存储器以及被配置为执行程序指令的一个或多个处理器。
应该强调的是,上述实现方式仅是实现方式的非限制性示例。对于本领域技术人员而言,一旦完全理解了上述公开内容,许多变化和修改将变得显而易见。意图将以下权利要求解释为包含所有这些变化和修改方案。
Claims (20)
1.一种系统,其包括:
内存子系统;和
与所述内存子系统耦合的第一处理器,其中,所述第一处理器配置为:
检测正在开始对第一尺寸的页面进行渲染的指示;
响应于检测到所述指示,分配在所述内存子系统中的内存的量以用于存储所述第一尺寸的至少两个页面;
使第一页面被渲染并存储在所分配的所述内存的第一部分中;
利用选择的查找表(LUT)重新映射所述第一页面以生成第二页面,该第二页面存储在所分配的所述内存的第二部分中;以及
使所述第二页面被驱动到显示器。
2.根据权利要求1所述的系统,其中,所述第一处理器还被配置为:
执行用户模式驱动程序以为两个页面分配在所述内存子系统中的内存;
执行第一用户应用程序以使所述第一页面被渲染并存储在所分配的所述内存的第一半中;
执行内核模式驱动程序,以利用所选择的LUT重新映射所述第一页面,从而生成所述第二页面,所述第二页面存储在所分配的所述内存的第二半中;以及
执行所述内核模式驱动程序以使所述第二页面被驱动到所述显示器。
3.根据权利要求2所述的系统,其中,所述第一处理器还被配置为执行第二用户应用程序,所述第二用户应用程序向所述内核模式驱动程序提供标识所选择的所述LUT以重新映射所述第一页面的索引。
4.根据权利要求2所述的系统,其中执行所述内核模式驱动程序使多个着色器在第二处理器上启动,以用所选择的所述LUT重新映射所述第一页面以生成所述第二页面。
5.根据权利要求2所述的系统,其中,所述第一处理器还被配置为响应于接收到关于所述第一页面的翻转请求,执行所述内核模式驱动程序以延迟帧缓冲器的翻转。
6.根据权利要求5所述的系统,其中,所述第一处理器还被配置为响应于所述第二页面的生成完成而使所述帧缓冲器翻转。
7.根据权利要求1所述的系统,其中,所述第一页面是包括多个像素的复合帧。
8.一种方法,其包括:
通过第一处理器检测正在开始对第一尺寸的页面进行渲染的指示;
响应于检测到所述指示,分配在所述内存子系统中的内存的量以用于存储所述第一尺寸的两个页面;
使第一页面被渲染并存储在所分配的所述内存的第一半中;
利用选择的查找表(LUT)重新映射所述第一页面以生成第二页面,该第二页面存储在所分配的所述内存的第二半中;以及
使所述第二页面被驱动到显示器。
9.根据权利要求8所述的方法,其还包括:
通过第一处理器执行用户模式驱动程序以为两个页面分配在内存子系统中的内存;
执行所述第一用户应用程序以使所述第一页面被渲染并存储在所分配的所述内存的所述第一半中;
执行内核模式驱动程序,以利用所选择的LUT重新映射所述第一页面,从而生成所述第二页面,所述第二页面存储在所分配的所述内存的第二半中;以及
执行所述内核模式驱动程序以使所述第二页面被驱动到所述显示器。
10.根据权利要求9所述的方法,其还包括:执行第二用户应用程序,所述第二用户应用程序向所述内核模式驱动程序提供标识所选择的所述LUT以重新映射所述第一页面的索引。
11.根据权利要求9所述的方法,其中执行所述内核模式驱动程序使多个着色器在第二处理器上启动,以用所选择的所述LUT重新映射所述第一页面以生成所述第二页面。
12.根据权利要求9所述的方法,其还包括:响应于接收到关于所述第一页面的翻转请求,执行所述内核模式驱动程序以延迟帧缓冲器的翻转。
13.根据权利要求12所述的方法,其还包括:响应于所述第二页面的生成完成而使所述帧缓冲器翻转。
14.根据权利要求8所述的方法,其中,所述第一页面是包括多个像素的复合帧。
15.一种装置,其包括:
第一处理器,其被配置为:
检测正在开始对第一尺寸的页面进行渲染的指示;
响应于检测到所述指示,分配在所述内存子系统中的内存的量以用于存储所述第一尺寸的两个页面;以及
第二处理器,其被配置为:
将所述第一页面渲染并存储在所分配的所述内存的第一半中;
利用选择的查找表(LUT)重新映射所述第一页面以生成第二页面;
将所述第二页面存储在所分配的所述内存的第二半中;以及
将所述第二页面驱动到显示器。
16.一种装置,其包括:其中,所述第一处理器还被配置为:
执行用户模式驱动程序,以响应于从第一用户应用程序接收到渲染要显示的单个页面的请求,为两个页面分配内存;
执行所述第一用户应用程序以使所述第一页面被渲染;
执行内核模式驱动程序,以利用所选择的LUT重新映射所述第一页面,从而生成所述第二页面。
17.根据权利要求16所述的装置,其中,所述第一处理器还被配置为执行第二用户应用程序,所述第二用户应用程序向所述内核模式驱动程序提供标识所选择的所述LUT以重新映射所述第一页面的索引。
18.根据权利要求16所述的装置,其中,所述第一处理器还被配置为响应于接收到关于所述第一页面的翻转请求,执行所述内核模式驱动程序以延迟帧缓冲器的翻转。
19.根据权利要求18所述的装置,其中,所述第一处理器还被配置为响应于所述第二页面的生成完成而使所述帧缓冲器翻转。
20.根据权利要求15所述的装置,其中,所述第一页面是包括多个像素的复合帧。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911233223.1A CN112925592A (zh) | 2019-12-05 | 2019-12-05 | 渲染主页面的内核软件驱动的颜色重新映射 |
US16/712,771 US11915359B2 (en) | 2019-12-05 | 2019-12-12 | Kernel software driven color remapping of rendered primary surfaces |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911233223.1A CN112925592A (zh) | 2019-12-05 | 2019-12-05 | 渲染主页面的内核软件驱动的颜色重新映射 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112925592A true CN112925592A (zh) | 2021-06-08 |
Family
ID=76161053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911233223.1A Pending CN112925592A (zh) | 2019-12-05 | 2019-12-05 | 渲染主页面的内核软件驱动的颜色重新映射 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11915359B2 (zh) |
CN (1) | CN112925592A (zh) |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4980836A (en) | 1988-10-14 | 1990-12-25 | Compaq Computer Corporation | Apparatus for reducing computer system power consumption |
US5396635A (en) | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5617572A (en) | 1995-01-31 | 1997-04-01 | Dell Usa, L.P. | System for reducing power consumption in computers |
US5692202A (en) | 1995-12-29 | 1997-11-25 | Intel Corporation | System, apparatus, and method for managing power in a computer system |
US5801717A (en) * | 1996-04-25 | 1998-09-01 | Microsoft Corporation | Method and system in display device interface for managing surface memory |
US6334167B1 (en) | 1998-08-31 | 2001-12-25 | International Business Machines Corporation | System and method for memory self-timed refresh for reduced power consumption |
US6657634B1 (en) | 1999-02-25 | 2003-12-02 | Ati International Srl | Dynamic graphics and/or video memory power reducing circuit and method |
JP2003308246A (ja) | 2002-04-17 | 2003-10-31 | Fujitsu Ltd | メモリコントローラのクロック制御装置及び方法 |
US7028200B2 (en) | 2002-05-15 | 2006-04-11 | Broadcom Corporation | Method and apparatus for adaptive power management of memory subsystem |
US7428644B2 (en) | 2003-06-20 | 2008-09-23 | Micron Technology, Inc. | System and method for selective memory module power management |
US7586492B2 (en) * | 2004-12-20 | 2009-09-08 | Nvidia Corporation | Real-time display post-processing using programmable hardware |
US7800621B2 (en) | 2005-05-16 | 2010-09-21 | Ati Technologies Inc. | Apparatus and methods for control of a memory controller |
JP4693159B2 (ja) * | 2005-07-20 | 2011-06-01 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体及び画像生成システム |
DE102005037635B4 (de) | 2005-08-09 | 2007-07-12 | Infineon Technologies Ag | Hardwaresteuerung für den Wechsel des Betriebsmodus eines Speichers |
US7562234B2 (en) | 2005-08-25 | 2009-07-14 | Apple Inc. | Methods and apparatuses for dynamic power control |
US7496777B2 (en) | 2005-10-12 | 2009-02-24 | Sun Microsystems, Inc. | Power throttling in a memory system |
EP1785982A1 (en) | 2005-11-14 | 2007-05-16 | Texas Instruments Incorporated | Display power management |
US7899990B2 (en) | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
US7613941B2 (en) | 2005-12-29 | 2009-11-03 | Intel Corporation | Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state |
US8102398B2 (en) | 2006-03-03 | 2012-01-24 | Ati Technologies Ulc | Dynamically controlled power reduction method and circuit for a graphics processor |
US7873850B2 (en) | 2006-10-11 | 2011-01-18 | Hewlett-Packard Development Company, L.P. | System and method of controlling power consumption and associated heat generated by a computing device |
US7743267B2 (en) | 2006-11-08 | 2010-06-22 | Xerox Corporation | System and method for reducing power consumption in a device |
US7868479B2 (en) | 2007-06-27 | 2011-01-11 | Qualcomm Incorporated | Power gating for multimedia processing power management |
US8181046B2 (en) | 2008-10-29 | 2012-05-15 | Sandisk Il Ltd. | Transparent self-hibernation of non-volatile memory system |
US8054316B2 (en) * | 2008-11-14 | 2011-11-08 | Nvidia Corporation | Picture processing using a hybrid system configuration |
US8402232B2 (en) | 2009-12-23 | 2013-03-19 | Oracle America, Inc. | Memory utilization tracking |
US8656198B2 (en) | 2010-04-26 | 2014-02-18 | Advanced Micro Devices | Method and apparatus for memory power management |
US8982136B2 (en) | 2011-05-16 | 2015-03-17 | Qualcomm Incorporated | Rendering mode selection in graphics processing units |
US9110674B1 (en) | 2011-06-23 | 2015-08-18 | Marvell International Ltd. | Systems and methods for dynamic power management and performance adjustment of media playing |
KR20140088691A (ko) | 2013-01-03 | 2014-07-11 | 삼성전자주식회사 | Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US9348401B2 (en) | 2013-06-25 | 2016-05-24 | Intel Corporation | Mapping a performance request to an operating frequency in a processor |
US9378536B2 (en) | 2014-04-30 | 2016-06-28 | Qualcomm Incorporated | CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing |
KR102169692B1 (ko) | 2014-07-08 | 2020-10-26 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 |
US20160055615A1 (en) | 2014-11-11 | 2016-02-25 | Mediatek Inc. | Smart Frequency Boost For Graphics-Processing Hardware |
US10444819B2 (en) | 2015-06-19 | 2019-10-15 | Intel Corporation | Techniques to control computational resources for an electronic device |
US20180157315A1 (en) | 2016-12-01 | 2018-06-07 | Qualcomm Incorporated | System and method for proactive power and performance management of a workload in a portable computing device |
US10319065B2 (en) | 2017-04-13 | 2019-06-11 | Microsoft Technology Licensing, Llc | Intra-frame real-time frequency control |
US10373287B2 (en) | 2017-08-18 | 2019-08-06 | Apple Inc. | Fast GPU context switch |
US10877545B2 (en) | 2018-09-20 | 2020-12-29 | Arm Limited | Energy management in graphics processing units |
US11100698B2 (en) | 2019-06-28 | 2021-08-24 | Ati Technologies Ulc | Real-time GPU rendering with performance guaranteed power management |
-
2019
- 2019-12-05 CN CN201911233223.1A patent/CN112925592A/zh active Pending
- 2019-12-12 US US16/712,771 patent/US11915359B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20210174571A1 (en) | 2021-06-10 |
US11915359B2 (en) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI616846B (zh) | 利用以空間及/或時間方式改變取樣圖案之增強型消鋸齒的一種圖形子系統、電腦實施方法及電腦裝置 | |
US10311628B2 (en) | Piecewise linear irregular rasterization | |
US10269090B2 (en) | Rendering to multi-resolution hierarchies | |
US8073990B1 (en) | System and method for transferring updates from virtual frame buffers | |
CN113791667B (zh) | 通过使用欺骗时钟及细粒度频率控制实现的向后兼容性 | |
JP6530728B2 (ja) | 両眼視差映像に対するレンダリング方法及びその装置 | |
US8537166B1 (en) | System and method for rendering and displaying high-resolution images | |
US10553024B2 (en) | Tile-based rendering method and apparatus | |
US10878611B2 (en) | Techniques for pre-processing index buffers for a graphics processing pipeline | |
US7995003B1 (en) | System and method for rendering and displaying high-resolution images | |
KR101232428B1 (ko) | 디스플레이 데이터 관리 장치, 방법, 제조물 및 시스템 | |
US10607390B2 (en) | Techniques for tiling compute work with graphics work | |
US20200219430A1 (en) | Interrupt-free multiple buffering methods and systems | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
US9984651B2 (en) | Method and apparatus for displaying composition screen image by composing screen images of operating systems (OSs) | |
JP2016529593A (ja) | 立体シーンのインターリーブ方式のタイル型レンダリング | |
US8711173B2 (en) | Reproducible dither-noise injection | |
US9412194B2 (en) | Method for sub-pixel texture mapping and filtering | |
US20140292617A1 (en) | System, method, and computer program product for reducing image artifacts on multiple displays | |
US11915359B2 (en) | Kernel software driven color remapping of rendered primary surfaces | |
KR20160030426A (ko) | 서브디바이더를 포함하는 그래픽스 프로세싱 유닛과 이를 포함하는 장치 | |
US9251557B2 (en) | System, method, and computer program product for recovering from a memory underflow condition associated with generating video signals | |
US20230237616A1 (en) | Image processing system and method for generating a super-resolution image | |
WO2022047136A1 (en) | Shader core instruction to invoke depth culling | |
US11605364B2 (en) | Line-based rendering for graphics rendering systems, methods, and devices |
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 |