CN106575302B - 用于帧调步的方法和系统 - Google Patents

用于帧调步的方法和系统 Download PDF

Info

Publication number
CN106575302B
CN106575302B CN201580042084.8A CN201580042084A CN106575302B CN 106575302 B CN106575302 B CN 106575302B CN 201580042084 A CN201580042084 A CN 201580042084A CN 106575302 B CN106575302 B CN 106575302B
Authority
CN
China
Prior art keywords
frame
delay
render
gpu
time
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.)
Active
Application number
CN201580042084.8A
Other languages
English (en)
Other versions
CN106575302A (zh
Inventor
乔纳森·劳伦斯·坎贝尔
米切尔·H·辛格
沈玉萍
卓悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN106575302A publication Critical patent/CN106575302A/zh
Application granted granted Critical
Publication of CN106575302B publication Critical patent/CN106575302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/489Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control 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/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Electrotherapy Devices (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

提供一种用于在渲染过程中进行帧调步的方法和系统。所述方法包括:估算多个图形处理单元(GPU)中的每一个的帧渲染时间,基于至少所估算的帧渲染时间来确定延迟,以及将所述延迟插入所述渲染过程中以便以均匀间隔的方式渲染帧。

Description

用于帧调步的方法和系统
相关申请的交叉引用
本申请要求提交日期为2014年8月8日的美国临时申请号62/035,124的权益,所述申请以引用的方式并入,就好像是完全陈述那样。
发明领域
本发明总体涉及图形处理。
背景
图形处理通常使用一个中央处理单元(CPU)和多个图形处理单元(GPU)的组合来执行。在使用多个GPU的渲染系统中,每个GPU在其完成帧时渲染完整的帧并且呈现所述完整的帧以供显示。如果每个GPU的帧在接近另一个GPU完成渲染时完成渲染,那么所渲染的第一帧在屏幕上显示的时间将少于后续帧(它们已经完成)。如果帧被显示的时间量未均匀地间隔,那么用户可在视觉上看见并察觉到较低帧速率(这有效地造成卡顿)。这标称地称为帧卡顿或微卡顿。需要克服由多个GPU渲染的应用(诸如3D应用)的视觉的和/或察觉到的帧卡顿和/或微卡顿的方法和系统。
概述
本文描述用于帧调步的方法和系统。一般来说,帧调步添加将后续帧的显示均匀地间隔开的延迟,以及在应用程序工作负载改变时测量并调整所述延迟的测量机构。
附图简述
可以从结合附图以举例方式给出的以下描述中获得更详细的了解,在附图中:
图1是其中可实现一个或多个所公开实施方案的示例性装置的框图;
图2是根据一些实施方案的示例性图形渲染管线;
图3是双图形处理单元(GPU)中的渲染的实例;
图4是根据一些实施方案的用于帧调步的示例性高级框图;
图5是根据一些实施方案的用于帧调步的示例性流程图;
图6是根据一些实施方案的用于帧调步的另一个示例性流程图;
图7是根据一些实施方案的用于帧调步的序列图的实例;
图8是根据一些实施方案的用于双GPU架构中的帧调步的序列图的实例;
图9是根据一些实施方案的用于用一个定时器进行帧调步的序列图的实例;
图10是根据一些实施方案的用于帧调步的序列图中的动作的实例;
图11是对称架构中的卡顿的示例性图;
图12是根据一些实施方案的对称架构中的帧调步或抗卡顿的示例性图;
图13是对称架构中的卡顿的示例性图,其中
图14是对称架构中的卡顿的示例性图,其中TSDMA>TGFX
图15是缓慢从情景中的卡顿的示例性图;
图16是根据一些实施方案的缓慢从情景中的抗卡顿的示例性图;
图17是根据一些实施方案的缓慢从情景中的抗卡顿的示例性图,其中非对称交火(ACF)是1:2并且其中“1”是瓶颈;并且
图18是根据一些实施方案的缓慢从情景中的抗卡顿的示例性图,其中ACF是1:2并且其中“2”是瓶颈。
详述
本文描述用于帧调步的方法和系统。一般来说,关于渲染帧所花费的时间进行估算。这可通过测量图形处理单元(GPU)渲染帧所花费的时间来完成。若干最近帧的平均值用来消除帧到帧的工作负载差异和GPU的渲染速度差异。创建控制GPU的进度并且消除它们的呈现的心跳。在驱动器(例如,内核模式驱动器(KMD))中等待所确定的适当时间量,使得帧均匀地间隔。帧调步实质上使一个GPU中的帧翻转延后,所述一个GPU相对于另一个GPU出现得太早。
图1是其中可实现一个或多个所公开实施方案的示例性装置100的框图。装置100可包括例如计算机、游戏装置、手持式装置、机顶盒、电视、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108和一个或多个输出装置110。装置100还可任选地包括输入驱动器112和输出驱动器114。应理解的是,装置100可包括图1中未展示的另外部件。
处理器102可包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一芯片上的CPU和GPU,或一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。存储器104与处理器102可位于同一芯片上,或可与处理器102分开定位。存储器104可包括易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM或高速缓存。GPU可以是相同类型的GPU(对称交火)或不同类型的GPU(非对称交火(ACF))。例如,处理器或系统中的GPU可包括但不限于加速处理单元(APU)、离散GPU(dGPU)和/或其组合。
存储装置106可包括固定存储装置或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入装置108可包括键盘、小键盘、触摸屏、触摸板、检测器、麦克风、加速计、陀螺仪、生物识别扫描器或网络连接(例如,用于发射和/或接收无线IEEE 802信号的无线局域网卡)。输出装置110可包括显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或网络连接(例如,用于发射和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且容许处理器102接收来自输入装置108的输入。输出驱动器114与处理器102和输出装置110通信,并且容许处理器102向输出装置110发送输出。应指出的是,输入驱动器112和输出驱动器114为任选部件,并且在输入驱动器112和输出驱动器114不存在的情况下,装置100将以相同方式操作。
图2是示例性图形渲染管线200。出于说明目的并且为了提供上下文,图形渲染管线200被展示为使用基于的操作系统(O/S),但可使用任何O/S。一般来说,图形渲染管线200包括应用模块/层/实体205、O/S模块/层/实体210、驱动器模块/层/实体220和硬件230。术语模块/层/实体在本文中将统称为实体。
应用实体205除其他功能性之外处置用户输入。应用实体205包括模拟器207,所述拟器207例如更新例如相对于游戏世界的对象位置、物理等。模拟器207联接或连接(在本文中称为连接)到渲染器209,所述渲染器209通过例如Direct 3D API创建绘制调用以生成帧。渲染器209联接到Direct3D运行时间实体211,所述Direct3D运行时间实体211解析命令并且通过DDI接口调用用户模式驱动器(UMD)222。UMD 222生成GPU命令缓冲区并且将它们提交给O/S 210,并且具体地,提交给Direct3D运行时间实体211。GPU命令缓冲区然后被放置在上下文队列213中,直到O/S 210内核调度器215准备接受它们为止。GPU命令缓冲区被传递到内核模式驱动器(KMD)224,所述内核模式驱动器(KMD)224处理它们并且将它们发送到GPU 232。当帧已经完成渲染并且可被显示时,应用实体205发送呈现调用。所述呈现调用沿循与绘制调用相同的逻辑路径。
图3在视觉上展示当使用多GPU架构进行图形处理时的微卡顿问题。一般来说,多个GPU之间的工作指配或分配使用称为交替帧渲染(AFR)的过程,在所述过程中,与多个GPU中的每一个在相同帧的一部分上工作相对比,每个GPU得到其自己的帧。当每个GPU的输出被调步以使得每个GPU正在以尽可能均匀的速率递送所渲染帧时,AFR工作良好。例如,如图3中所示,在单GPU(SGPU)流300中,帧一个接一个地被渲染并呈现。在理想的双GPU流305中,当GPU 0大致完成其帧的一半时,GPU 1的输出完成。然而,实际的双GPU流310中展示实际上所发生的情况。如果GPU 1的帧在接近GPU 0完成渲染时被完成,那么所渲染的第一帧在屏幕上显示的时间将少于第二或后续帧。如果显示帧的时间量未均匀地间隔,那么用户可在视觉上看见并察觉到较低帧速率,即,微卡顿。
本文描述用于帧调步的方法和系统。
图4展示双GPU架构400的实例;图5展示高级流程图500;图6展示用于双GPU架构400的示例性流程图;并且图7展示从UMD的视角来看的双GPU架构400的帧调步流程或序列600的高级实例。这些图共同地示出如本文所述的帧调步。在不偏离本文所述的本发明的范围的情况下,系统架构可包括任何数量的CPU、GPU、处理器等。具体地,双GPU架构400包括联接到GPU 410和GPU 415的CPU 405,所述GPU 410和GPU 415进而联接到显示器420。每个GPU410和415可具有定时器412和417以用信号通知延迟的开始和完成,如本文在下面所描述。
现参考图4和图5,关于渲染帧所花费的时间进行估算(505)。这可通过测量GPU410和415渲染帧所花费的时间来完成。例如,时间戳查询可用来测量GPU渲染帧所花费的时间。若干最近帧的平均值用来消除帧到帧的工作负载差异和GPU的渲染速度差异(510)。创建控制GPU的进度并且消除它们的呈现的心跳(515),其中心跳是帧应被呈现时的脉冲或稳定的滴答声。在内核模式驱动器(KMD))中等待所确定的适当时间量,使得帧均匀地间隔(520)。例如,虚设可调度引擎在KMD中被创建。用户模式驱动器(UMD)向这个虚设引擎提交虚设命令缓冲区以请求延迟(所述延迟可以是预期帧时间的90-95%)。当所请求延迟已经过去时,KMD将命令缓冲区报告为完成(525)。在渲染过程花费的时间长于延迟的情况下,那么一旦渲染过程完成,呈现就将进行。实际上,延迟是供GPU呈现帧的最小等待时间。UMD向虚设引擎提交(MS)同步对象的信号。UMD等待在常规3D引擎上呈现这个同步对象。
现参考图6和图7,对于双GPU架构400,渲染命令被发送到GPU 0(605)。UMD(图2中展示UMD)向KMD(图2中展示KMD)中的虚设引擎提交延迟请求(610)。这在图7中的虚设引擎流程中被展示为“延迟”。如本文在下面所描述和展示,延迟有效地提供最小时间量,在所述最小时间量之后GPU可呈现。也就是说,如果渲染过程在运行延迟之前完成,那么GPU在运行延迟之后呈现。由虚设引擎向GPU 0发送信号(615)。这在图7中被展示为“S”。GPU 0等待必需的延迟时间(620)。这在图7中被展示为“W”。GPU 0在必需的延迟时间之后呈现(625)。这在图7中由“P”展示。然后针对GPU 1重复所述序列。具体地,渲染命令被发送到GPU 1(630)。UMD向KMD中的虚设引擎提交延迟请求(635)。由虚设引擎向GPU 1发送信号(640)。GPU 1等待必需的延迟时间(645)。GPU 1在必需的延迟时间结束并且渲染过程完成之后呈现(650)。也就是说,呈现不会早于延迟时段并且只有渲染过程也完成时才进行。然后针对GPU 0和GPU 1重复所述序列。
图8展示帧调步流程或序列800的另一个高级实例。渲染命令805被发送到GPU 0并且渲染命令810被发送到GPU 1。GPU 0呈现(P)815,并且还用信号通知(S)820GPU 0上的定时器(通过如图2中所展示的UMD)在GPU 1呈现之前等待(W)825一定时间量(延迟)830。在等待延迟830(如由“气泡”所展示)之后,GPU 0上的定时器向GPU 1发送等待(W)840结束并且GPU 1可呈现(P)845的信号(S)835。GPU 1然后用信号通知(S)850GPU 1上的定时器(通过如图2中所展示的UMD)在GPU 0呈现之前等待(W)855一定时间量(延迟)860。在这种情况下,延迟860与GPU 0完成渲染过程所需的时间重合。这由以下事实示出:在稍后的序列中未展示出“气泡”。有效地,一旦引入延迟以使GPU 0与GPU 1之间的渲染处理偏移以及使GPU 0与GPU 1之间的处理对齐,那么所述偏移将一直存在并且所述延迟对吞吐量或帧速率将几乎不具有影响。如果出于某种原因,GPU中的一个脱离对齐,那么偏移将校正所述对齐。
在一个实施方案中,帧调步可影响呈现装置驱动器接口(DDI)和非呈现DDI。
在本文所述的实施方案中,对帧时间的计算和管理在UMD中进行。在其他实施方案中,对帧时间的计算和管理在KMD中进行。
在一个实施方案中,可以调谐延迟的量。
在一个实施方案中,一个定时器可用来在多GPU架构中实现帧调步。这在图9中示出并且类似于图8工作,不同的是使用一个定时器。
在一个实施方案中,本文所述的帧调步可在硬件合成架构、硬件翻转架构和/或软件合成架构中利用。
参考图10,存在如本文在上面所描述的时间戳查询的示例性图解。具体地,图10展示双GPU上的动作。在每个帧中使用两个查询对象—一个在帧的起始处、指示为(Q),并且一个在帧的结尾处、指示为(Q’)。当查询对象由GPU处理时,所述查询对象上的GetData(G对应于Q并且G’对应于Q’)检索时间。Q与Q’之间的间隔是帧时间。BeginFrame()在帧的起始处被调用并且将Q插入GPU。EndFrame()在帧的结尾处被调用并且将Q’插入GPU(图10中的数字展示这种调用在示例性驱动器中发生的时间)。
在多GPU系统上,可能的是仅主GPU(GPU 0)驱动屏幕输出而其他GPU不驱动屏幕输出。在这种情景下使用软件合成,其将每个从帧复制到主GPU以供显示。软件合成与硬件合成一样遭受微卡顿。图11展示对称交火(1:1)卡顿的实例,其中对称交火是指在处理器或系统中使用相同类型的GPU。额外表面(0)在GPU 0上被创建以消除撕裂。粗重竖线是主3D引擎上的翻转,而虚线是在主SDMA引擎上。细重阴影框表示软件合成SDMA传输及其目标。其他框是3D cmdbufs—框中的数字是帧编号,字母是渲染目标。对于每个从帧,三个操作需要被序列化:GPU 1结束在其3D引擎上渲染帧;GPU 1通过其SDMA引擎将帧传输到GPU 0,并且GPU 0通过其SDMA引擎将帧呈现到屏幕上。清楚的是,0、2和4停留在屏幕上的时间远短于帧1、3和5。
在双GPU架构实例中,具有延迟的GPU 0上的定时器用来实现如图12所展示的帧调步,其中所有的呈现都具有相同长度。所述延迟可如方程1所展示来计算:
其中GfxTimeGpu0是GPU 0渲染帧所花费的时间,GfxTimeGpu1是GPU 1渲染帧所花费的时间,并且SdmaTime是SDMA引擎将帧从GPU 1传输到GPU 0所花费的时间。
在缓慢传输的实例中,假定GPU 0和GPU 1花费相同的时间来渲染帧,TGFX=GfxTimeCpu0=GfxTimeGpu1。如果那么GPU 1上的帧N+1比GPU 0上的帧N更早地完成。如图13中所展示,帧5在帧4之前完成,帧7在帧6之前完成,等等。这种布局易于受交叉GPU资源传输影响。图14展示其中传输是瓶颈并且TSDMA>TGFX的实例。尽管上述缓慢传输问题在理论上是可能的,但是所述缓慢传输实例在现实世界应用中不具有实际效果。
除了其中GPU并不以相同速率进行渲染的非对称交火(ACF)架构,图15-18类似于图11-14。图17和图18展示AFR比不均衡地处于1:2(也就是说一个GPU渲染3个帧中的2个)时的ACF。
图15展示ACF 1:1时的缓慢从问题的实例,并且图16展示解决缓慢从问题的帧调步实现方式。
在ACF 1:2架构中,是否在3D或SDMA上翻转主帧无关紧要。原因是帧5必须等待B离开屏幕。
图17展示ACF 1:2时的解决方案如何,其中“1”是瓶颈并且GfxTimeGpu1是GPU 1上的两个连续帧的和。
图18展示ACF 1:2时的解决方案如何,其中“2”是瓶颈。
一般来说,用于在渲染过程中进行帧调步的方法包括:估算多个图形处理单元(GPU)中的每一个的帧渲染时间,基于至少所估算的帧渲染时间来确定延迟,以及将所述延迟插入渲染过程中以便以均匀间隔的方式渲染帧。在一个实施方案中,延迟可基于GPU上的应用程序工作负载来动态调整。在一个实例中,所估算的帧渲染时间是对预定量的帧取得的平均值。在一个实例中,基于至少所述延迟建立心跳以控制渲染过程和帧呈现。在一个实例中,使用至少一个定时器来启动延迟。在一个实例中,使用时间戳查询来确定所估算的帧渲染时间。在一个实例中,延迟在内核模式驱动器(KMD)中实现。虚设可调度引擎在KMD中被创建以实现延迟。呈现在延迟期满或渲染过程完成中的较后者处发生。
用于在渲染过程中进行帧调步的系统包括第一处理模块,所述第一处理模块被配置来估算多个图形处理单元(GPU)中的每一个的帧渲染时间。所述第一处理模块被配置来基于至少所估算的帧渲染时间来确定延迟。第二处理模块被配置来将延迟插入渲染过程中以便以均匀间隔的方式渲染帧。在一个实施方案中,延迟可基于GPU上的应用程序工作负载来动态调整。在一个实例中,所估算的帧渲染时间是对预定量的帧取得的平均值。在一个实例中,基于至少所述延迟建立心跳以控制渲染过程和帧呈现。在一个实例中,使用至少一个定时器来启动延迟。在一个实例中,使用时间戳查询来确定所估算的帧渲染时间。在一个实例中,第二处理模块是内核模式驱动器(KMD)。虚设可调度引擎在KMD中被创建以实现延迟。呈现在延迟期满或渲染过程完成中的较后者处发生。在一个实例中,第一处理模块可以是UMD并且第二处理单元可以是KMD。
应理解,可能存在基于本文中公开内容的许多变型。尽管上文以特定组合来描述特征和元件,但是每个特征和元件可以在没有其他特征和元件的情况下单独使用,或者可以在具有或没有其他特征和元件的情况下以各种组合来使用。
所提供的方法可以在通用计算机、处理器或处理器核心中实施。通过举例,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。这类处理器可通过使用处理后的硬件描述语言(HDL)指令和包括网表的其他中间数据(这类指令能够存储在计算机可读介质上)的结果配置制造过程来制造。此类处理的结果可以是光罩作品,所述光罩作品然后在半导体制造过程中用于制造实施本发明各方面的处理器。
本文提供的方法或流程图可在并入计算机可读存储介质中以便由通用计算机或处理器执行的计算机程序、软件或固件中实现。计算机可读存储介质的实例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储装置、诸如内部硬盘和可移动磁盘的磁性介质、磁光介质,以及诸如CD-ROM盘和数字多功能盘(DVD)的光学介质。
* * *

Claims (18)

1.一种用于在渲染过程中进行帧调步的方法,所述方法包括:
估算多个图形处理单元中的每一个的帧渲染时间;
基于至少所估算的帧渲染时间来确定延迟;以及
将所述延迟插入所述渲染过程中以便以均匀间隔的时间的方式渲染帧。
2.如权利要求1所述的方法,其中所述延迟基于所述图形处理单元上的应用程序工作负载来动态调整。
3.如权利要求1所述的方法,其中所估算的帧渲染时间是对预定量的帧取得的平均值。
4.如权利要求1所述的方法,其中基于至少所述延迟建立心跳以控制所述渲染过程和帧呈现。
5.如权利要求1所述的方法,其中使用至少一个定时器来启动所述延迟。
6.如权利要求1所述的方法,其中使用时间戳查询来确定所估算的帧渲染时间。
7.如权利要求1所述的方法,其中所述延迟在内核模式驱动器中实现。
8.如权利要求7所述的方法,其中虚设可调度引擎在所述内核模式驱动器中被创建以实现所述延迟。
9.如权利要求1所述的方法,其中呈现在所述延迟期满或所述渲染过程完成中的较后者处发生。
10.一种用于在渲染过程中进行帧调步的系统,其包括:
处理器,所述处理器包括第一处理模块,所述第一处理模块被配置来估算多个图形处理单元中的每一个的帧渲染时间,并且被配置来基于至少所估算的帧渲染时间来确定延迟;以及
所述处理器包括第二处理模块,所述第二处理模块被配置来将所述延迟插入所述渲染过程中以便以均匀间隔的时间的方式渲染帧。
11.如权利要求10所述的系统,其中所述延迟基于所述图形处理单元上的应用程序工作负载来动态调整。
12.如权利要求10所述的系统,其中所估算的帧渲染时间是对预定量的帧取得的平均值。
13.如权利要求10所述的系统,其中基于至少所述延迟建立心跳以控制所述渲染过程和帧呈现。
14.如权利要求10所述的系统,其中使用至少一个定时器来启动所述延迟。
15.如权利要求10所述的系统,其中使用时间戳查询来确定所估算的帧渲染时间。
16.如权利要求10所述的系统,其中所述第二处理模块是内核模式驱动器。
17.如权利要求16所述的系统,其中虚设可调度引擎在所述内核模式驱动器中被创建以实现所述延迟。
18.如权利要求10所述的系统,其中呈现在所述延迟期满或所述渲染过程完成中的较后者处发生。
CN201580042084.8A 2014-08-08 2015-08-07 用于帧调步的方法和系统 Active CN106575302B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462035124P 2014-08-08 2014-08-08
US62/035,124 2014-08-08
PCT/US2015/044128 WO2016022874A1 (en) 2014-08-08 2015-08-07 Method and system for frame pacing

Publications (2)

Publication Number Publication Date
CN106575302A CN106575302A (zh) 2017-04-19
CN106575302B true CN106575302B (zh) 2019-08-30

Family

ID=55264602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580042084.8A Active CN106575302B (zh) 2014-08-08 2015-08-07 用于帧调步的方法和系统

Country Status (6)

Country Link
US (1) US9679345B2 (zh)
EP (1) EP3178065B1 (zh)
JP (1) JP6633614B2 (zh)
KR (1) KR102476197B1 (zh)
CN (1) CN106575302B (zh)
WO (1) WO2016022874A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102606693B1 (ko) 2016-08-23 2023-11-28 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 제어 방법
US20180329742A1 (en) * 2017-05-10 2018-11-15 Mediatek Inc. Timer-assisted frame running time estimation
CN109474768A (zh) * 2017-09-08 2019-03-15 中兴通讯股份有限公司 一种提高图像流畅度的方法及装置
CN108769785B (zh) * 2018-06-29 2020-11-03 京东方科技集团股份有限公司 视频播放方法、装置及存储介质
GB202012559D0 (en) * 2020-08-12 2020-09-23 Samsung Electronics Co Ltd Reducing latency between receiving user input and displaying resulting frame
US20220122566A1 (en) * 2020-10-16 2022-04-21 Intel Corporation Frame pacing for improved experiences in 3d applications
US11935149B2 (en) 2020-11-13 2024-03-19 Samsung Electronics Co., Ltd Electronic device and image rendering method thereof for adjusting frame rate
CN112954402B (zh) * 2021-03-11 2023-04-28 北京字节跳动网络技术有限公司 视频显示方法、设备及存储介质
CN115375530A (zh) * 2022-07-13 2022-11-22 北京松应科技有限公司 一种多gpu协同渲染方法、系统、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1384363A (zh) * 2001-02-27 2002-12-11 索尼计算机娱乐公司 信息处理系统,综合信息处理系统,计算执行负载的方法,以及计算机程序
US7545380B1 (en) * 2004-12-16 2009-06-09 Nvidia Corporation Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system
WO2012154155A1 (en) * 2011-05-06 2012-11-15 Google Inc. Apparatus and method for determining a video frame's estimated arrival time

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6919900B2 (en) * 2001-03-23 2005-07-19 Microsoft Corporation Methods and systems for preparing graphics for display on a computing device
GB2406184B (en) * 2003-09-17 2006-03-15 Advanced Risc Mach Ltd Data processing system
US7525549B1 (en) * 2004-12-16 2009-04-28 Nvidia Corporation Display balance/metering
US7364306B2 (en) * 2005-06-20 2008-04-29 Digital Display Innovations, Llc Field sequential light source modulation for a digital display system
JP4185086B2 (ja) * 2005-09-28 2008-11-19 株式会社日立国際電気 画像処理装置
JP5231886B2 (ja) 2008-07-11 2013-07-10 キヤノン株式会社 画像処理装置及びその制御方法
US8484647B2 (en) * 2009-07-24 2013-07-09 Apple Inc. Selectively adjusting CPU wait mode based on estimation of remaining work before task completion on GPU
US9524138B2 (en) * 2009-12-29 2016-12-20 Nvidia Corporation Load balancing in a system with multi-graphics processors and multi-display systems
WO2011118199A1 (ja) * 2010-03-24 2011-09-29 パナソニック株式会社 表示切替装置
WO2012154152A1 (en) 2011-05-06 2012-11-15 Google Inc. Apparatus and method for rendering video with retransmission delay
US9940904B2 (en) * 2013-10-23 2018-04-10 Intel Corporation Techniques for determining an adjustment for a visual output

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1384363A (zh) * 2001-02-27 2002-12-11 索尼计算机娱乐公司 信息处理系统,综合信息处理系统,计算执行负载的方法,以及计算机程序
US7545380B1 (en) * 2004-12-16 2009-06-09 Nvidia Corporation Sequencing of displayed images for alternate frame rendering in a multi-processor graphics system
WO2012154155A1 (en) * 2011-05-06 2012-11-15 Google Inc. Apparatus and method for determining a video frame's estimated arrival time

Also Published As

Publication number Publication date
KR102476197B1 (ko) 2022-12-09
KR20170041760A (ko) 2017-04-17
US9679345B2 (en) 2017-06-13
US20160042488A1 (en) 2016-02-11
EP3178065A4 (en) 2018-01-24
CN106575302A (zh) 2017-04-19
JP6633614B2 (ja) 2020-01-22
EP3178065A1 (en) 2017-06-14
JP2017531232A (ja) 2017-10-19
EP3178065B1 (en) 2020-04-08
WO2016022874A1 (en) 2016-02-11

Similar Documents

Publication Publication Date Title
CN106575302B (zh) 用于帧调步的方法和系统
CN110035328B (zh) 用于动态抖动和延迟容忍渲染的系统和方法
US9996386B2 (en) Mid-thread pre-emption with software assisted context switch
JP6390021B2 (ja) グラフィック処理ユニットのためのワークロードバッチサブミットメカニズム
JP7198772B2 (ja) マルチヘッドマウントディスプレイ仮想現実構成でのディスプレイペーシング
JP7494203B2 (ja) ユーザ入力デバイスの待ち時間調整
CN109474768A (zh) 一种提高图像流畅度的方法及装置
US20140168229A1 (en) Cpu-gpu parallelization
JP2018511859A (ja) スプーフクロック及び細粒度周波数制御を使用する下位互換性
US9893974B2 (en) Synchronization of data for colliding bodies
Kanter Graphics processing requirements for enabling immersive vr
US20210327020A1 (en) Method and apparatus for directing application requests for rendering
WO2021066974A1 (en) System and method for multi-tenant implementation of graphics processing unit
US7793012B2 (en) Information processing unit, system and method, and processor
US9632848B1 (en) Asynchronous submission of commands
CN115686758B (zh) 一种基于帧统计的VirtIO-GPU性能可控方法
WO2020088370A1 (zh) 一种众核系统及其数据处理方法和处理装置
WO2018107394A1 (en) I/o emulation abortion in virtualized environments
US9519487B2 (en) System-on-chip and method of operating the same
CN111111163A (zh) 管理计算资源的方法、设备和电子设备
RU2815331C2 (ru) Регулировка задержки устройств пользовательского ввода
US11922533B2 (en) Dynamically reducing latency in processing pipelines

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