(57)【要約】様々な仮想現実コンピューティングシステム及び方法が開示される。一態様では、ビデオフレームデータを複数のＶＲディスプレイ（ＨＭＤ１、ＨＭＤ２）に配信する方法が提供される。方法は、複数のＶＲディスプレイのコンテンツを生成することと、複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、を含む。リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットが決定される。選択したリフレッシュオフセットが適用され、コンテンツが複数のＶＲディスプレイに配信される。【選択図】図１
2020519929.tif 000002
【特許請求の範囲】
【請求項１】
ビデオフレームデータを複数のＶＲディスプレイ（ＨＭＤ１、ＨＭＤ２）に配信する方法であって、
複数のＶＲディスプレイのコンテンツを生成することと、
前記複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、前記複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを決定することと、
前記選択されたリフレッシュオフセットを適用することと、
前記コンテンツを前記複数のＶＲディスプレイに配信することと、を含む、
方法。
【請求項２】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項１の方法。
【請求項３】
前記複数のディスプレイは動的リフレッシュをサポートし、
前記方法は、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲによるリソースに対するニーズの競合を回避するのをサポートするために、前記複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定することと、
前記選択されたリフレッシュオフセット及び前記動的リフレッシュレートを適用することと、を含む、
請求項１の方法。
【請求項４】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項３の方法。
【請求項５】
前記コンテンツを生成することは、単一のＧＰＵによって実行される、
請求項１の方法。
【請求項６】
複数のＶＲディスプレイのコンテンツを生成することは、
ＧＰＵを用いて、前記複数のＶＲディスプレイのうち１つのＶＲディスプレイのコンテンツを生成することと、
別のＧＰＵを用いて、前記複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信することと、を含む、
請求項１の方法。
【請求項７】
前記ＧＰＵがマスタとして構成され、前記別のＧＰＵがスレーブとして構成され、前記マスタは、スレーブＧＰＵによって生成又は配信されたフレームの前記選択されたリフレッシュオフセットを制御する、
請求項６の方法。
【請求項８】
ビデオフレームデータを複数のＶＲディスプレイ（ＨＭＤ１、ＨＭＤ２）に配信する方法であって、
コンピューティングデバイス（１５）で第１アプリケーション（ＡＰＰ  １）を実行して、複数のＶＲディスプレイのコンテンツを生成することと、
第２アプリケーション（ＡＰＰ  ２）を用いて、リアルタイム要件を有するリソースに対するニーズの競合を検知することと、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、前記第２アプリケーションを用いて、前記複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを決定することと、
前記選択されたリフレッシュオフセットを適用することと、
前記コンテンツを前記複数のＶＲディスプレイに配信することと、を含む、
方法。
【請求項９】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項８の方法。
【請求項１０】
前記複数のディスプレイは動的リフレッシュをサポートし、
前記方法は、
動きが検知された場合に、前記複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定して、前記動きに起因する、リソースに対する前記複数のＶＲディスプレイによる要求の競合を回避することをサポートすることと、
前記選択されたリフレッシュオフセット及び前記動的リフレッシュレートを適用することと、を含む、
請求項８の方法。
【請求項１１】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項１０の方法。
【請求項１２】
アプリケーションは、単一のＧＰＵ（３５）によって実行される、
請求項８の方法。
【請求項１３】
複数のＶＲディスプレイのコンテンツを生成することは、
ＧＰＵ（３５）を用いて、前記複数のＶＲディスプレイのうち１つのＶＲディスプレイのコンテンツを生成することと、
別のＧＰＵ（８５）を用いて、前記複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信することと、を含む、
請求項８の方法。
【請求項１４】
前記ＧＰＵがマスタとして構成され、前記別のＧＰＵがスレーブとして構成され、前記マスタは、スレーブＧＰＵによって生成又は配信されたフレームの前記選択されたリフレッシュオフセットを制御する、
請求項１３の方法。
【請求項１５】
仮想現実コンピューティングシステム（１０）であって、
コンピューティングデバイス（１５）と、
プロセッサ（３０，３５）と、を備え、
前記プロセッサは、
複数のＶＲディスプレイ（ＨＭＤ１、ＨＭＤ２）のコンテンツを生成することと、
前記複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、前記複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを決定することと、
前記選択されたリフレッシュオフセットを適用することと、
前記コンテンツを前記複数のＶＲディスプレイに配信することと、
を行うための命令を実行するように動作可能である、
仮想現実コンピューティングシステム（１０）。
【請求項１６】
前記複数のＶＲディスプレイを備える、
請求項１５の仮想現実コンピューティングシステム。
【請求項１７】
前記プロセッサは、ＣＰＵ、ＧＰＵ、又は、ＣＰＵ及びＧＰＵの組み合わせを含む、
請求項１５の仮想現実コンピューティングシステム。
【請求項１８】
前記コンピューティングデバイスは、別のプロセッサ（８５）を備え、
前記プロセッサが前記複数のＶＲディスプレイのうち１つＶＲディスプレイのコンテンツを生成し、前記別のプロセッサが前記複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信する、
請求項１５の仮想現実コンピューティングシステム。
【請求項１９】
前記プロセッサがマスタとして構成され、前記別のプロセッサがスレーブとして構成され、前記マスタは、スレーブプロセッサによって生成又は配信されたフレームの前記選択されたリフレッシュオフセットを制御する、
請求項１８の仮想現実コンピューティングシステム。
【請求項２０】
前記複数のディスプレイは動的リフレッシュをサポートし、
前記プロセッサは、リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、
前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避することをサポートするために、前記複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定することと、
前記選択されたリフレッシュオフセット及び前記動的リフレッシュレートを適用することと、
を行うように動作可能である、
請求項１５の仮想現実コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１７年４月２５日に出願された米国特許出願第１５／４９６，９７２号の優先権を主張し、この全ての内容は、言及することによって本明細書に組み込まれる。
【背景技術】
【０００２】
仮想現実（バーチャルリアリティ）（ＶＲ）システムでは、コンピュータが生成した仮想世界を着用者に示す照明付きスクリーンを備えたヘッドマウントディスプレイ（ＨＭＤ）が利用される。ＨＭＤは、ユーザの頭が動く度にディスプレイを変更し、変更された風景をユーザに示す。ゲーム等のアプリケーションを実行する場合、ＶＲコンピュータは、アプリケーションによって生成されたビデオフレームをレンダリングするだけでなく、ユーザの頭の動きも考慮する必要がある。ＶＲコンピュータは、頭の動きの有無にかかわらず、画像が遅延して、ユーザが僅か１秒又は何分の１秒でも遅れて画像を見ることになるジャダーを回避するために、ほぼリアルタイムでフレームを処理しなければならない。ジャダーは、非常に不快で吐き気を催すことがある。
【０００３】
本発明の上述した及び他の利点は、以下の詳細な説明を読み、以下の図面を参照することによって明らかになる。
【図面の簡単な説明】
【０００４】
【図１】例示的なＶＲコンピューティングシステムの概略図である。
【図２】複数のＶＲディスプレイのリフレッシュサイクルの従来の例示的なタイミング図である。
【図３】例示的な変形例に関する複数のＶＲディスプレイのリフレッシュサイクルの例示的なタイミング図である。
【図４】別の例示的な変形例に関する複数のＶＲディスプレイのリフレッシュサイクルの例示的なタイミング図である。
【図５】図１のような概略図であるが、代替の例示的なＶＲコンピューティングシステムを示す図である。
【図６】選択されたリフレッシュオフセットを用いて又は用いることなく、１つ以上のＶＲディスプレイにフレームを配信するための例示的なプロセスフローを示すフローチャートである。
【図７】選択されたリフレッシュオフセット及び動的リフレッシュを用いて複数のＶＲディスプレイにフレームを配信するための例示的なプロセスフローを示すフローチャートである。
【発明を実施するための形態】
【０００５】
ＶＲシステムは、優れたユーザエクスペリエンスを提供するために、ほぼリアルタイムで実行する能力に依存する。上記のように、単一のＨＭＤ駆動システムは、単純な状況を表す。複数のＨＭＤがコンピュータシステムに接続されていると、複雑さが増す。従来のＶＲ  ＨＭＤは、通常、ディスプレイのリフレッシュレートに関連する固定タイムラインで動作する。垂直同期又はＶｓｙｎｃは、異なるコンテンツを有する２つのレンダリングされたフレームの一部がディスプレイに表示されるフレームティアリング（frame tearing）の問題を回避するために、バッファフリップ（buffer flipping）を制御する方法である。Ｖｓｙｎｃが有効である場合、各バッファフリップは、各リフレッシュ後にのみ発生し得る。これにより、ＨＭＤリフレッシュレートでのフレームレンダリング速度が効果的に制限される。
【０００６】
一部のＶＲシステムベンダは、ＶＲ  ＨＭＤでフレームが失われた場合の影響を軽減するために、非同期タイムワープ（ＡＴＷ）と呼ばれる手法を導入している。ＡＴＷを使用するシステムは、最後のＶＲ  ＨＭＤ位置がゲームに送信された後に発生した相対的な頭の動きに基づいて、ゲームエンジンからの入力無しにＶＲ  ＨＭＤ上の画像をシフトする。これにより、より正確な画像がユーザに表示される。ＡＴＷはフレーム全体を移動し、ユーザの頭の回転に対する相対的な変化に基づいてのみフレームをシフトさせる。より最近開発されたものは、いわゆる非同期スペースワープ（ＡＳＷ）である。ＡＳＷを搭載したシステムは、ゲームがリフレッシュレートよりも低いフレームレートで実行されている場合に、ゲームエンジンから「実際の」フレームの間に挿入する新たなフレームを生成することによって、シーン内のオブジェクト及び動きをシフトしようとする。
【０００７】
ＡＴＷは、Ｖｓｙｎｃ間隔の前の部分に対して最小限のレイテンシで実行される。同様に、中央処理装置（ＣＰＵ）及びグラフィックス処理装置（ＧＰＵ）の両方で実行されるフレーム生成の他の部分は、ＨＭＤのＶｓｙｎｃに対してペース調整される。これは、単一のＨＭＤを備えたシステムに適している。複数のＨＭＤが接続されている場合、システム（ＣＰＵやＧＰＵ等）に十分な総処理能力がある場合であっても、複数のＨＭＤに亘る重要なリアルタイムのリソース（例えば、ＡＴＷの計算等）の競合によって、信頼性の低い動作が発生する可能性がある。ジェンロック（gen lock）やフレームロック（frame lock）等のように、ディスプレイの処理と出力とを同期するための従来のソリューションが存在するが、複数のＶＲヘッドセットに必要な、予測可能な方法でディスプレイの動作をペース調整するソリューションは存在しない。
【０００８】
本発明の一態様によれば、ビデオフレームデータを複数のＶＲディスプレイに配信する方法が提供される。この方法は、複数のＶＲディスプレイのコンテンツを生成することと、複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、を含む。リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、複数のＶＲディスプレイのリソースに対する競合するニーズ間の競合を避けるために、複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットが決定される。選択されたリフレッシュオフセットが適用され、コンテンツが複数のＶＲディスプレイに配信される。
【０００９】
この方法では、リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む。
【００１０】
この方法では、複数のディスプレイが動的リフレッシュをサポートし、リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定して、複数のＶＲによるリソースに対するニーズの競合を回避することをサポートし、選択されたリフレッシュオフセット及び動的リフレッシュレートを適用する。
【００１１】
この方法では、リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む。
【００１２】
この方法では、コンテンツを生成することは、単一のＧＰＵによって実行される。
【００１３】
この方法では、複数のＶＲディスプレイのコンテンツを生成することは、ＧＰＵを用いて、複数のＶＲディスプレイのうち１つのＶＲディスプレイのコンテンツを生成することと、別のＧＰＵを用いて、複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信することと、を含む。
【００１４】
この方法では、ＧＰＵがマスタとして構成され、別のＧＰＵがスレーブとして構成されることにより、マスタが、スレーブＧＰＵによって生成又は配信されたフレームの選択されたリフレッシュオフセットを制御する。
【００１５】
本発明の別の態様によれば、ビデオフレームデータを複数のＶＲディスプレイに配信する方法が提供される。この方法は、コンピューティングデバイスで第１アプリケーションを実行して、複数のＶＲディスプレイのコンテンツを生成することと、第２アプリケーションを用いて、複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、を含む。リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、第２アプリケーションを用いて、複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットが決定される。選択されたリフレッシュオフセットが適用され、コンテンツが複数のＶＲディスプレイに配信される。
【００１６】
この方法では、リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む。
【００１７】
この方法では、複数のディスプレイが動的リフレッシュをサポートする。また、この方法は、動きが検知された場合に、複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定して、動きに起因する、リソースに対する複数のＶＲディスプレイによるニーズの競合を回避することをサポートすることと、選択されたリフレッシュオフセット及び動的リフレッシュレートを適用することと、を含む。
【００１８】
この方法では、リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む。
【００１９】
この方法では、アプリケーションが、単一のＧＰＵによって実行される。
【００２０】
この方法では、複数のＶＲディスプレイのコンテンツを生成することは、ＧＰＵを用いて、複数のＶＲディスプレイのうちの１つのＶＲディスプレイのコンテンツを生成することと、別のＧＰＵを用いて、複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信することと、を含む。
【００２１】
この方法では、ＧＰＵがマスタとして構成され、別のＧＰＵがスレーブとして構成されることにより、マスタが、スレーブＧＰＵによって生成又は配信されたフレームの選択されたリフレッシュオフセットを制御する。
【００２２】
本発明の別の態様によれば、仮想現実コンピューティングシステムが提供される。このシステムは、コンピューティングデバイスと、プロセッサと、を含む。プロセッサは、複数のＶＲディスプレイのコンテンツを生成することと、複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを決定することと、選択されたリフレッシュオフセットを適用して、コンテンツを複数のＶＲディスプレイに配信することと、を行うための命令を実行するように動作可能である。
【００２３】
この仮想現実コンピューティングシステムは、複数のＶＲディスプレイを含む。
【００２４】
この仮想現実コンピューティングシステムでは、プロセッサは、ＣＰＵ、ＧＰＵ、又はＣＰＵ及びＧＰＵの組み合わせを含む。
【００２５】
この仮想現実コンピューティングシステムでは、コンピューティングデバイスが別のプロセッサを備え、プロセッサが、複数のＶＲディスプレイのうち１つのＶＲディスプレイのコンテンツを生成し、別のプロセッサが、複数のＶＲディスプレイのうち別のディスプレイのコンテンツを生成又は配信する。
【００２６】
この仮想現実コンピューティングシステムでは、プロセッサがマスタとして構成され、別のプロセッサがスレーブとして構成されることにより、マスタが、スレーブプロセッサによって生成又は配信されたフレームの選択されたリフレッシュオフセットを制御する。
【００２７】
この仮想現実コンピューティングシステムでは、複数のディスプレイが動的リフレッシュをサポートし、プロセッサは、リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定して、複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避することをサポートし、選択されたリフレッシュオフセット及び動的リフレッシュレートを適用する、ように動作可能である。
【００２８】
複数のＶＲヘッドマウントディスプレイへのビデオフレームの配信管理を改善する様々な仮想現実（ＶＲ）コンピューティングシステムが開示されている。ビデオコンテンツは、複数のＶＲヘッドマウントディスプレイに配信するために生成されてもよい。ＶＲコンピュータは、ＶＲコンポジタ又は他のアプリケーションを介して、複数のＶＲディスプレイによる部分的又は全体的なフレームレンダリングや非同期タイムワープ等のリアルタイム処理を必要とする競合タスクを監視する。例えば複数のＶＲディスプレイの検出等によって、リアルタイム又はほぼリアルタイムのコンピューティング要件を必要とする競合タスクが検知された場合に、アプリケーション及びシステムは、複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを計算して、リソースに対する複数のＶＲディスプレイによるニーズの競合を回避する。選択されたリフレッシュオフセットが適用され、コンテンツが複数のＶＲディスプレイに配信される。１つのヘッドマウントＶＲディスプレイを最初にリフレッシュし、第２ディスプレイを何分の１秒又は何分の１フレーム後にリフレッシュし、そして、コンピューティングデバイスに接続された他のＶＲディスプレイについてもリフレッシュすることができる。このスタガリングによって、リソース要求（例えば、非同期タイムワープやリアルタイム要件を有するフレームレンダリング部分に必要なリソース要求等）の競合が避けられる。さらなる詳細を以下に説明する。
【００２９】
以下に説明する図面では、同一の要素が複数の図に示されている場合、符号が大体において繰り返される。ここで図面、特に図１を参照すると、例示的なＶＲコンピューティングシステム１０（以下、システム１０）の概略図が示されている。システム１０は、コンピューティングデバイス１５と、１つ以上のヘッドマウントディスプレイと、を含み、このうち２つのヘッドマウントディスプレイは、それぞれＨＭＤ１及びＨＭＤ２と示されラベル付けされている。ＨＭＤは、ヘッドマウントディスプレイを表す。コンピューティングデバイス１５と、ＨＭＤ１及びＨＭＤ２との間の接続２０，２５は、必要に応じて有線接続又は無線接続とすることができる。コンピューティングデバイス１５は、プロセッサ又はＣＰＵ３０と、ＧＰＵ３５と、システムメモリ３８と、ストレージデバイス４０と、を含むことができる。ＣＰＵ３０及びＧＰＵ３５は、汎用ディスクリートデバイスであってもよいし、例えばアクセラレーテッドプロセッシングユニット等によって単一のデバイスに統合されてもよい。オプションとして、ＣＰＵ３０及びＧＰＵ３５の機能は、１つ以上の特定用途向け集積回路によって実行することができる。システムメモリは、ＲＡＭ、ＲＯＭ、又は、これら若しくは他のタイプのフラッシュメモリの組み合わせとすることができる。ストレージデバイス４０は、不揮発性コンピュータ可読媒体であり、任意のタイプのハードディスク、光学記憶ディスク、ソリッドステート記憶デバイス、ＲＯＭ、ＲＡＭ、又は、コンピュータ可読媒体を格納するための実質的に任意の他のシステムとすることができる。ストレージデバイス４０は、本明細書で開示される様々な機能を実行するための非一時的なコンピュータ可読命令を記憶するように動作可能である。
【００３０】
コンピューティングデバイス１５は、ＡＰＰ  １、ＡＰＰ  ２、…、ＡＰＰ  Ｎと略記載される、ドライバ、ソフトウェアアプリケーション又は他のタイプのアプリケーションとすることができる複数のアプリケーションを含むことができる。また、コンピューティングデバイス１５は、オペレーティングシステム４５と、ビデオドライバ５０と、を含むことができる。オペレーティングシステム４５と、ビデオドライバ５０と、アプリケーションＡＰＰ  １、ＡＰＰ  ２、…、ＡＰＰ  Ｎとは、ストレージデバイス４０に記憶され、システムメモリ３８に選択的にロードされてもよい。Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、又は、多くのアプリケーション固有タイプのオペレーティングシステムソフトウェアの使用等が可能である。ＡＰＰ  １、…、ＡＰＰ  Ｎのうち１つのアプリケーション（例えば、ＡＰＰ  １）を、ＨＭＤ１及びＨＭＤ２に表示されるコンテンツを生成するアプリケーション（例えば、ゲームや他のプログラム等）とすることができ、他のアプリケーション（例えば、ＡＰＰ  ２）を、ビデオドライバ５０を介して、コンテンツがＨＭＤ１及びＨＭＤ２にどのように表示されるかという態様を制御するＶＲコンポジタとすることができる。ビデオドライバ５０は、Ｖｓｙｎｃ又は垂直同期を実現するコードを含むことができる。Ｖｓｙｎｃは、異なるコンテンツを有する２つのレンダリングされたフレームの一部がディスプレイに表示される「ティアリング」と呼ばれる現象を回避するように設計されている。Ｖｓｙｎｃを有効にすると、各バッファフリップは、各リフレッシュの後にのみ発生し得る。
【００３１】
アプリケーションＡＰＰ  １及び／又はアプリケーションＡＰＰ  ２を、ストレージデバイス４０に常駐させ、実行中にシステムメモリ３８に選択的にロードすることができる。アプリケーションＡＰＰ  ２は、ＨＭＤ１及びＨＭＤ２のディスプレイを駆動するためのタイミング同期を提供するとともに、ＨＭＤ１及びＨＭＤ２に関して複数のＶＲディスプレイのリフレッシュ間隔を選択的にスキューするように動作可能である。技術的な目標は、フレームレンダリングや非同期タイムワープ（ＡＴＷ）要求等のリアルタイムワークロードの重複を回避するために、ＨＭＤ１とＨＭＤ２との間のリフレッシュタイミングにおけるいくつかの選択されたオフセットを提供することである。システム１０の動作の態様を、図３に関連して説明される。しかしながら、図３を参照する前に、複数のＨＭＤシステムにおける従来のフレームレンダリングを検討することが有用であろう。このような従来のフレームレンダリングを図２に示す。図２は、ＨＭＤ１のリフレッシュタイミング図５５と、対応するＨＭＤ２のリフレッシュタイミング図６０と、を示している。タイミング図５５，６０の各々に対していくつかのリフレッシュポイント（リフレッシュ１、リフレッシュ２、リフレッシュ３、リフレッシュ４）が示されており、ＨＭＤ１及びＨＭＤ２の両方が同じ一定のリフレッシュレート（すなわち、リフレッシュ１とリフレッシュ２との間、リフレッシュ２とリフレッシュ３との間、等の時間の逆数）を有すると想定されている。リフレッシュタイミング図５５は、「ハードウェアキュー」及び「ＨＭＤ１に表示」に対するタイミングアクティビティを示しており、「ハードウェアキュー」は、ＨＭＤ１に対するフレームレンダリングに関連するハードウェア（ＧＰＵ、ＡＰＵ等）のアクティビティであり、「ＨＭＤ１に表示」は、レンダリングされたコンテンツのＨＭＤ１上での実際の表示に至るアクティビティを示している。図５５に示すように、リフレッシュ１の後、リフレッシュ２の前のある時点で、ＨＭＤ１のフレームレンダリング（「レンダリング１」と略記される）が行われ、リフレッシュ１の直前にレンダリングされたコンテンツがＨＭＤ１に表示される（「ＨＭＤ１に送信」と略記される）。リフレッシュのタイミングは、ＨＭＤ２のフレームレンダリングに関連するハードウェアキューのタイミングアクティビティを示し、「ＨＭＤ２に表示」は、レンダリングされたコンテンツのＨＭＤ２上での実際の表示に至るアクティビティを示している。図６０に示すように、リフレッシュ１の後、リフレッシュ２の前のある時点で、ＨＭＤ２のフレームレンダリング（「レンダリング２」と略記される）が行われ、リフレッシュ１の直前にレンダリングされたコンテンツがＨＭＤ２に表示される（「ＨＭＤ２に送信」と略記される）。ここでは、レンダリング２は、リフレッシュ１のすぐ後の時刻ｔ０で開始し、レンダリング１は、レンダリング２が完了した直後に連続して時刻ｔ１に開始すると想定する。リフレッシュ２の直後に早送りする。リフレッシュタイミング図５５に示すように、時刻ｔ１で始まるレンダリング１動作に基づくコンテンツは、時刻ｔ２の「ＨＭＤ１に送信」が完了すると、最終的にＨＭＤ１に表示される。レンダリング１が時刻ｔ１で始まってから時刻ｔ２での「ＨＭＤ１に送信」までの間の「レイテンシＨＭＤ１」というラベルが付されたレイテンシに留意されたい。ここで、リフレッシュ２の直後のタイミング図６０を検討する。時刻ｔ０で始まるレンダリング２動作に基づくコンテンツは、時刻ｔ２の「ＨＭＤ２に送信」が完了すると、最終的にＨＭＤ２に表示される。しかし、時刻ｔ０に開始するレンダリング２と時刻ｔ２での「ＨＭＤ２に送信」との間の「レイテンシＨＭＤ２」というラベルが付されたレイテンシに留意されたい。レンダリング２及びレンダリング１を、リフレッシュ１とリフレッシュ２との間で処理が競合するため、時間をずらして配置する必要がある。つまり、レンダリング２を、リフレッシュ１からリフレッシュ２への期間の早い段階で実行する必要があり、これにより、レイテンシＨＭＤ２＞レイテンシＨＭＤ１になり、レイテンシＨＭＤ２は、ＨＤＭ２のユーザに対してジャダーを引き起こすのに十分な長さになる。
【００３２】
ここで、図３に注目すると、改善された動作の例、特に、ＨＭＤ１のリフレッシュタイミング図６５と、ＨＭＤ２の対応するリフレッシュタイミング図７０と、が示されている。タイミング図６５，７０の各々について、いくつかのリフレッシュポイント（リフレッシュ１、リフレッシュ２、リフレッシュ３、リフレッシュ４）が示されている。ＨＭＤ１のリフレッシュレートＲＨＭＤ１は、１／ＴＨＭＤ１で表される。ＴＨＭＤ１は、ＨＭＤ１に関する図６５のリフレッシュ１とリフレッシュ２との間、リフレッシュ２とリフレッシュ３との間等の期間である。ＨＭＤ２のリフレッシュレートＲＨＭＤ２は、１／ＴＨＭＤ２で表される。ＴＨＭＤ２は、ＨＭＤ２に関する図６０のリフレッシュ１とリフレッシュ２との間、リフレッシュ２とリフレッシュ３との間等の期間である。リフレッシュレートＲＨＭＤ１及びＲＨＭＤ２は、同じあってもよいし異なっていてもよく、ＨＭＤ１及びＨＭＤ２とコンピューティングデバイス１５とが動的リフレッシュレートに対応している場合には、動的に調整することができる。リフレッシュタイミング図６５は、「ハードウェアキュー」及び「ＨＭＤ１に表示」に対するタイミングアクティビティを示しており、ハードウェアキューは、ＨＭＤ１のフレームレンダリングに関連するハードウェア（ＧＰＵ、ＡＰＵ等）アクティビティであり、「ＨＭＤ１に表示」は、レンダリングされたコンテンツのＨＭＤ１上での実際の表示に至るアクティビティを示している。図６５に示すように、リフレッシュ１の後、リフレッシュ２の前の時刻ｔ４において、ＨＭＤ１のフレームレンダリング（「レンダリング１」と略記される）が開始され、リフレッシュ１の直前にレンダリングされたコンテンツがＨＭＤ１に表示される（「ＨＭＤ１に送信」と略記される）。レンダリング１がリフレッシュ２の近くで完了するように、時刻ｔ４が選択されることに注意されたい。図６５のリフレッシュ２の直後に早送りする。リフレッシュタイミング図６５に示すように、時刻ｔ４に始まるレンダリング１動作に基づくコンテンツは、時刻ｔ５の「ＨＭＤ１に送信」が完了すると、最終的にＨＭＤ１に表示される。レンダリング１が時刻ｔ４に始まってから時刻ｔ５での「ＨＭＤ１に送信」までの間の「レイテンシＨＭＤ１」というラベルが付されたレイテンシに留意されたい。次に、リフレッシュタイミング図７０のタイミングを検討する。リフレッシュタイミング図７０は、ハードウェアキュー及び「ＨＭＤ２に表示」のタイミングアクティビティを示しており、ハードウェアキューは、ＨＭＤ２のフレームレンダリングに関連するハードウェア（ＧＰＵ、ＡＰＵ等）のアクティビティであり、「ＨＭＤ２に表示」は、レンダリングされたコンテンツのＨＭＤ２上での実際の表示に至るアクティビティを示している。しかし、リフレッシュタイミング図７０のハードウェアキューのリフレッシュ１（つまり、ＨＭＤ２のリフレッシュ１）は、リフレッシュタイミング図６５に示すＨＭＤ１のリフレッシュ１に対して、選択されたリフレッシュオフセットだけ時間的にオフセットされていることに留意されたい。図７０に示すように、リフレッシュ１の後、リフレッシュ２の前の時刻ｔ６において、ＨＭＤ２のフレームレンダリング（「レンダリング２」と略記される）が開始され、リフレッシュ１の直前にレンダリングされたコンテンツがＨＭＤ２に表示される（「ＨＭＤ２に送信」と略記される）。時刻ｔ６は、レンダリング２がリフレッシュ２の近くで完了するように選択されていることに留意されたい。図７０のリフレッシュ２の直後に早送りする。リフレッシュタイミング図７０に示すように、時刻ｔ６から始まるレンダリング２動作に基づくコンテンツは、時刻ｔ７で「ＨＭＤ２に送信」が完了すると、最終的にＨＭＤ２に表示される。レンダリング１が時刻ｔ６で開始してから時刻ｔ７での「ＨＭＤ２に送信」までの「レイテンシＨＭＤ２」というラベルが付されたレイテンシに留意されたい。リフレッシュオフセットを使用することによって、ＨＭＤ１のリフレッシュ２の近くでレンダリング１を完了し、ＨＭＤ２のリフレッシュ２の近くでレンダリング２を完了することができる。その結果、レイテンシＨＭＤ１は、レイテンシＨＭＤ２と等しいかこれに近いものとなり、レイテンシＨＭＤ２は、図２に示す従来技術のレイテンシＨＭＤ２よりも短くなる。
【００３３】
引き続き図３を参照すると、リフレッシュオフセットは、フレームの一部（例えば、半分まで）又は１〜２ミリ秒等の他のソフトウェア制御間隔に基づいて選択されてもよい。選択されたリフレッシュオフセットの目的は、ＡＴＷ要求及び／又は部分的若しくは全体的なフレームレンダリング等のリアルタイム要件を有するＨＭＤ１及びＨＭＤ２タスクの時間間隔を空けることである。ＨＭＤ１及びＨＭＤ２とコンピューティングデバイス１５とが動的リフレッシュレートをサポートしている場合、リフレッシュレートＲＨＭＤ１，ＲＨＭＤ２は、異なるだけでなく、急激に変動してもよいことを理解すべきである。
【００３４】
ここで、図１及び図３に関連して、リフレッシュオフセットのいくつかの例示的な選択について説明する。１つの例示的な技術は、最大リフレッシュオフセットの総当たり選択を含む。例えば、フレームの一部に関する最大リフレッシュオフセットは、コンピューティングデバイス１５に接続されたヘッドマウントディスプレイの数の逆数によって与えられる。したがって、例えば、ＨＭＤ１及びＨＭＤ２がコンピューティングデバイス１５に接続されている場合、フレームの最大リフレッシュオフセットは、フレームの１／２となる。３つのＨＭＤが存在する場合、最大のリフレッシュオフセットは１／３フレームであり、４つのＨＭＤが存在する場合、最大のリフレッシュオフセットは１／４となる等である。リフレッシュオフセットの選択及び適用は、これらの例におけるＡＰＰ  ２等のＶＲコンポジタによって実行することができる。リフレッシュオフセットは、ＡＰＰ  ２等を介して又は他の方法でコンピューティングデバイス１５がＨＭＤの接続又は切断を検知すると、上下に調整することができる。
【００３５】
リフレッシュオフセットを選択する別の例示的な技術は、動的選択を含む。ここで、コンテンツ生成アプリケーションＡＰＰ  １がＨＭＤ１及びＨＭＤ２のフレームを生成している間に、ＶＲコンポジタ（ＡＰＰ  ２）は、排他的操作に要する時間を決定し、ＡＴＷ要求やフレームレンダリングの重複等の競合するリアルタイムタスク無しに当該排他的操作の実行を可能にするために、リフレッシュオフセットが何であるべきかをビデオドライバ５０に指示することができる。リフレッシュ（例えば、ＨＭＤ１のリフレッシュ１）の直後、ＶＲコンポジタ（ＡＰＰ  ２）は、ＨＭＤ１及びＨＭＤ２の追跡データをポーリングし、これによりＨＭＤ１及びＨＭＤ２の動きを検知し、さらに、リアルタイム要件を有する他の受信タスクも検知する。ＡＰＰ  ２は、そのデータが手元にある場合、ＡＴＷ要求と、ＨＭＤ１の動きに対するＡＴＷ補正を伴うフレームレンダリングとに要する時間を決定し、ＨＭＤ１の動きに対するレンダリングが、ＨＭＤ２等の競合するＨＭＤの動きに関連するＡＴＷ要求によって妨げられないように、リフレッシュオフセットが何であるべきかをビデオドライバ５０に指示する。ＡＰＰ  ２は、ビデオドライバ５０に対して、セーフティマージンを含めるように、すなわち、リフレッシュオフセットを必要よりも僅かに大きくするように指示することができる。次の瞬間に、ＨＭＤ１及びＨＭＤ２の他の動きが発生し、それに応じてＡＰＰ  ２がリフレッシュオフセットを再調整するように促す可能性がある。リフレッシュオフセットを動的に調整するこのプロセスは、ＨＭＤ１及びＨＭＤ２の動きに応じて繰り返し発生する可能性がある。勿論、この技術は、例えば、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ、Ｉｎｃ．によって提供される技術であるＦｒｅｅｓｙｎｃを用いて、ＨＭＤ１及びＨＭＤ２等の全てのＨＭＤの動的リフレッシュと適合させることができる。
【００３６】
特定のＶＲ設定では、リフレッシュレートが異なるＨＭＤを含むことができる。このような状況でも、ＡＰＰ  ２は、リアルタイムコンピューティングタスクの間隔を空けるようにリフレッシュオフセットを適用することができる。ここで、ＨＭＤ１のリフレッシュタイミング図７５と、対応するＨＭＤ２のリフレッシュタイミング図８０と、を示す図４に注目する。図４は、図３と同様であり、したがって、いくつかのリフレッシュポイント（リフレッシュ１、リフレッシュ２、リフレッシュ３、リフレッシュ４）が示されており、タイミング図７５，８０の各々についてハードウェアキュー及び「ＨＭＤ１に表示」又は「ＨＭＤ２に表示」がトレースしている。但し、上記のように定義されたリフレッシュレートは、ＨＭＤ１及びＨＭＤ２で異なることに留意されたい。何らかの補正が無い場合、リフレッシュレートが異なるＨＭＤ１及びＨＭＤ２は、不規則な「ビート」パターンを生成し、複数のＨＭＤ（ＨＭＤ１及びＨＭＤ２）のリフレッシュ間隔は、大きくなったり小さくなったりし、最終的に競合する。しかしながら、ＡＰＰ  ２（ＶＲコンポジタとして、図１を参照）は、リフレッシュオフセットを適用して、ＨＭＤ１のリフレッシュ１及びＨＭＤ２のリフレッシュ１と、ＨＭＤ１のリフレッシュ２及びＨＭＤ２のリフレッシュ２と等に間隔を空け、これらが競合しないようにすることができる。リフレッシュオフセットの他の方法を使用することもできる。複数のＨＭＤ（ＨＭＤ１及びＨＭＤ２）のリフレッシュの競合を回避できない場合、又は、競合しないが異なるＨＭＤからのリフレッシュマーカが互いに近すぎる場合には、ワークロードが競合する可能性があるためにレイテンシが長くなる可能性があることをＡＰＰ  ２に警告するフィードバックを生成することができる。
【００３７】
複数のＶＲ  ＨＭＤと共に使用するために、マルチＧＰＵの変形が想定されている。これに関連して、代替の例示的な変形を示すコンピューティングシステム１０′のブロック図である図５に注目する。この変形コンピューティングシステム１０′は、図１に示され、本明細書の他の箇所で説明されているコンピューティングシステム１０の属性の多くを共有する。例えば、複数のＶＲディスプレイＨＭＤ１及びＨＭＤ２が存在してもよく、これらの数は、必要に応じて３つ以上とすることができる。また、コンピューティングデバイス１５′は、ＧＰＵ３５と、システムメモリ３８と、ストレージデバイス４０と、Ｖｓｙｎｃを備えたＯＳ４５と、複数のアプリケーションＡＰＰ  １〜ＡＰＰ  Ｎと、ビデオドライバ５０と、を含むことができる。さらに、ＨＭＤ１及びＨＭＤ２は、上述した接続２０，２５を介してコンピューティングデバイス１５′に接続することができる。しかし、ここでは、コンピューティングデバイス１５′は、ＧＰＵ３５に加えて、１つ以上の追加のＧＰＵを含むことができ、そのうちの１つが図示され、ＧＰＵ８５とラベルが付されている。ＧＰＵ３５，８５は、必要に応じて３つ以上実装され得ることを理解されたい。ＧＰＵ３５，８５の両方は、互いにだけでなく、ストレージデバイス４０及びシステムメモリ３８への動作可能な接続を有することができる。ＡＰＰ  ２は、本明細書の他の箇所で説明されているようにＶＲコンポジタとして構成されている場合、ＨＭＤ１及びＨＭＤ２の各々のレンダリングを実行する命令を含むことができる。例えば、ＧＰＵ３５は、ＨＭＤ１用のコンテンツのレンダリングをタスクし、ＧＰＵ８５は、他のＶＲディスプレイＨＭＤ２用のコンテンツのレンダリングをタスクすることができる。一方のＧＰＵ（例えば、ＧＰＵ３５）をマスタとして指定し、他のＧＰＵ又はＧＰＵ８５をスレーブとして指定して、リフレッシュレート及びリフレッシュポイントのタイミング同期及びスキューイングを行うことが好ましい。タスク処理におけるこの区別、つまりマスタ及びスレーブは、ＧＰＵ３５とＧＰＵ８５とが同じ能力を有する場合、又は、より一般的には、一方のＧＰＵ（例えば、ＧＰＵ３５）がカード上のディスクリートＧＰＵ等のより高性能な集積回路であり、他方のＧＰＵ８５が、例えば統合グラフィックスチップにおいて性能は劣るが機能するＧＰＵである場合に実施することができる。図３に示され、本明細書の別の箇所で説明されるのと同じタイプのタイミング同期及びリフレッシュ間隔の選択的スキューは、図５に示すマルチＧＰＵの変形を使用して実施することができる。しかし、ここでは、マスタＧＰＵ３５に対して、スレーブＧＰＵ８５及びコンピューティングデバイス１５に組み込むことができる他のスレーブＧＰＵのリフレッシュ間隔の選択的スキューをタスクすることができる。追加の粒度レベルを用いることも可能である。タスク処理における他の区別化が可能である。例えば、より高性能なＧＰＵ３５は、ＨＭＤ１及びＨＭＤ２の両方についてリアルタイム要件を有するタスクに使用することができ、より性能の劣るＧＰＵ８５を、ＨＭＤ２の駆動等のように、要求の少ないタスクに使用することができる。別の変形例では、���り性能の劣るＧＰＵ８５を、レンダリングの一部に使用することができる。他の開示された変形例と同様に、動的リフレッシュは、例えば、Ｆｒｅｅｓｙｎｃ又はディスプレイＨＭＤ１及びＨＭＤ２の動的リフレッシュが提供される他の技術を用いて実施することができる。
【００３８】
いくつかの例示的なプロセスフローが、図６及び図７に示されている。図６は、動的リフレッシュが有効にされていない例示的なプロセスフローを示しており、後述する図７は、動的リフレッシュが有効にされている例示的なプロセスフローを示している。図６は、非同期であり得る２つの並列プロセスループ１００，１０２を示している。プロセスループ１００は、競合するリソース要求の検知、及び、選択されたリフレッシュオフセットの選択及び適用を処理する。したがって、ステップ１０５では、ＨＭＤが、図１に示すコンピューティングデバイス１５に追加されるか削除される。ステップ１１０では、ＶＲコンポジタ又は同様の機能として実装されたアプリケーション（例えば、ＡＰＰ  ２）は、複数のＶＲディスプレイのリアルタイムリソースに対するニーズの競合を検知する。これは、コンピューティングデバイス１５に接続されたＨＭＤ１、ＨＭＤ２等のＶＲディスプレイの数を検知することを伴う。単一のＶＲディスプレイが検出された場合には、リアルタイムリソースに対して競合するニーズが生成されないが、２つ以上の場合には生成される。ステップ１１５では、リアルタイムリソースに対する１つ以上のＶＲディスプレイによるニーズの競合が検知された場合、プロセスフローはステップ１２０に進み、ＡＰＰ  ２は、リアルタイムリソースに対するニーズの競合を回避するために、適切なリフレッシュオフセットを決定する。この決定では、ＨＭＤ１、ＨＭＤ２等の競合するＶＲディスプレイがいくつ検出されたかが考慮される。ＶＲディスプレイが追加された場合にはより多くのリフレッシュオフセットを必要とし、ＶＲディスプレイが削除された場合には、より少ないリフレッシュオフセットを必要とする。次に、ステップ１２５では、ＡＰＰ  ２は、リフレッシュオフセットを適用して、リアルタイムリソースのニーズの競合を回避し、次いで、プロセスは、ステップ１３０のループ終了に進む。しかし、ステップ１１５において、１つ以上のＶＲディスプレイによるリアルタイムリソースに対するニーズの競合が検知されない場合には、プロセスフローは、ステップ１３０のループ終了にスキップする。ループは、ＶＲディスプレイが接続又は切断される毎にトリガされる。コンテンツ生成ループ１０２は、並行して進行する。したがって、ステップ１３５から開始して、ステップ１４０では、ＡＰＰ  １は、ＨＭＤ１、ＨＭＤ２等の複数のＶＲディスプレイのコンテンツを生成する。ステップ１４５は、プロセスループ１００のステップ１２０，１２５の結果を使用する条件である。ステップ１４５において、１つのＶＲディスプレイのみが検出された場合等のように、リフレッシュオフセットが適用されない場合には、ループ１０２は、ステップ１５０に進み、リフレッシュオフセット無しでフレームをレンダリングし、次いでステップ１５５に進み、レンダリングされたフレームを単一のＶＲディスプレイに配信し、そして、ステップ１４０に戻る。しかし、ステップ１４５において、複数のＶＲディスプレイが検出された場合等のように、リフレッシュオフセットが適用される場合には、ループは、ステップ１６０にスキップし、リフレッシュオフセットを用いてフレームがレンダリング���れ、レンダリングされたフレームがステップ１６５でＨＭＤ１、ＨＭＤ２等の複数のＶＲディスプレイに配信される。次いで、ループ１０２は、ステップ１４０にループバックする。
【００３９】
別の例示的な変形では、プロセスフローは、Ｆｒｅｅｓｙｎｃ又は他のタイプの動的リフレッシュプログラムによって動的リフレッシュを使用することができる。ここで図７を参照すると、ステップ２００での開始の後、ステップ２０５において動的リフレッシュが有効にされる。ステップ２１０において、ＡＰＰ  １等のアプリケーションは、ディスプレイＨＭＤ１及びＨＭＤ２等の複数のＶＲディスプレイのコンテンツを生成する。次に、ステップ２１５において、アプリケーションＡＰＰ  ２は、複数のＶＲディスプレイによるリアルタイムリソースに対するニーズの競合を検知する。例えば、上述したように、ＡＰＰ  ２は、ＡＴＷ要求と、例えばＨＭＤ１及びＨＭＤ２の部分的又は全体的なフレームレンダリングとのニーズの競合を検知する。ステップ２２０においてニーズの競合が検知されない場合、プロセスフローは、ステップ２２５に進み、フレームがレンダリングされ、次にステップ２３０において、レンダリングされたフレームが複数のＶＲディスプレイに配信される。ステップ２３０に続いて、ステップ２１０に戻る。しかし、ステップ２２０において、アプリケーションＡＰＰ  ２が、１つ以上のＶＲディスプレイのうち複数のＶＲディスプレイによるリアルタイムリソースに対するニーズの競合を検知した場合には、プロセスは、ステップ２３５に進む。ここで、ＡＰＰ  ２は、リアルタイムリソースに対するニーズの競合を回避するために、リフレッシュオフセット及び動的リフレッシュレートを決定する。次に、ステップ２３０において、ＡＰＰ  ２は、選択されたリフレッシュオフセット及び動的リフレッシュレートを適用して、リアルタイムリソースに対するニーズの競合を回避し、その後、ステップ２４５において、選択されたリフレッシュオフセット及び動的リフレッシュレートでフレームがレンダリングされる。次に、プロセスフローは、ステップ２３０に分岐し、レンダリングされたフレームが複数のＶＲディスプレイに配信される。勿論、図６及び図７のプロセスフローは、１つ以上のアプリケーション及びオペレーティングシステム等を用いて実現することができる。換言すれば、記載されたステップを実施するために、様々なレベルのソフトウェア統合及びハードウェアを用いることができる。
【００４０】
本発明は、様々な修正及び代替形態を受け入れることができるが、特定の変形例が、図面に例として示され、本明細書で詳細に説明されている。しかしながら、本発明は、開示された特定の形態に限定されるのを意図していないことを理解されたい。むしろ、本発明は、添付の特許請求の範囲によって定義される本発明の趣旨及び範囲内にある全ての修正、均等物及び代替物をカバーするものである。
【図１】
2020519929.tif 000003
【図２】
2020519929.tif 000004
【図３】
2020519929.tif 000005
【図４】
2020519929.tif 000006
【図５】
2020519929.tif 000007
【図６】
2020519929.tif 000008
【図７】
2020519929.tif 000009
【手続補正書】
【提出日】令和2年1月10日(2020.1.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオフレームデータを複数のＶＲディスプレイに配信する方法であって、
複数のＶＲディスプレイのコンテンツを生成することと、
前記複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、前記複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを決定することと、
前記選択されたリフレッシュオフセットを適用することと、
前記コンテンツを前記複数のＶＲディスプレイに配信することと、を含む、
方法。
【請求項２】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項１の方法。
【請求項３】
前記複数のディスプレイは動的リフレッシュをサポートし、
前記方法は、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲディスプレイによるリソースに対するニーズの競合を回避するのをサポートするために、前記複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定することと、
前記選択されたリフレッシュオフセット及び前記動的リフレッシュレートを適用することと、を含む、
請求項１の方法。
【請求項４】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項３の方法。
【請求項５】
前記コンテンツを生成することは、単一のＧＰＵによって実行される、
請求項１の方法。
【請求項６】
複数のＶＲディスプレイのコンテンツを生成することは、
ＧＰＵを用いて、前記複数のＶＲディスプレイのうち１つのＶＲディスプレイのコンテンツを生成することと、
別のＧＰＵを用いて、前記複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信することと、を含む、
請求項１の方法。
【請求項７】
前記ＧＰＵがマスタとして構成され、前記別のＧＰＵがスレーブとして構成され、前記マスタは、スレーブＧＰＵによって生成又は配信されたフレームの前記選択されたリフレッシュオフセットを制御する、
請求項６の方法。
【請求項８】
ビデオフレームデータを複数のＶＲディスプレイに配信する方法であって、
コンピューティングデバイスで第１アプリケーションを実行して、複数のＶＲディスプレイのコンテンツを生成することと、
第２アプリケーションを用いて、リアルタイム要件を有するリソースに対するニーズの競合を検知することと、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、前記第２アプリケーションを用いて、前記複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを決定することと、
前記選択されたリフレッシュオフセットを適用することと、
前記コンテンツを前記複数のＶＲディスプレイに配信することと、を含む、
方法。
【請求項９】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項８の方法。
【請求項１０】
前記複数のディスプレイは動的リフレッシュをサポートし、
前記方法は、
動きが検知された場合に、前記複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定して、前記動きに起因する、リソースに対する前記複数のＶＲディスプレイによる要求の競合を回避することをサポートすることと、
前記選択されたリフレッシュオフセット及び前記動的リフレッシュレートを適用することと、を含む、
請求項８の方法。
【請求項１１】
前記リソースは、レンダリング及び非同期タイムワープ要求のための計算を含む、
請求項１０の方法。
【請求項１２】
前記第１アプリケーションは、単一のＧＰＵによって実行される、
請求項８の方法。
【請求項１３】
複数のＶＲディスプレイのコンテンツを生成することは、
ＧＰＵを用いて、前記複数のＶＲディスプレイのうち１つのＶＲディスプレイのコンテンツを生成することと、
別のＧＰＵを用いて、前記複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信することと、を含む、
請求項８の方法。
【請求項１４】
前記ＧＰＵがマスタとして構成され、前記別のＧＰＵがスレーブとして構成され、前記マスタは、スレーブＧＰＵによって生成又は配信されたフレームの前記選択されたリフレッシュオフセットを制御する、
請求項１３の方法。
【請求項１５】
仮想現実コンピューティングシステムであって、
コンピューティングデバイスと、
プロセッサと、を備え、
前記プロセッサは、
複数のＶＲディスプレイのコンテンツを生成することと、
前記複数のＶＲディスプレイのリアルタイム要件を有するリソースに対するニーズの競合を検知することと、
リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避するために、前記複数のＶＲディスプレイをリフレッシュするための選択されたリフレッシュオフセットを決定することと、
前記選択されたリフレッシュオフセットを適用することと、
前記コンテンツを前記複数のＶＲディスプレイに配信することと、
を行うための命令を実行するように動作可能である、
仮想現実コンピューティングシステム。
【請求項１６】
前記複数のＶＲディスプレイを備える、
請求項１５の仮想現実コンピューティングシステム。
【請求項１７】
前記プロセッサは、ＣＰＵ、ＧＰＵ、又は、ＣＰＵ及びＧＰＵの組み合わせを含む、
請求項１５の仮想現実コンピューティングシステム。
【請求項１８】
前記コンピューティングデバイスは、別のプロセッサを備え、
前記プロセッサが前記複数のＶＲディスプレイのうち１つＶＲディスプレイのコンテンツを生成し、前記別のプロセッサが前記複数のＶＲディスプレイのうち別のＶＲディスプレイのコンテンツを生成又は配信する、
請求項１５の仮想現実コンピューティングシステム。
【請求項１９】
前記プロセッサがマスタとして構成され、前記別のプロセッサがスレーブとして構成され、前記マスタは、スレーブプロセッサによって生成又は配信されたフレームの前記選択されたリフレッシュオフセットを制御する、
請求項１８の仮想現実コンピューティングシステム。
【請求項２０】
前記複数のディスプレイは動的リフレッシュをサポートし、
前記プロセッサは、リアルタイム要件を有するリソースに対するニーズの競合が検知された場合に、
前記複数のＶＲディスプレイのリソースに対するニーズ間の競合を回避することをサポートするために、前記複数のＶＲディスプレイをリフレッシュするための選択された動的リフレッシュレートを決定することと、
前記選択されたリフレッシュオフセット及び前記動的リフレッシュレートを適用することと、
を行うように動作可能である、
請求項１５の仮想現実コンピューティングシステム。
【国際調査報告】
2020519929.tif 000010
2020519929.tif 000011