JP7198202B2 - デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置 - Google Patents

デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置 Download PDF

Info

Publication number
JP7198202B2
JP7198202B2 JP2019516935A JP2019516935A JP7198202B2 JP 7198202 B2 JP7198202 B2 JP 7198202B2 JP 2019516935 A JP2019516935 A JP 2019516935A JP 2019516935 A JP2019516935 A JP 2019516935A JP 7198202 B2 JP7198202 B2 JP 7198202B2
Authority
JP
Japan
Prior art keywords
display device
buffer
refresh
timer
rendering
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
JP2019516935A
Other languages
English (en)
Other versions
JP2020502553A (ja
JP2020502553A5 (ja
Inventor
ダブリューエル. クー アンソニー
アザー フセイン サイド
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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2020502553A publication Critical patent/JP2020502553A/ja
Publication of JP2020502553A5 publication Critical patent/JP2020502553A5/ja
Application granted granted Critical
Publication of JP7198202B2 publication Critical patent/JP7198202B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/14Display of multiple viewports
    • 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
    • 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/39Control of the bit-mapped memory
    • G09G5/399Control 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/06Details of flat display driving waveforms
    • G09G2310/061Details of flat display driving waveforms for resetting or blanking
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/08Details of timing specific for flat panels, other than clock recovery
    • 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
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • 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/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
    • 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/18Use of a frame buffer in a display terminal, inclusive of the display panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Description

(関連出願の相互参照)
本願は、2016年10月31日に出願された米国特許出願第15/338,492号の利益を主張し、この内容は、本明細書に十分に記載されているかのように、言及したことによって本明細書に組み込まれる。
本発明は、概して、コンピューティングシステム及びソフトウェアに関し、より具体的には、グラフィカルコンテンツを表示するためのコンピューティングシステム及びソフトウェアに関する。
最近の殆どのコンピュータオペレーティングシステムは、フルスクリーンモード(若しくは、フルスクリーンエクスクルーシブモード)又はウィンドウモードでアプリケーションを表示する機能を含む。従来のいくつかのコンピュータモニタは、固定リフレッシュレートを有し、他のコンピュータモニタは、動的にリフレッシュすることができる。従来のコンピュータシステムでは、モニタに表示されるコンテンツは、先ず、グラフィックス処理ユニット(GPU)等のレンダリングハードウェアによってレンダリング又は生成され、次に、通常、システムメモリ又はGPUメモリ/キャッシュ内のアドレス位置である2つのバッファの一方に記憶される。従来の多くのシステムは、いわゆるダブルバッファリングスキームで2つのバッファを使用している。通常フロントバッファと呼ばれる1つのバッファは、現在モニタに表示されているレンダリングされたコンテンツを保持する。通常バックバッファと呼ばれる他のバッファは、次の適切な時間に表示されるのを待機しているレンダリングされたコンテンツを保持する。オペレーティングシステムがバックバッファのコンテンツを表示すべきと判断すると、フリップが実行され、表示がバックバッファのコンテンツに切り替わる。
ウィンドウモードでは、レンダリングプロセスは、開かれている各アプリケーションのコンテンツを、デスクトップ、タスクバー、及び、メニューの非占有部分と共にレンダリングし、その後、これらの個々のグラフィック部分を合成面に合成し、次いで、ディスプレイ上にフレームを次々と表示する。この後者のプロセスは、デスクトップコンポジション(合成)として知られており、通常デスクトップコンポジタと呼ばれるオペレーティングシステムのプロセスによって実行される。デスクトップコンポジタは、通常、モニタのリフレッシュレートに関連する固定間隔で起動し、複数のアプリケーションウィンドウを、スキャンされてモニタに表示される単一の画面に合成するシステムプロセスである。
従来のオペレーティングシステムは、異なるコンテンツを有する2つのレンダリングされたフレームの部分がディスプレイに表示される「ティアリング」として知られる現象を回避するために、垂直同期又はVSYNCと呼ばれるプロセスをよく使用する。VSYNCが有効な場合、各バッファフリップは、各リフレッシュ後にのみ発生することができる。これにより、フレームのレンダリングレートは、モニタのリフレッシュレートで実質的に制限される。また、VSYNCは、デスクトップコンポジタが起動するときの固定間隔も設定する。
フルスクリーンエクスクルーシブモードで実行中の現在のアプリケーションは、アプリケーションがレンダリングを完了してから動的リフレッシュレートテクノロジを使用してモニタにコンテンツが表示されるまでのレイテンシが非常に短い(1ミリ秒未満)。これは、アプリケーションがバックバッファへのフリップを直接制御し、レンダリングが完了すると直ちにフリップを開始するためである。ただし、デスクトップコンポジションの余分なステップを有するウィンドウアプリケーションの場合、レイテンシが非常に長く、通常の60Hzディスプレイでは33.3ミリ秒にも達する可能性がある。この遅延には、レンダリングハードウェアが前後のバッファをフリップできるまでに(1)デスクトップコンポジタスレッドが起動するのを待つのに費やされた時間、及び、(2)VSYNC境界線(次の固定リフレッシュ)を待つのに費やされた時間が含まれる。これは、顕著な視覚的なスタッタリングをもたらす。このレイテンシを最小限に抑える又は少なくとも減らすことができれば、ウィンドウアプリケーションは、フルスクリーンエクスクルーシブモードアプリケーションのパフォーマンスに近いパフォーマンスを発揮し、動的リフレッシュレートモニタによって、低レイテンシでスタッタリングのないビジュアルエクスペリエンスを実現することができる。
Windows(登録商標)10では、従来のフルスクリーンエクスクルーシブモードが有する低レイテンシという利点と、迅速なタスク切り替えの利便性とを有する、エミュレートされたフルスクリーンエクスクルーシブモードが導入されている。ただし、この実装は、全てのウィンドウアプリケーションを網羅しているわけではなく、GPUが2つの全く異なるサーフェスフォーマット(デスクトップコンポジタサーフェスとアプリケーションサーフェス)をシームレスに切り替えることができるかどうかに基づく制限も受ける。
別の従来技術では、ユーザは、レイテンシを少なくするために、フルスクリーンエクスクルーシブモードでの直接実行を選択することができる。しかし、特に、異なるモニタで実行されているアプリケーションの使用をユーザが切り替える可能性があるマルチディスプレイ構成では、アプリケーション間でフォーカスが切り替わるときのタスク切り替え時間が長いという欠点がある。もう1つの欠点は、アプリケーションによってはフルスクリーンエクスクルーシブモードで実行するオプションが全く存在しないことである。さらに、デスクトップコンポジタは、音量や明るさの調整等の便利なコンテンツを画面に重ねることができない。
本発明は、上述した短所の1つ以上の影響を克服又は軽減することを目的とする。
本発明の一態様によれば、ディスプレイデバイスに表示されるビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュするように動作可能なコンピューティングデバイスを含むシステムが提供される。ビデオコンテンツは、少なくとも1つのアプリケーションウィンドウを含む。デスクトップコンポジタは、少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成するためのコマンドを起動して実行し、ビデオフレームをディスプレイデバイスに配信するためにバッファフリップを開始するように動作することができる。高解像度タイマは、ディスプレイのリフレッシュの間にデスクトップコンポジタを起動させ、複数のインスタンスのコマンドを実行させるように動作することができる。
本発明の別の態様によれば、ディスプレイデバイスに表示されるビデオコンテンツをレンダリングすることと、当該ディスプレイデバイスを周期的にリフレッシュすることと、を含む方法が提供される。ビデオコンテンツは、少なくとも1つのアプリケーションウィンドウを含む。デスクトップコンポジタは、少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成するためのコマンドを起動して実行し、ビデオフレームをディスプレイデバイスに配信するためにバッファフリップを開始するように動作する。高解像度タイマは、ディスプレイのリフレッシュの間にデスクトップコンポジタを起動させ、複数のインスタンスのコマンドを実行させるように動作する。
本発明の別の態様によれば、ディスプレイデバイスを有し、ディスプレイデバイスに表示されるビデオコンテンツであって、少なくとも1つのアプリケーションウィンドウを含むビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュするように動作可能なコンピューティングシステムを含むシステムにおける方法であって、ディスプレイデバイスに表示されるビデオコンテンツをレンダリングすることと、当該ディスプレイデバイスを周期的にリフレッシュすることと、を含む。デスクトップコンポジタは、少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成するためのコマンドを起動して実行し、ビデオフレームをディスプレイデバイスに配信するためにバッファフリップを開始するように動作する。高解像度タイマは、ディスプレイのリフレッシュの間にデスクトップコンポジタを起動させ、複数のインスタンスのコマンドを実行させるように動作する。
本発明の他の態様によれば、非一時的なコンピュータ可読記憶媒体は、方法を実行するためのコンピュータ可読命令を有する。この方法は、ディスプレイデバイスに表示されるビデオコンテンツをレンダリングすることと、当該ディスプレイデバイスを周期的にリフレッシュすることと、を含む。ビデオコンテンツは、少なくとも1つのアプリケーションウィンドウを含む。デスクトップコンポジタは、少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成するためのコマンドを起動して実行し、ビデオフレームをディスプレイデバイスに配信するためにバッファフリップを開始するように動作する。高解像度タイマは、ディスプレイのリフレッシュの間にデスクトップコンポジタを起動させ、複数のインスタンスのコマンドを実行させるように動作する。
本発明の上述した利点及び他の利点は、以下の詳細な説明を読み、図面を参照することによって明らかになるであろう。
コンピュータとディスプレイ又はモニタとを含むコンピューティングシステムの例示的な実施形態を示す図である。 例示的なコンピューティングシステムのブロック図である。 図1と同様の図であるが、ディスプレイ上の単一のウィンドウモードのアプリケーションを示す図である。 例示的な従来のビデオレンダリング及びバッファフリップ方法を示すアクティビティ図である。 図4と同様のアクティビティ図であるが、簡略化された例示的な従来のビデオレンダリング及びバッファフリップ方法を示す図である。 図5と同様のアクティビティ図であるが、新たなビデオレンダリング及びバッファフリップ方法の例示的な実施形態を示す図である。 図5と同様のアクティビティ図であるが、別の簡略化された例示的な従来のビデオレンダリング及びバッファフリップ方法を示す図である。 図7と同様のアクティビティ図であるが、新たなビデオレンダリング及びバッファフリップ方法の別の例示的な実施形態を示す図である。 図7と同様のアクティビティ図であるが、簡略化された例示的な従来のビデオレンダリング及びバッファフリップ方法のさらなる態様を示す図である。 図8と同様のアクティビティ図であるが、新たなビデオレンダリング及びバッファフリップ方法の例示的な実施形態のさらなる態様を示す図である。 フリップレイテンシを短縮してビデオコンテンツをレンダリングする例示的な方法を示すフローチャートである。 動的タイマ周波数が有効又は無効の場合の例示的なレンダリングを示すフローチャートである。
ウィンドウモードのアプリケーションにおいてビデオをレンダリングするように動作可能なコンピューティングシステムの様々な実施形態が開示される。1つのバリエーションでは、ディスプレイデバイスに表示されるビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュするように動作可能である。ビデオコンテンツは、少なくとも1つのアプリケーションウィンドウを含む。デスクトップコンポジタは、オペレーティングシステムのプロセスであってもよく、少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成するためのコマンドを起動して実行し、ビデオフレームをディスプレイデバイスに配信するためにバッファフリップを開始するように動作可能である。高解像度タイマは、ディスプレイのリフレッシュの間にデスクトップコンポジタを起動させ、複数のインスタンスのコマンドを実行させるように動作可能である。従来のシステムでは、デスクトップコンポジタが、各リフレッシュサイクルの後に一度だけ起動して実行されるので、バッファフリップに遅延が生じる。以下に、さらなる詳細を説明する。
以下に説明する図面では、同一の要素が複数の図に現れる場合、参照番号が通常繰り返して用いられる。ここで、図面、特に図1を参照する。図1には、コンピュータ15と、コンピュータ15に接続されたディスプレイ又はモニタ20と、を含むコンピューティングシステム10の例示的な実施形態の図が示されている。他の実施形態では、コンピュータ15とディスプレイ20とは、単一のケースに統合されてもよい。ディスプレイ20は、LCD、OLED、プラズ又は他の技術等の様々な技術のうち何れかであってもよい。ディスプレイ20は、以下により詳細に説明するように、有利に動的リフレッシュを行うことができる。コンピュータシステム10は、説明を簡単にするために示されていないマウス及びキーボード等の様々な入力デバイスを含むことができる。
コンピュータ15は、Windows(登録商標)、Linux(登録商標)、IO等の1つ以上のオペレーティングシステムを利用することができる。実際、本明細書に記載の技術は、多くの点でプラットフォームに依存しないことがある。この例示的な実施形態では、オペレーティングシステムソフトウェアは、デスクトップ25と、開いている2つの例示的なウィンドウアプリケーション30,35と、いくつかのアイコン45を含むいくつかのタスクバー40と、を含む表面22又はコンテンツをディスプレイ20に表示する。アプリケーション30,35の数は、勿論、3つ以上であってもよく、実際には、1から不特定数の間であってもよい。以下により詳細に説明するように、デスクトップ25と、開かれたウィンドウアプリケーション30,35との組み合わせは、動的にリフレッシュされる合成面22を構成する。
コンピューティングシステム10のさらなる詳細は、ブロック図である図2も参照することによって理解することができる。コンピューティングデバイス10は、上述したディスプレイ20と、1つ以上のプロセッサ50と、ストレージデバイス55と、媒体60と、メモリ65と、を含むことができる。プロセッサ50は、ビデオ処理専用の集積回路、マイクロプロセッサ、グラフィックス処理装置(GPU)、マイクロプロセッサとグラフィックスプロセッサ機能とを組み合わせたアクセラレーテッド処理装置(APU)、特定用途向け集積回路、又は、他のデバイスであってもよい。例示的なAPUは、圧縮、解凍、事前若しくは事後に課された処理タスク、又は、その他のための固定機能コアを含むことができる。実際には、プロセッサ50は、並列又は他の方法で動作するこのような集積回路の複数の例から構成されてもよい。ストレージデバイス55は、コンピュータ可読媒体であり、任意の種類のハードディスク、光ストレージディスク、ソリッドステートストレージデバイス、ROM、RAM、又は、コンピュータ可読媒体を記憶するための実質的に他の任意のシステムとすることができる。媒体60は、衛星チューナ、ケーブルセットトップボックス、光ディスクプレーヤ、インターネットストリーミング、リムーバブルストレージデバイス又はハードドライブによって供給される媒体を含むことができる。これらは、ビデオコンテンツをプロセッサ50、したがって図1に示すディスプレイ20に配信するために使用することの可能な媒体の種類のほんの数例を表しているに過ぎない。メモリ65は、1つ以上の個別のメモリデバイス(例えば、DRAM、SRAM、VRAM若しくはフラッシュのチップ、ボード若しくはモジュール、若しくは、オンボードキャッシュ、又は、これらの組み合わせ等)とすることができる。メモリ65は、様々なものの中でも、複数のバッファ(バッファ1、バッファ2、…、バッファm)に細分することができる。複数のバッファ(バッファ1、バッファ2、…、バッファm)は、以下により詳細に説明するように、ビデオフレームを表示するためのダブル、トリプル又は他のバッファリングに使用することができるアドレス指定可能なメモリ位置である。
また、コンピューティングデバイス10は、オペレーティングシステム80と、ビデオドライバソフトウェア85と、デスクトップコンポジタ90と、高解像度タイマ92と、を含み、複数のアプリケーション(APP 1、APP 2、…、APP nと略され、ドライバ、ソフトウェアアプリケーション又は他の種類のアプリケーションとすることができる)を含むことができる。例えば、APP 1は、開かれると、図1に示すウィンドウアプリケーション30に対応することができ、APP 2は、開かれると、図1に示すウィンドウアプリケーション35に対応することができる。オペレーティングシステム80と、ビデオドライバソフトウェア85と、高解像度タイマ92と、デスクトップコンポジタ90と、アプリケーションAPP 1、…、APP nとは、ストレージデバイス55に記憶されてもよい。上述したように、オペレーティングシステムソフトウェア80は、多種多様な異なるオペレーティングシステムのうち何れかであってもよい。同様に、ビデオドライバソフトウェア85は、様々な異なる種類のオペレーティングシステムプラットフォームに適していてもよい。
デスクトップコンポジタ90(DWMプロセスとも呼ばれる)は、図示したようにオペレーティングシステム80の一部であってよく、システムプロセスとして機能することができる。バッファ、バッファ1、バッファ2、…、バッファmのうち1つ以上(ダブルバッファリングの場合には2つ)のバッファは、レンダリングされたアプリケーションコンテンツを記憶するために、アプリケーションAPP 1、APP 2、…、APP nの各々によって割り当てられてもよい。また、バッファ、バッファ1、バッファ2、…、バッファmのうち1つ以上のバッファ(ダブルバッファリングの場合には2つ)は、合成されレンダリングされたコンテンツを記憶するために、デスクトップコンポジタ90によって割り当てられてもよい。
以下により詳細に説明するように、高解像度タイマ92は、例えば、図1に示すデスクトップ25と開かれたアプリケーション30,35とから構成されたコンポジションであるデスクトップ面22を生成する方法を、デスクトップのコンポジションの生成に必要な様々な動作と、ディスプレイ20上のデスクトップ合成面22の実際の表示との間のレイテンシを減らすという技術的目標に沿って、デスクトップコンポジタ90が変更するように設計されている。高解像度タイマ92は、ビデオドライバソフトウェア85、オペレーティングシステムソフトウェア80又はファームウェアとして、おそらくストレージデバイス55又は他の場所に実装されてもよい。高解像度タイマ92は、ファームウェアとして実装される場合、所望の機能を実施するために、ビデオドライバソフトウェア85を介して有利に動作することとなる。
デスクトップコンポジタ90を使用してビデオをレンダリングする例示的な従来の技術は、図2、図3及び図4を参照することによって理解することができる。図3は、デスクトップ25及びウィンドウアプリケーション35のみ(すなわち、デスクトップ25及びウィンドウアプリケーション35からなるデスクトップ面22)を最初に表示するコンピューティングシステム10の図である。図4は、図3に示すデスクトップ面22の表示に関連する様々なハードウェア及びソフトウェアの動作を示すタイミング図のようなアクティビティ図である。図4は、上から下の順序で、ハードウェアキューストリーム100と、デスクトップコンポジタ(DWM)プロセスストリーム105と、アプリケーション生成コンテンツストリーム110と、保留フリップストリーム115と、オンスクリーンディスプレイストリーム120と、を示している。ハードウェアキューストリーム100は、コンテンツのハードウェアレンダリングを表している。レンダリングされたコンテンツは、図3のウィンドウアプリケーション35のレンダリングされたコンテンツ、及び、図3の合成面22のレンダリングされたコンテンツ等のレンダリングされた合成コンテンツ等のアプリケーション生成コンテンツとすることができる。レンダリングは、実際にビデオフレームを書き込んでいるハードウェアによって実行される。これは、図2に示すプロセッサ50とすることができ、又は、GPUがコンピューティングシステム10に実装されている場合には個別のGPU、両者の協働又は他のデバイスとすることができる。DWMプロセスストリーム105は、図2に示され、以下にさらに詳細に説明する様々な機能を実行するオペレーティングシステムソフトウェア80内のDWMプロセス(すなわち、デスクトップコンポジタ90)の周期的な起動を示している。アプリケーション生成コンテンツストリーム110は、特定のアプリケーションによって生成された新たなコンテンツ(例えば、コンテンツ(A))を示している。これは、例えば、図3に示すウィンドウアプリケーション35のために更新されたビデオ情報であってもよく、このビデオ情報は、ディスプレイ20上でレンダリングされることになる。保留フリップストリーム115は、デスクトップコンポジタ90が2つのDWM割り当てバッファ間(例えば、バッファ1からバッファ2へ(そして、最終的にディスプレイ20への配信のために))でバッファフリップを開始するときを示しており、図示されている遅延125,130等のように、バッファ1とバッファ2との間のフリップにおいて遅延が存在する場所を示している。これらの遅延125,130は、以下により詳細に説明する。最後に、オンスクリーンストリーム120は、ディスプレイ20に現在実際に何が表示されているのかを示している。例えば、最初に、バッファ1のコンテンツがディスプレイ20に表示されており、バッファ1には、プロセッサ50又は搭載されている任意のプロセッサによってレンダリングされ配信されたデスクトップ面22が記憶されていてもよい。
さらに図4を参照すると、周期的リフレッシュライン(リフレッシュ1、リフレッシュ2、リフレッシュ3、リフレッシュ4、リフレッシュ5及びリフレッシュ6)が示されていることに留意されたい。これらは、ディスプレイ20の個々のリフレッシュを表している。従来のシステムでは、図4に示すように、リフレッシュ1及びリフレッシュ2等は、VSYNCと呼ばれる従来の垂直同期コードによって設定された特定の固定時点で発生する。VSYNCが有効になっていると、フレームレンダリングレートは、モニタのリフレッシュレートで実質的に制限される。DWMプロセスストリーム105に示すように、DWMプロセスの起動/実行インスタンスは、各リフレッシュの直後(すなわち、リフレッシュ1、リフレッシュ2等の直後)に発生する。例えば、リフレッシュ1の後に、DWMプロセス起動/実行インスタンス135が発生する。この時点で、アプリケーションは、コンテンツ(A)を生成しており、これは、図3に示すアプリケーション35の単に更新されたフレームであってもよい。オンスクリーンストリーム120によって示されているように、図3に示すデスクトップ面22であるバッファ1のコンテンツが表示されている。以下に説明する理由により、リフレッシュ1の後の保留フリップストリーム115に示すように、保留バッファフリップが存在しない。DWMプロセス起動/実行インスタンス135は、利用可能なレンダリングされたコンテンツを探し、レンダリングされたコンテンツが利用可能である場合には、利用可能なコンテンツのアドレス位置をビデオドライバ85に知らせる(これは、バッファmの場合がある)。その後、DWMプロセス起動/実行インスタンス135が閉じる。次に、ビデオドライバ85が新たなバッファアドレス(例えば、バッファm)をプロセッサ50(又は、搭載されている場合にはGPU)にプログラムし、プロセッサは、次のリフレッシュを開始する。レンダリングされたコンテンツが検出されない場合、DWMプロセス起動/実行インスタンス135は、閉じて次のリフレッシュを待つ。リフレッシュ2の後であってリフレッシュ3の前に、次のDWMプロセス起動/実行インスタンス140が発生し、この期間中にアプリケーション生成コンテンツ(A)が完了し、更新されたコンテンツ(A)は、ハードウェアキューストリーム100に示すようにレンダリングを完了する。このレンダリングされたコンテンツ(A)は、アプリケーションによって割り当てられたバッファ(例えば、バッファm)に記憶される。しかし、DWMプロセス起動/実行インスタンス140は、コンテンツ(A)のレンダリングが完了する前に既に開閉されているので、最初に遅延が生じる。遅延には、構成における遅延、ハードウェアの遅延及び保留フリップによる遅延という3つの潜在的な原因がある。これらの原因は相加的であり、以下にさらに説明する。例えば、DWMバッファ1からバッファ2へのフリップが発生するように、この時点で図2に示すデスクトップコンポジタ90を使用してDWMコンポジションを開始することができれば有利であろう。しかしながら、DWMプロセスインスタンス140が既に発生しており、次のインスタンスがリフレッシュ3まで発生しないので、合成プロセスが発生しない。したがって、オンスクリーンコンテンツは、依然としてバッファ1である。リフレッシュ3に続いて、次のDWMプロセス起動/実行インスタンス145が発生する。この時点で、レンダリングされた(A)コンテンツは、アプリケーションによって割り当てられたバッファであるバッファmにロードされており、ハードウェアキューストリーム100が示すように、レンダリングハードウェアは、全く新たなコンテンツ又は単に更新されたフレームであるアプリケーション生成コンテンツ(B)のレンダリングを開始している。しかし、ハードウェアキューストリーム100内のレンダリングA点の終わりに発生した可能性があるDWMコンポジションプロセスは、少なくともDWMプロセスの起動/実行インスタンス145が発生するリフレッシュ3まで遅延されていることに留意されたい。リフレッシュ3の直後にハードウェア遅延がなかった場合、ハードウェアキュー100に示すDWMコンポジションプロセス150が直ちに起こり得る。しかし、図4は、コンテンツ(B)のレンダリングに関連する複雑さ又は他の様々な要因によって引き起こされる可能性がある典型的な例示的なハードウェア遅延を示している。したがって、この示された例では、DWMコンポジションプロセス150は、リフレッシュ4の少し前まで完了しない。DWMプロセス起動/実行インスタンス145は、アプリケーションコンテンツ(A)の利用可能性を検出し、矢印152で表すように、ハードウェアキュー100に反映されるようにDWMコンポジションプロセス150を実行するようにレンダリングハードウェアを促す。DWMコンポジションプロセス150は、デスクトップ25と、ウィンドウアプリケーション35のコンテンツ(アプリケーションによって割り当てられたバッファであるバッファmに現在記憶されている)と、を取得することと、これらの2つから合成されたデスクトップ面22を合成することと、合成されたデスクトップ面22を、他のDWM割り当てバッファであるバッファ2に記憶することと、を含む。DWMコンポジションプロセス150の終了時に、図3に示すデスクトップ面22のコンテンツがバッファ2に書き込まれる。しかしながら、バッファ1からバッファ2へのフリップは、次のリフレッシュ(すなわち、リフレッシュ4)まで起こり得ない。このようにして、フリップ遅延125が生じる。リフレッシュ4より前では、画面上のコンテンツが依然としてバッファ1であるが、アプリケーションは、アプリケーション生成コンテンツ(C)を生成し、ハードウェアキュー100は、アプリケーション生成コンテンツ(C)がレンダリングされたことを表していることに留意されたい。リフレッシュ4では、バッファ2へのフリップが起こり、これにより、オンスクリーンディスプレイストリーム120は、バッファのコンテンツがディスプレイ20上に存在することを反映している。リフレッシュ2とリフレッシュ4との間のタイムラインを振り返ると、レイテンシには3つの可能な要素(すなわち、ハードウェアキュー100におけるコンテンツ(A)のレンダリングから次のリフレッシュであるリフレッシュ3までの間の合成の遅延、リフレッシュ3からDWMコンポジションプロセス150の終了までの間の典型的なハードウェア遅延、DWMコンポジションプロセス150の終了から次のリフレッシュであるリフレッシュ4までの間のフリップ遅延125)が存在することが明らかである。
さらに図4を参照すると、リフレッシュ4からリフレッシュ5までの間では、アプリケーション生成コンテンツがコンテンツ(C)のままであり、ハードウェアキュー100に示すように、(C)のレンダリングが続いている。リフレッシュ5の後に、DWMプロセス起動/実行インスタンス155は、アプリケーションコンテンツ(B)の利用可能性(すなわち、レンダリング(B)が完了したこと)を検出し、矢印152によって示すように、ハードウェアキュー100に反映されるように次のDWMコンポジションプロセス160を実行するようにレンダリングハードウェアに促す。次のDWMコンポジションプロセス160の終わりに、合成されたコンテンツフレームがバッファ1に書き込まれる。しかしながら、バッファ2からバッファ1へのコンテンツのフリップは、VSYNCによって課されたリフレッシュポイントのために、次のリフレッシュポイントであるリフレッシュ6まで起こり得ない。したがって、上述したフリップ遅延130が生じる。
開示された実施形態は、部分的には、図4に示され説明されたいくつかの遅延の原因を排除することを目的としている。開示された実施形態による例示的な新たな技術を説明する前に、図3を再び使用して簡略化されたプロセスフローを最初に説明することが有用となり得る。ただし、図4と同様のアクティビティ図であるが、コンテンツ(A)のレンダリングと、4回のリフレッシュサイクルのみと、が含まれるように簡略化された図5を合わせて用いる。従来のプロセスに関する説明に続いて、図6と、図2に示し簡単に上述した高解像度タイマ92を利用して同じコンテンツをレンダリングする例示的な新たなプロセスと、に言及する。
図5は、図4と同様に、ハードウェアキューストリーム100と、DWMプロセスストリーム105と、アプリケーション生成コンテンツストリーム110と、保留フリップストリーム115と、オンスクリーンディスプレイストリーム120と、を示す図である。例示目的のために、フレームレンダリングレートは、ディスプレイのリフレッシュレートより速いと想定している。同様に、例示目的のために、オンスクリーンディスプレイストリーム120は、最初に、バッファ1のコンテンツ(単に、現在のデスクトップ面22が図3のディスプレイ20上にあるものであれば何でもよい)を反映すると想定している。さらに、リフレッシュ1において、図2に示すオペレーティングシステム80を介してアプリケーション生成コンテンツ(A)が生成を開始し、DWMプロセス起動/実行インスタンス170が発生すると想定している。また、リフレッシュ1では、ハードウェアキューストリーム100に示すように、レンダリングハードウェアは、コンテンツ(A)のレンダリングを開始する。ハードウェアキューストリーム100に示すように、コンテンツ(A)のレンダリング(レンダリング(A))は、リフレッシュ1とリフレッシュ2との間で完了する。しかしながら、リフレッシュ2が固定時点で発生するので、DWMコンポジションプロセス150は、リフレッシュ2まで待たなければならず、合成における遅延が生じる。次に、リフレッシュ2では、次のDWMプロセス起動/実行インスタンス175が発生する。DWMプロセス起動/実行インスタンス175は、利用可能なレンダリングされたコンテンツ(A)を検出し、矢印177で反映されているようにDWMコンポジションプロセス150を促す。DWMコンポジションプロセス150が進行し、その結果、レンダリングされた合成デスクトップ22がバッファ2に記憶されてもよい。DWMコンポジションプロセス150の終わりには、バッファ1からバッファ2へのフリップが起こり得ないが、リフレッシュ3まで待たなければならないので、フリップ遅延180が生じる。最後に、リフレッシュ3において、DWMプロセス185の次のインスタンスが発生し、オンスクリーンディスプレイストリーム120に示すように、バッファ1からバッファ2へのフリップが発生する。したがって、レンダリング(A)の開始から合成デスクトップ面22としての(A)の表示に進むためには、2つのフレーム(すなわち、リフレッシュ1からリフレッシュ2まで、及び、リフレッシュ2からリフレッシュ3まで)が必要である。当然のことながら、遅延は、合成の遅延とフリップ遅延180との組み合わせによるものである。
例示的な新たな技術は、図2、図3及び図6を参照することによって理解することができる。図6は、図5と同様に、ハードウェアキューストリーム100と、DWMプロセスストリーム105と、アプリケーション生成コンテンツストリーム110と、保留フリップストリーム115と、オンスクリーンディスプレイストリーム120と、を示す図である。図5に示す想定と同様に、4つのリフレッシュサイクル(リフレッシュ1、リフレッシュ2、リフレッシュ3及びリフレッシュ4)のみが示されており、最初に、バッファ1のコンテンツが図3に示すディスプレイ20に示されていると想定している。この比較においても、フレームレンダリングレートは、ディスプレイのリフレッシュレートよりも速い。リフレッシュ1の後に、ハードウェアキューストリーム100に示すように、アプリケーション生成コンテンツ(A)がレンダリングハードウェアに配信され、コンテンツ(A)のレンダリング(レンダリング(A))が開始する。図5に示す従来技術のようにリフレッシュ毎にDWMプロセス起動/実行単一インスタンスを使用する代わりに、DWMプロセスストリーム105では、複数のDWMプロセス起動/実行インスタンスが存在することを反映しており、そのうち2つが190,195とラベル付けされている。複数のDWMプロセス起動/実行インスタンス190,195は、図2に示す高解像度タイマ92によって制御される。高解像度タイマ92を用いて、DWMコンポジションプロセスが、ディスプレイ20に通常課されるVSYNCタイミングから切り離される。後述するように、高解像度タイマ92は、レイテンシに影響される様々なタイプのコンテンツの検出に応じて自動的に有効にすることができ、又は、ユーザ入力によって手動で有効にすることができる。さらに、リフレッシュ毎のDWMプロセス起動/実行インスタンス190,195の数は、ユーザ選択、オペレーティングシステム選択又はこれら以外で設定されてもよい。実際、高解像度タイマ周波数(すなわち、高解像度タイマ92が、リフレッシュ間にDWMプロセスの起動/実行インスタンスを引き起こす周波数)は、高解像度タイマ92の実行に関連する計算オーバーヘッドを管理するために、コンテンツに基づいて動的に変更することができる。高解像度タイマ92は、オペレーティングシステムソフトウェア80、ビデオドライバソフトウェア85又は他の場所に実装することができる。高解像度タイマ92は、ビデオドライバソフトウェア85に対して、現在の表示(すなわち、例えばバッファ1又はバッファ2のうち何れのバッファが現在表示されているのか)をチェックするように周期的に促すことによって、各DWMプロセスインスタンス190,195を周期的に引き起こす。次に、ビデオドライバソフトウェア85は、要求されたチェックを実行し、チェックの結果(すなわち、バッファ1又はバッファ2のうち何れのバッファが現在表示されているか)をオペレーティングシステム80に報告する。この報告は、次のDWM起動/実行インスタンスを開始するようにオペレーティングシステム80に促す。DWMプロセス起動/実行インスタンス(例えば、インスタンス190,195)毎に、DWMプロセスは、アプリケーションによって割り当てられたバッファ(例えば、バッファm)のコンテンツをポーリングし、レンダリングハードウェアがDWMコンポジションプロセスを開始すべきかどうかを決定する。例えば、(A)のレンダリング(レンダリング(A))が完了していないときにDWMプロセス起動/実行インスタンス190が発生した場合、その時点でのDWMコンポジションは適切ではない。しかし、DWMプロセス起動/実行インスタンス195では、(A)のレンダリング(レンダリング(A))が完了し、そのレンダリングされたコンテンツ(A)が、アプリケーションによって割り当てられたバッファであるバッファmに記憶される。その時点で、DWMプロセス起動/実行インスタンス195は、矢印203で示唆され、ハードウェアキューストリーム100に反映されているように、DWMコンポジションプロセス200を開始するようにレンダリングハードウェアに促す。これは、本明細書に開示された従来技術よりも早いリフレッシュ2の前に行われることに留意されたい。DWMコンポジションプロセス200の間、デスクトップコンポジタは、アプリケーションによって割り当てられたバッファであるバッファmと、デスクトップ面22の他の部分のコンテンツと、を含む合成面22を構成し、その合成面22をバッファ2に記憶する。ここで、バッファ1からバッファ2へのフリップは、保留フリップストリーム115で示されるように保留されており、リフレッシュ2まで起こらないので、フリップ遅延205をもたらす。しかし、リフレッシュ1とリフレッシュ2との間には、複数のDWMプロセス起動/実行インスタンス190,195等が存在するので、DWMコンポジションステップ200は、図5に示す従来の技術よりもはるかに早く実行され得る。その結果、比較的短いフリップ遅延205と、最終的なバッファ2へのフリップと、がリフレッシュ2で発生する可能性がある。したがって、バッファ2にフリップしてバッファ2のコンテンツをスクリーンに表示するためのレンダリング(A)の始めからDWMコンポジション200までのプロセスは、図5に示す従来技術における2つのフレームとは対照的に、単一のフレームで起こり得る。なお、開示された実施形態と共にFreeSyncが使用され得ることに留意されたい。
フレームをレンダリングする従来の技術と代替の新たな例示的な技術との間の同様の比較であるが、毎秒毎のレンダリングフレーム速度がモニタのリフレッシュ速度より低い場合については、図2、図3、図7及び図8を参照することによって理解することができる。図7は、図5と同様のアクティビティ図であり、図8は、図6と同様のアクティビティ図である。ここで、図7は、ハードウェアキューストリーム100と、DWMプロセスストリーム105と、アプリケーション生成コンテンツストリーム110と、保留フリップストリーム115と、オンスクリーンディスプレイストリーム120と、4つのリフレッシュサイクル(リフレッシュ1、リフレッシュ2、リフレッシュ3、リフレッシュ4)と、を示している。やはり、ディスプレイ20上のデスクトップ面22は、最初に、図2に示すバッファ1のコンテンツであると想定する。リフレッシュ1の直後に、アプリケーション生成コンテンツストリーム110及びハードウェアキューストリーム100は、コンテンツ(A)がレンダリングハードウェアに配信され、(A)のレンダリング(レンダリング(A))が始まることを反映する。DWMプロセス起動/実行インスタンス205が発生する。リフレッシュ2では、次のDWMプロセス起動/実行インスタンス210が発生するが、レンダリングフレームレートがリフレッシュレート(すなわち、リフレッシュ1からリフレッシュ2までの期間)より遅いので、コンテンツ(A)のレンダリング(レンダリング(A))は、ハードウェアキューストリーム100に反映されているように、未完了である。レンダリング(A)は、リフレッシュ2の後であってリフレッシュ3の前に完了するが、その完了は、DWMプロセス起動/実行インスタンス210の終了後に行われる。したがって、レンダリングされたコンテンツであるレンダリング(A)がDWMコンポジション又はその他に継続して移動することは、少なくともリフレッシュ3まで遅延される。リフレッシュ3では、次のDWMプロセス起動/実行インスタンス215が発生し、レンダリング(A)プロセスからのレンダリングされたコンテンツが検出され、レンダリングハードウェアは、矢印223で示唆されるように、DWMコンポジションプロセス220を開始するように促される。DWMコンポジションプロセス220の間、レンダリングされたコンテンツ(A)と、デスクトップ面の残りの部分と、から構成された合成デスクトップ22がバッファ2に書き込まれる。DWMコンポジションステップ220の完了に続いて、合成デスクトップ面22をディスプレイ20に実際に配信するためのバッファ2へのフリップがリフレッシュ4まで待たなければならず、大幅なフリップ遅延225を生じさせる。最後にリフレッシュ4において、バッファ2へのフリップは、オンスクリーンストリーム120上に表されるように、更新されたデスクトップ面22(更新されたコンテンツ(A)を含む)をモニタ20に配信するために発生し得る。なお、レンダリング(A)完了に引き続く、ハードウェアキュー100においてレンダリング(A)の完了を追跡することに関連する総遅延は、1フレームを超えており、2フレームにもなり得ることに留意されたい。さらに、デスクトップ面22の一部として、3つのフルフレーム(すなわち、リフレッシュ1からリフレッシュ4まで)が、レンダリング(A)の開始と(A)の実際の表示との間に発生している。
対照的に、図8に示すように、高解像度タイマ92(図2参照)を利用して複数のDWMプロセス起動/実行インスタンスを生成する新たな例示的な技術が示されている。図8は、ハードウェアキューストリーム100と、DWMプロセスストリーム105と、アプリケーション生成コンテンツストリーム110と、保留フリップストリーム115と、オンスクリーンディスプレイストリーム120と、を示している。ただし、図3に示すモニタ20に対する動的リフレッシュレートの利用は、リフレッシュ(リフレッシュ1、リフレッシュ2、リフレッシュ3及びリフレッシュ4)が、一定の間隔ではなくDWMコンポジションプロセス時の動的リフレッシュレートによって決まる間隔で発生するのを意味することに留意されたい。繰り返すが、最初にバッファ1のコンテンツが表示されている。リフレッシュ1の後に、アプリケーション生成コンテンツ(A)が、図2に示すオペレーティングシステム80によって呼び出され、これにより、ハードウェアキュー100は、レンダリング(A)も開始することを示している。図2に示す高解像度タイマ92は、複数のDWMプロセス起動/実行インスタンスを生成し、そのうち2つのインスタンスが230,235とラベル付けされている。従来の環境では、垂直の破線で示されている従来のVSYNCリフレッシュポイントが発生する場所でリフレッシュ2が発生することに留意されたい。しかし、動的リフレッシュが実装されているので、リフレッシュ2が後で発生し、これにより、リフレッシュ1とリフレッシュ2との間のリフレッシュ速度は、VSYNCで提供されるよりも遅くなる。このようにして、いくつかの数のDWMプロセス起動/実行インスタンス(この場合、DWMプロセス起動/実行インスタンス235)の後に(A)のレンダリング(レンダリング(A))が完了し、このことは、DWMプロセス起動/実行インスタンス235によって検出される。DWMプロセス起動/実行インスタンス235は、矢印243によって示唆され、ハードウェアキューストリーム100に反映されているように、DWMコンポジションプロセス240を開始するようにレンダリングハードウェアに信号を送る。DWMコンポジションプロセス240の間、レンダリングハードウェアは、レンダリングされたコンテンツ(A)とデスクトップ面22の他の部分(図3参照)とを含む合成面をレンダリングし、その合成デスクトップ面22をバッファ2に書き込む。DWMコンポジションプロセス240の終わりに、ユーザ設定可能で潜在的に非常に短いフリップ遅延245が発生した直後に、リフレッシュ2及びバッファ1からバッファ2へのフリップが続いてもよい。フリップ遅延245の長さは、高解像度タイマ92によって設定されてもよく、様々な値をとってもよい。例示的な実施形態では、0.5から20ミリ秒を含む。このように、合成表面22(コンテンツ(A)を含む)を配信するために3つのフルフレームを必要とする代わりに、動的リフレッシュ及びより頻繁なDWMプロセス起動/実行インスタンスステップ230,235等を利用する新たな技術によって、コンテンツ(A)を、動的にリフレッシュされた単一のフレームに配信することができる。高解像度タイマ92の周波数は、静的であってもよいし動的であってもよいことに留意されたい。例えば、複数のDWMプロセスの起動/実行インスタンスの実行に関連する計算オーバーヘッドを減らすために、高解像度タイマの周波数を、コンテンツに基づいて動的に調整することができる。例えば、ゲームアプリケーションは、高いフレームレートを生成するかもしれない。このような高フレームレートコンテンツのレンダリング中に、高解像度タイマ92の周波数は、ある周波数ωに動的に設定されてもよい。しかしながら、ゲームアプリケーションのフレームレートが低い場合がある。一例では、アプリケーションの開始後にイントロスクリーンが表示される最初の数秒が存在し得る。このような低フレームレート演算密度(computational intensity)の期間中、高解像度タイマ92は、ω<ωである別の周波数ωに変更することができる。この動的な周波数の切り替えは、毎秒毎に複数回、コンテンツに応じて複数の周波数で発生する可能性がある。
本明細書に記載された従来のレンダリング技術に対する、開示された例示的な実施形態に関連する他の利点は、図9及び図10を参照することによって理解することができる。この例示的な実施形態では、改良されたレンダリングプロセスは、フリップが発生し、したがって、2つのバッファのうち1つが新たなコンテンツのレンダリングを開始するために解放されたことを、図2に示すデスクトップコンポジタ90に知らせる時点が早められる。図9は、図5と同様のアクティビティ図であり、従来のレンダリングプロセスを示す図である。図9は、ハードウェアキューストリーム100と、DWMプロセスストリーム105と、アプリケーション生成コンテンツストリーム110と、保留フリップストリーム115と、オンスクリーンディスプレイストリーム120と、4つのリフレッシュサイクル(リフレッシュ1、リフレッシュ2、リフレッシュ3及びリフレッシュ4)と、を示している。リフレッシュ1において、第1DWMプロセス起動/実行インスタンス250が発生し、ハードウェアキューストリーム100に反映されているように、オペレーティングシステムによってアプリケーション生成コンテンツ(A)がレンダリングハードウェアに送信され、更新コンテンツ(A)を、アプリケーションによって割り当てられたバッファmにレンダリングするプロセスが始まる。この時点で、ディスプレイ20は、デスクトップコンポジタ90によって割り当てられたバッファの1つであるバッファ1のコンテンツを示していると想定している。バッファmへのコンテンツ(A)のレンダリングは、リフレッシュ2の前に完了する。バッファmへのコンテンツ(A)のレンダリングの終わりに、アプリケーション生成コンテンツ(B)は、別のアプリケーションによって割り当てられたバッファ(バッファn)へのレンダリングが予定されている。しかしながら、これは、以下でより詳細に説明するように、後になるまで起こり得ない。次に、リフレッシュ2において、次のDWMプロセス起動/実行インスタンス255が発生する。DWMプロセス起動/実行インスタンス255は、バッファm内の利用可能なレンダリングされたコンテンツ(A)を検出し、矢印262で示唆され、ハードウェアキューストリーム100に反映されるように、DWMコンポジションプロセス260を開始するようにレンダリングハードウェアに促す。DWMコンポジションプロセス260は、レンダリングされたコンテンツ(A)を含む合成面22(図3参照)を生成する。DWMコンポジションプロセス260の終了に続いて、バッファ1からバッファ2へのフリップは、次のリフレッシュであるリフレッシュ3を待つ必要があり、これにより、保留フリップストリーム115に示されるフリップ遅延265を生じさせる。リフレッシュ3において、バッファ2へのフリップが発生し、これにより、オンスクリーンディスプレイストリーム120に反映されるように、バッファ2のコンテンツ(すなわち、レンダリング(A)の生成物)が図3に示すディスプレイ20に配信される。従来技術では、この時点で、DWMプロセスインスタンス270は、表示されている現在のバッファ(この場合、バッファ2)を報告する。オペレーティングシステム80がこの現在のバッファ表示についての報告を受信し、他のバッファであるバッファ1が、この場合にはコンテンツ(B)を含む次の合成コンテンツをレンダリングするために利用可能であることをオペレーティングシステム80に認識させるのは、この時点のみである。
新たなプロセスの例示的な実施形態が図10に示され、図2及び図3と関連して説明される。図9と同様に、図10は、ハードウェアキューストリーム100と、DWMプロセスストリーム105と、アプリケーション生成コンテンツストリーム110と、保留フリップストリーム115と、オンスクリーンディスプレイストリーム120と、に4つのリフレッシュサイクル(リフレッシュ1、リフレッシュ2、リフレッシュ3及びリフレッシュ4)と、を示している。リフレッシュ1において、バッファ1のコンテンツが表示され、アプリケーション生成コンテンツ(A)がレンダリングハードウェアに送信され、ハードウェアキューストリーム100を介して反映されるように、アプリケーションによって割り当てられたバッファmへのレンダリング(A)のレンダリングプロセスが開始される。図2に示す高解像度タイマ92を介して、複数の周期的なDWMプロセス起動/実行インスタンス275,280等が、リフレッシュ1の後であってリフレッシュ2の前に発生する。上述したように、高解像度タイマ92は、現在の表示(すなわち、何れのDWM割り当てバッファ(例えば、バッファ1又はバッファ2)が現在表示されているか)をチェックするように、ビデオドライバソフトウェア85に周期的に促す。次に、ビデオドライバソフトウェア85は、要求されたチェックを実行し、その結果(すなわち、バッファ1又はバッファ2の何れが現在表示されているかをチェックした結果)をオペレーティングシステム80に報告する。この報告は、次のDWM起動/実行インスタンスを開始するようにオペレーティングシステム80に促す。バッファmへのレンダリング(A)プロセスの終了は、次に利用可能なDWMプロセス起動/実行インスタンス(この場合、インスタンス280)によって検出される。DWMプロセス起動/実行インスタンス280は、矢印287で示唆されるように、DWMコンポジションプロセス285を開始するようにレンダリングハードウェアに信号を送る。DWMコンポジションプロセスの間に、バッファmのコンテンツは、デスクトップ面22の残りの部分(図3参照)と合成され、バッファ2に書き込まれる。また、この時点において、ビデオドライバソフトウェア85は、高解像度タイマ92によって促されるように、現在表示されているバッファが依然としてバッファ1であることをオペレーティングシステムソフトウェア80に報告する。したがって、各DWMプロセス起動/実行インスタンス275,280等の始めに、報告が(現在のDWMプロセス起動/実行インスタンスによって)図2に示すオペレーティングシステムソフトウェア80のデスクトップコンポジタ90に送信され、現在表示されているバッファがバッファ1であり、DWMコンポジションステップ285の後に現在表示されているバッファの報告を含むことが報告される。この同じ報告は、リフレッシュ2の前にDWM起動/実行の各インスタンス275,280等で繰り返される。リフレッシュ2では、バッファ1からバッファ2へのフリップが行われ、モニタ20に配信される。リフレッシュ2の直後に発生する次のDWMプロセス起動/実行インスタンス290では、現在表示されているバッファがバッファ2であり、したがって、バッファ1が新たな合成に利用可能であることを示す報告が行われてもよい。この例示的な技術における次の利用可能なバッファの報告は、リフレッシュ3で発生する、図9に示す現在表示されているバッファの報告よりもはるかに早く行われることに留意されたい。これも、ハードウェアの遅延によるレイテンシの短縮に役立つ。
コンピューティングデバイス10の動作のための例示的な処理フローは、図2、図3、図8及び図11を参照することによって理解することができる。図11は例示的な処理フローのフローチャートである。ステップ300で開始した後、コンピューティングデバイス10は、ステップ305でフルスクリーンエクスクルーシブモードが有効になっているかどうかを検出する。フルスクリーンエクスクルーシブモードが検出された場合、プロセスはステップ310に進み、高解像度タイマを無効にしてフルスクリーンエクスクルーシブモードでレンダリングする。プロセスはステップ305に戻る。しかし、ステップ305でフルスクリーンエクスクルーシブモードが検出されない場合、プロセスはステップ320に進み、レイテンシの影響を受けやすいコンテンツを検出する。これは、様々な方法で実行することができる。例示的な実施形態では、図2に示すプロセッサ50は、ビデオドライバソフトウェア85と連携して、フルスクリーンモード又はウィンドウモードの何れかにおいて、ゲーム等のアプリケーション35の起動を検出する。これは、ウィンドウサイズ並びに前景及び背景の文字が検出され、ウィンドウがフルスクリーンであるかどうかを判別するためにデスクトップサイズが比較されるランタイム検出を必要とすることができる。この検出ステップは、レイテンシの影響を受けやすいアプリケーションが実行されている状況で高解像度タイマ92のみを有効にし、高解像度タイマ92及びより頻繁なデスクトップDWMプロセスの起動及び有効化ステップに関連する余分なオーバーヘッドを回避するのに有利である。ステップ323でレイテンシの影響を受けやすいコンテンツが検出されない場合、プロセスはステップ325に進み、高解像度タイマ92を無効にしてウィンドウモードのレンダリングを行う。このウィンドウモードは、アプリケーションがフルスクリーンでレンダリングされるモードを含むことができる。次に、ステップ330において、プロセスはステップ305に戻る。しかし、ステップ323でレイテンシの影響を受けやすいコンテンツが検出された場合、プロセスはステップ340に進み、高解像度タイマ92を有効にしてコンテンツをレンダリングする。このように、例えば図8に示すように、これは、高解像度タイマ92が複数のDWMプロセス起動/実行インスタンス230,235等を引き起こすことを伴う可能性がある。次に、ステップ345において、DWMコンポジションプロセスが実行される。これは、例えば、図8に示したDWMコンポジション処理240に対応する。次に、ステップ350において、動的リフレッシュ及びバッファフリップが実行される。これは、例えば、動的リフレッシュ、リフレッシュ2、及び、バッファ1からバッファ2へのバッファフリップに対応する。次に、ステップ355において、図2に示す高解像度タイマ92は、図2に示すデスクトップコンポジタ90に対して、2つのバッファのうち1つが現在利用可能であることを報告する。これは、例えば図10のリフレッシュ2に示す現在表示されているバッファのレポートに対応する。この時点で、プロセスはステップ330に進み、最終的にステップ305に戻ることができる。勿論、このループは毎秒何度も発生する可能性がある。
図11におけるステップ340のいくつかのさらなる例示的な詳細は、フローチャートである図12を参照することによって理解することができる。図8の説明において上述したように、高解像度タイマ92の周波数は、静的であってもよいし動的であってもよい。したがって、ステップ340において、ステップ360にて高解像度タイマの動的周波数が有効にされていない場合、ステップ365において、コンテンツは、高解像度タイマ92を用いて静的周波数でレンダリングされ、その後、ステップ360にループバックする。高解像度タイマ周波数は、ユーザ入力によって、又は、レイテンシの影響を受けやすいコンテンツが検出された場合に、自動的に設定されてもよい。しかし、ステップ360において、高解像度タイマの動的周波数が有効にされている場合、ステップ370において、コンテンツは、コンテンツに基づく動的周波数で高解像度タイマ92を用いてレンダリングされ、その後、ステップ360にループバックする。必要に応じて、コンテンツの計算集約的な側面に基づいて、周波数を毎秒複数回上下に調整してもよい。
本発明は、様々な変形形態及び代替形態を受け入れることができるが、具体的な実施形態が例として図面に示されており、本明細書で詳細に説明されている。しかしながら、本発明は、開示された特定の形態に限定されることを意図していないことを理解すべきである。むしろ、本発明は、添付の特許請求の範囲によって定義される本発明の趣旨及び範囲に含まれる全ての変更形態、等価物及び代替形態を網羅するものである。

Claims (24)

  1. ディスプレイデバイス(20)に表示されるビデオコンテンツであって、少なくとも1つのアプリケーションウィンドウ(35)を含むビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュするように動作可能なコンピューティングデバイス(10)と、
    前記少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成し、前記ビデオフレームを前記ディスプレイデバイスに配信するためにバッファフリップを開始するためのコマンドを起動して実行するように動作可能なデスクトップコンポジタ(90)と、
    レンダリングされたビデオコンテンツが検出された場合に、連続するディスプレイのリフレッシュの間に前記デスクトップコンポジタを複数回起動させ、前記コマンドを実行させるように動作可能なタイマ(92)と、を備える、
    システム。
  2. 前記ディスプレイデバイスは、動的リフレッシュレートで動作可能である、
    請求項1のシステム。
  3. 前記コンピューティングデバイスは、オペレーティングシステム(80)を含み、前記デスクトップコンポジタは、前記オペレーティングシステムの一部である、
    請求項1のシステム。
  4. 前記タイマは、前記オペレーティングシステムの一部である、
    請求項3のシステム。
  5. ビデオドライバ(85)を備え、前記タイマは、前記ビデオドライバの一部である、
    請求項1のシステム。
  6. 前記ディスプレイデバイス(20)は、垂直同期(VSYNC)タイミングが有効な場合に動作し、前記タイマは、前記VSYNCタイミングとは無関係に前記デスクトップコンポジタを起動させ、前記コマンドを実行させるように動作可能である、
    請求項1のシステム。
  7. 前記タイマは、次のリフレッシュの前に、バッファがレンダリングに利用可能であることを前記デスクトップコンポジタに報告するように動作可能である、
    請求項1のシステム。
  8. 前記タイマは、前記ビデオコンテンツに基づいて動的に調整可能な周波数で動作するように構成されている、
    請求項1のシステム。
  9. ディスプレイデバイス(20)に表示されるビデオコンテンツであって、少なくとも1つのアプリケーションウィンドウ(35)を含むビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュすることと、
    前記少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成し、前記ビデオフレームを前記ディスプレイデバイスに配信するためにバッファフリップを開始するためのコマンドを起動して実行するようにデスクトップコンポジタ(90)を動作させることと、
    レンダリングされたビデオコンテンツが検出された場合に、連続するディスプレイのリフレッシュの間に前記デスクトップコンポジタを複数回起動させ、前記コマンドを実行させるようにタイマ(92)を動作させることと、を含む、
    方法。
  10. 前記ディスプレイデバイスを動的リフレッシュレートで動作させる、
    請求項9の方法。
  11. 前記デスクトップコンポジタは、オペレーティングシステム(80)の一部である、
    請求項9の方法。
  12. 前記タイマは、前記オペレーティングシステムの一部である、
    請求項11の方法。
  13. 前記タイマは、ビデオドライバ(85)の一部である、
    請求項9の方法。
  14. 前記ディスプレイデバイスを、垂直同期(VSYNC)タイミングが有効な場合に動作させ、前記タイマは、前記VSYNCタイミングとは無関係に前記デスクトップコンポジタを起動させ、前記コマンドを実行させる、
    請求項9の方法。
  15. 次のリフレッシュの前に、バッファがレンダリングに利用可能であることを前記デスクトップコンポジタに報告するように前記タイマを動作させることを含む、
    請求項9の方法。
  16. 前記ビデオコンテンツに基づいて動的に調整可能な周波数で前記タイマを動作させることを含む、
    請求項9の方法。
  17. ディスプレイデバイス(20)を有し、前記ディスプレイデバイスに表示されるビデオコンテンツであって、少なくとも1つのアプリケーションウィンドウ(35)を含むビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュするように動作可能な第1コンピューティングシステム(15)を含むシステムにおける方法であって、
    前記ディスプレイデバイスに表示されるビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュすることと、
    前記少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成し、前記ビデオフレームを前記ディスプレイデバイスに配信するためにバッファフリップを開始するためのコマンドを起動して実行するようにデスクトップコンポジタ(90)を動作させることと、
    レンダリングされたビデオコンテンツが検出された場合に、連続するディスプレイのリフレッシュの間に前記デスクトップコンポジタを複数回起動させ、前記コマンドを実行させるようにタイマ(92)を動作させることと、を含む、
    方法。
  18. 前記ディスプレイデバイスを動的リフレッシュレートで動作させる、
    請求項17の方法。
  19. 前記デスクトップコンポジタは、オペレーティングシステム(80)の一部である、
    請求項17の方法。
  20. 前記タイマは、前記オペレーティングシステムの一部である、
    請求項19の方法。
  21. 前記タイマは、ビデオドライバ(85)の一部である、
    請求項17の方法。
  22. 前記ディスプレイデバイスを、垂直同期(VSYNC)タイミングが有効な場合に動作させ、前記タイマは、前記VSYNCタイミングとは無関係に前記デスクトップコンポジタを起動させ、前記コマンドを実行させる、
    請求項17の方法。
  23. 次のリフレッシュの前に、バッファがレンダリングに利用可能であることを前記デスクトップコンポジタに報告するように前記タイマを動作させることを含む、
    請求項17の方法。
  24. 方法を実行するためのコンピュータ可読命令を含むコンピュータ可読記憶媒体であって、
    前記方法は、
    ディスプレイデバイス(20)に表示されるビデオコンテンツであって、少なくとも1つのアプリケーションウィンドウ(35)を含むビデオコンテンツをレンダリングし、当該ディスプレイデバイスを周期的にリフレッシュすることと、
    前記少なくとも1つのアプリケーションウィンドウを含む合成面であるビデオフレームを構成し、前記ビデオフレームを前記ディスプレイデバイスに配信するためのバッファフリップを開始するためのコマンドを起動して実行するようにデスクトップコンポジタ(90)を動作させることと、
    レンダリングされたビデオコンテンツが検出された場合に、連続するディスプレイのリフレッシュの間に前記デスクトップコンポジタを複数回起動させ、前記コマンドを実行させるようにタイマ(92)を動作させることと、を含む、
    コンピュータ可読記憶媒体。
JP2019516935A 2016-10-31 2017-10-11 デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置 Active JP7198202B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/338,492 2016-10-31
US15/338,492 US20180121213A1 (en) 2016-10-31 2016-10-31 Method apparatus for dynamically reducing application render-to-on screen time in a desktop environment
PCT/CA2017/051206 WO2018076102A1 (en) 2016-10-31 2017-10-11 Method apparatus for dynamically reducing application render-to-on screen time in a desktop environment

Publications (3)

Publication Number Publication Date
JP2020502553A JP2020502553A (ja) 2020-01-23
JP2020502553A5 JP2020502553A5 (ja) 2020-11-12
JP7198202B2 true JP7198202B2 (ja) 2022-12-28

Family

ID=62021497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019516935A Active JP7198202B2 (ja) 2016-10-31 2017-10-11 デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置

Country Status (6)

Country Link
US (1) US20180121213A1 (ja)
EP (1) EP3532919A4 (ja)
JP (1) JP7198202B2 (ja)
KR (1) KR102426012B1 (ja)
CN (1) CN110073324B (ja)
WO (1) WO2018076102A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020062069A1 (en) * 2018-09-28 2020-04-02 Qualcomm Incorporated Frame composition alignment to target frame rate for janks reduction
CN109743517B (zh) * 2019-01-21 2021-04-20 合肥惠科金扬科技有限公司 一种显示模式设置方法、显示器及终端设备
CN110503708A (zh) 2019-07-03 2019-11-26 华为技术有限公司 一种基于垂直同步信号的图像处理方法及电子设备
CN113096054B (zh) * 2020-01-09 2024-06-25 北京小米移动软件有限公司 图像帧合成方法、装置及存储介质
CN113345478B (zh) * 2020-03-02 2022-07-05 海信视像科技股份有限公司 播放器时刻获取方法、设备、存储介质及播放器
CN115729435A (zh) * 2021-08-31 2023-03-03 广东艾檬电子科技有限公司 一种实现桌面应用交互及渲染的方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020030694A1 (en) 2000-03-23 2002-03-14 Hitoshi Ebihara Image processing apparatus and method
JP2002182639A (ja) 2000-12-18 2002-06-26 Akuseru:Kk 画像処理装置
JP2009075888A (ja) 2007-09-20 2009-04-09 Canon Inc 描画処理装置及びその方法、プログラム、記録媒体
JP4692682B1 (ja) 2010-01-26 2011-06-01 株式会社アクセル 音声処理装置
US20160247484A1 (en) 2013-11-06 2016-08-25 Huawei Device Co., Ltd. Method for Generating Display Frame and Terminal Device

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6700588B1 (en) * 1998-11-09 2004-03-02 Broadcom Corporation Apparatus and method for blending graphics and video surfaces
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US7038690B2 (en) * 2001-03-23 2006-05-02 Microsoft Corporation Methods and systems for displaying animated graphics on a computing device
US7397478B2 (en) * 2005-09-29 2008-07-08 Intel Corporation Various apparatuses and methods for switching between buffers using a video frame buffer flip queue
US7705842B2 (en) * 2006-01-11 2010-04-27 Microsoft Corporation Fast display initialization and light up
JP4312238B2 (ja) * 2007-02-13 2009-08-12 株式会社ソニー・コンピュータエンタテインメント 画像変換装置および画像変換方法
US8334857B1 (en) * 2007-12-14 2012-12-18 Nvidia Corporation Method and system for dynamically controlling a display refresh rate
US8300056B2 (en) * 2008-10-13 2012-10-30 Apple Inc. Seamless display migration
US8350867B2 (en) * 2009-12-22 2013-01-08 Ati Technologies Ulc Image quality configuration apparatus, system and method
US8446411B2 (en) * 2010-06-11 2013-05-21 Microsoft Corporation Adaptive image rendering and use of imposter
US9047085B2 (en) * 2011-03-14 2015-06-02 Nvidia Corporation Method and apparatus for controlling sparse refresh of a self-refreshing display device using a communications path with an auxiliary communications channel for delivering data to the display
EP2759156A4 (en) * 2011-09-19 2015-10-21 Quickplay Media Inc MEDIA PROCESSOR
EP2629182B1 (en) * 2012-02-17 2019-01-16 2236008 Ontario Inc. System and method for sample rate adaption
US9030481B2 (en) * 2012-06-28 2015-05-12 Intel Corporation Method and apparatus for reducing power usage during video presentation on a display
US9251552B2 (en) * 2012-06-28 2016-02-02 Intel Corporation Method and apparatus for managing image data for presentation on a display
US9269121B2 (en) * 2012-12-18 2016-02-23 Intel Corporation Techniques for managing system power using deferred graphics rendering
US9858899B2 (en) * 2013-06-13 2018-01-02 Microsoft Technology Licensing, Llc Managing transitions of adaptive display rates for different video playback scenarios
US9332216B2 (en) * 2014-03-12 2016-05-03 Sony Computer Entertainment America, LLC Video frame rate compensation through adjustment of vertical blanking

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020030694A1 (en) 2000-03-23 2002-03-14 Hitoshi Ebihara Image processing apparatus and method
JP2002182639A (ja) 2000-12-18 2002-06-26 Akuseru:Kk 画像処理装置
JP2009075888A (ja) 2007-09-20 2009-04-09 Canon Inc 描画処理装置及びその方法、プログラム、記録媒体
JP4692682B1 (ja) 2010-01-26 2011-06-01 株式会社アクセル 音声処理装置
US20160247484A1 (en) 2013-11-06 2016-08-25 Huawei Device Co., Ltd. Method for Generating Display Frame and Terminal Device

Also Published As

Publication number Publication date
KR20190073350A (ko) 2019-06-26
EP3532919A4 (en) 2020-06-24
EP3532919A1 (en) 2019-09-04
US20180121213A1 (en) 2018-05-03
CN110073324A (zh) 2019-07-30
KR102426012B1 (ko) 2022-07-27
JP2020502553A (ja) 2020-01-23
CN110073324B (zh) 2023-08-15
WO2018076102A1 (en) 2018-05-03

Similar Documents

Publication Publication Date Title
JP7198202B2 (ja) デスクトップ環境においてアプリケーションのレンダリングからオンスクリーンになるまでの時間を動的に短縮する方法及び装置
US7941645B1 (en) Isochronous pipelined processor with deterministic control
US7397478B2 (en) Various apparatuses and methods for switching between buffers using a video frame buffer flip queue
JP4383853B2 (ja) 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
JP7198772B2 (ja) マルチヘッドマウントディスプレイ仮想現実構成でのディスプレイペーシング
WO2017131876A1 (en) Adaptive context switching
KR20220143667A (ko) 지연된 그래픽 프로세싱 유닛 렌더 시간을 보상하기 위한 감소된 디스플레이 프로세싱 유닛 전달 시간
US11100698B2 (en) Real-time GPU rendering with performance guaranteed power management
KR20230119169A (ko) 다중 디스플레이 시스템에서 비동기식 메모리 클록변경 수행
US20220223098A1 (en) Frame replay for variable rate refresh display
WO2021056364A1 (en) Methods and apparatus to facilitate frame per second rate switching via touch event signals
CN111399930B (zh) 一种页面启动方法、装置、设备及存储介质
US10332489B2 (en) Data processing system for display underrun recovery
US20240111442A1 (en) On-Demand Regulation of Memory Bandwidth Utilization to Service Requirements of Display
WO2021248370A1 (en) Methods and apparatus for reducing frame drop via adaptive scheduling
WO2023136984A1 (en) Dpu driven adaptive sync for command mode panels
JP2022088031A (ja) 信号処理装置、信号処理方法、および表示システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200929

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210713

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211013

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220510

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221216

R150 Certificate of patent or registration of utility model

Ref document number: 7198202

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150