Windows 圖形顯示驅動開發-WDDM 3.0功能- 硬件翻轉隊列(一)

WDDM 3.0 之前的翻轉隊列模型

許多新式顯示控制器支持對按順序顯示的多個幀排隊的能力。 從 WDDM 2.1 開始,OS 支持將在下一個 VSync 中顯示的多個未完成的翻轉覆蓋請求。 顯示微型端口驅動程序 (KMD) 通過 DXGK_DRIVERCAPS 中的 MaxQueuedMultiPlaneOverlayFlipVSync 值來表示這種支持。 此功能對于減少高幀速率游戲方案中的延遲非常有用,在這種方案中,多個幀以間隔 0 依次呈現,目的是只顯示最近的幀。

在視頻播放方案中,要按順序顯示的多個未來幀的內容是預先已知的,并且可以排隊到 GPU。 這種提前排隊允許 CPU 在處理排隊幀時進入低功率狀態,從而節省大量電源。 但是,在 WDDM 3.0 之前,OS 沒有機制提交需要在屏幕上保留至少一個 VSync 間隔的幀,而無需進一步的 CPU 干預。 基本硬件翻轉隊列一節介紹了一種解決方案,該解決方案使 CPU 能夠進入低功耗狀態,并將排隊的幀處理卸載到 GPU。

在 WDDM 3.0 之前的游戲方案中,GPU 完成將場景呈現到交換鏈后緩沖區后,會有一個到 CPU 的往返,以便將請求提交以將幀內容呈現到屏幕。 對于接近 VSync 的繁重 GPU 工作負荷,此往返可能會導致幀延遲并錯過預期目標時間,從而導致可觀察的幀故障。 “高級硬件翻轉隊列”部分引入了一種機制,用于避免此 CPU 往返,并將已完成的幀呈現給屏幕且延遲較低。 高級硬件翻轉隊列要求同時具有基本硬件翻轉隊列和 GPU 硬件計劃階段 2 功能。

基本硬件翻轉隊列

下圖演示了呈現三個幀的情況,每個幀在屏幕上停留一個 VSync 間隔

?

示意圖中的填充圖案顯示了?Dxgkrnl?軟件翻轉隊列處理和應用程序線程必須喚醒并執行 CPU 工作的時間。 在每個 VSync 上,顯示控制器必須向 OS 發出完成翻轉的 CPU 通知,并且 OS 必須提交下一個翻轉請求。 應用程序還必須在每個 VSync 上喚醒,并查詢當前統計信息,以最終了解三幀中的最后一幀何時顯示。

從 WDDM 3.0 開始,提供了可以向顯示控制器隊列提交多個未來幀的硬件翻轉隊列 DDI。 如前所述,此機制允許 GPU 的 CPU 和部分在顯示控制器處理多個排隊幀時轉換到較低電源狀態。 此轉換可提高支持硬件的視頻播放方案的電源效率。

下圖說明了建議的體系結構。

借助硬件翻轉隊列方法,應用程序和?Dxgkrnl?CPU 組件在?v2?和?v4?時間之間的兩個 VSync 間隔內處于完全空閑狀態,從而使 CPU 能夠進入低功耗狀態。 只有當應用程序請求等待的幀?N+2?完成時,CPU 才會得到通知。

高級硬件翻轉隊列

在 WDDM 3.0 之前的游戲方案中,GPU 完成將場景呈現到交換鏈后緩沖區后,會有一個到 CPU 的往返,以便將請求提交以將幀內容呈現到屏幕。 下圖顯示了此方案。

如果呈現完成得離 VSync 太近,這種往返的代價可能會導致幀錯過目標,如下圖所示。

?

一些顯示器控制器本身支持等待條件,允許顯示在 GPU 完成呈現幀時提交翻轉請求,而無需 CPU 往返。 由于硬件翻轉隊列可以將已完成的幀?N?提交到沒有 CPU 往返的顯示器,因此它可能會避免錯過的幀,如下圖所示:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73654.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73654.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73654.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Python深度學習》第二講:深度學習的數學基礎

本講來聊聊深度學習的數學基礎。 深度學習聽起來很厲害,其實它背后是一些很有趣的數學原理。本講會用簡單的方式解釋這些原理,還會用一些具體的例子來幫助你理解。 2.1 初識神經網絡 先從一個簡單的任務開始:識別手寫數字。 想象一下,你有一堆手寫數字的圖片,你想讓計算…

車載DoIP測試 --- CANoe DoIP中如何配置路由激活請求中的 OEM 特定場(RoutingActivationWithOEMSpecific)

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 簡單,單純,喜歡獨處,獨來獨往,不易合同頻過著接地氣的生活,除了生存溫飽問題之外,沒有什么過多的欲望,表面看起來很高冷,內心熱情,如果你身…

JDBC數據庫連接池技術詳解——從傳統連接方式到高效連接管理

1. 引言 在開發數據庫應用時,我們通常需要與數據庫建立連接并執行SQL語句。傳統的JDBC連接方式雖然簡單直接,但在高并發場景下容易帶來性能問題,甚至導致系統崩潰。因此,引入數據庫連接池(Connection Pool&#xff09…

【工具類】PDF文件轉圖片

PDF文件轉文件 1. 引入Maven依賴 主要使用了 pdfbox 包與 hutool 包。 pdfbox 負責 pdf 到圖片的轉換&#xff1b; hutool 負責文件讀取轉換。 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version…

使用DeepSeek,優化斐波那契數函數,效果相當不錯

下面這段代碼定義了一個遞歸函數 fibonacci&#xff0c;用于計算第 n 個斐波那契數。 def fibonacci(n):if n < 1:return nelse:return fibonacci(n - 1) fibonacci(n - 2)雖然代碼邏輯正確&#xff0c;但其性能較差&#xff0c;尤其是對于較大的 n 值&#xff0c;其復雜度…

Forward Looking Radar Imaging by Truncated Singular Value Decomposition 論文閱讀

Forward Looking Radar Imaging by Truncated Singular Value Decomposition and Its Application for Adverse Weather Aircraft Landing 1. 論文的研究目標與意義1.1 研究目標1.2 實際問題與意義2. 論文的創新方法與公式解析2.1 信號建模與問題轉化2.2 截斷奇異值分解(TSVD)…

provide/inject源碼實現

在 Vue 3 中&#xff0c;provide 和 inject 是通過 Vue 的響應式系統和組件實例機制實現的&#xff0c;底層是依賴 Vue 3 中的 Proxy 和 Reactive 來實現跨層級的數據傳遞和響應式綁定。以下是一個簡化版的實現邏輯&#xff0c;幫助理解 Vue 3 中 provide 和 inject 是如何實現…

Unix時間戳BKP備份寄存器RTC實時時鐘

Unix時間戳 Unix時間戳&#xff0c;也稱為POSIX時間或Epoch時間&#xff0c;是一種在Unix和類Unix操作系統中使用的時間表示方法。它表示的是自1970年1月1日00:00:00 UTC&#xff08;協調世界時&#xff09;至當前時間經過的秒數&#xff0c;不考慮閏秒。Unix時間戳通常以秒為…

【Linux內核系列】:進程板塊與文件板塊的綜合

&#x1f525; 本文專欄&#xff1a;Linux &#x1f338;作者主頁&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客勵志語錄&#xff1a; 人生中成功只是一時的&#xff0c;失敗卻是人生的主旋律&#xff0c;但是如何面對失敗卻把人分成了不同的樣子&#xff0c;有的人會被…

CellOracle|基因擾動研究基因功能|基因調控網絡+虛擬干預

在gzh“生信小鵬”同步文章 論文來源: 發表期刊:Nature發表時間:2023年2月23日論文題目:Dissecting cell identity via network inference and in silico gene perturbation研究團隊:Kenji Kamimoto 等,華盛頓大學醫學院1. 研究背景與問題提出 細胞身份(Cell Identit…

專線、云 和 物聯網(IoT)

專線、云 和 物聯網&#xff08;IoT&#xff09; 是現代信息與通信技術&#xff08;ICT&#xff09;領域的三大重要組成部分&#xff0c;它們在企業和個人的數字化轉型中扮演著關鍵角色。以下是對這三者的詳細介紹及其相互關系&#xff1a; 1. 專線&#xff08;Leased Line&…

[Lc14_priority_queue] 最后一塊石頭重量 | 數據流中的第 K 大元素 | 前K個高頻單詞 | 數據流的中位數

目錄 1.最后一塊石頭的重量 題解 2.數據流中的第 K 大元素 題解 3.前K個高頻單詞 題解 代碼 ?4.數據流的中位數 題解 在C中&#xff0c;使用標準庫中的priority_queue&#xff0c;默認情況下它是一個最大堆&#xff08;即大堆排序&#xff09;&#xff0c;這意味著最…

XSS漏洞靶場---(復現)

XSS漏洞靶場—&#xff08;復現&#xff09; 反射型 XSS 的特點是攻擊者誘導用戶點擊包含惡意腳本的 URL&#xff0c;服務器接收到請求后將惡意腳本反射回響應頁面&#xff0c;瀏覽器執行該腳本從而造成攻擊&#xff0c;惡意腳本不會在服務器端存儲。 Level 1(反射型XSS) 此漏…

2025/3.17 郭院安排會議與南京銀行參訪

目錄 *郭院會議&#xff1a;服務外包*1.會遇到的問題以及解決方案2.考慮行業目前會碰到的瓶頸3.后端應該呈現處理圖像的過程4.記得做報告、文檔說明和視頻等工作 *南京銀行&#xff08;鑫合易家&#xff09;參訪記錄*1. 風險評分業務流程筆記![在這里插入圖片描述](https://i-b…

Cloud Ace 宣布成為 Langfuse 亞太地區首個代理商,提供 LLM 全鏈路解決方案

Cloud Ace 宣布正式代理 Langfuse 產品&#xff0c;是 Langfuse 在亞太地區唯一的官方授權經銷商&#xff0c;全面負責其商用許可證的銷售、部署與技術支持服務。通過此次合作&#xff0c;Cloud Ace 將充分發揮 Langfuse 的先進技術能力與行業專業知識&#xff0c;為企業級客戶…

Helm 的倉庫管理與 Chart 搜索

在使用 Helm 管理 Kubernetes 應用的過程中&#xff0c;倉庫管理與 Chart 搜索是兩個核心功能。通過 Helm 倉庫&#xff0c;用戶可以方便地存儲、分享和獲取 Helm Chart&#xff0c;而搜索功能則幫助用戶快速找到所需的 Chart。本文將詳細介紹 Helm 倉庫的概念、管理方法以及如…

Matlab 汽車振動多自由度非線性懸掛系統和參數研究

1、內容簡介 略 Matlab 169-汽車振動多自由度非線性懸掛系統和參數研究 可以交流、咨詢、答疑 2、內容說明 略 第二章 汽車模型建立 2.1 汽車懸架系統概述 2.1.1 懸架系統的結構和功能 2.1.2 懸架分類 2.2 四分之一車輛模型 對于車輛動力學&#xff0c;一般都是研究其懸…

免訓練指標(Zero-Cost Proxies)

1. 什么是免訓練指標&#xff08;Zero-Cost Proxies&#xff0c;ZC proxies&#xff09;&#xff1f; 免訓練指標是一類 無需完整訓練模型即可評估其性能的度量方法&#xff0c;主要用于提高 神經架構搜索&#xff08;NAS&#xff09; 的效率。 傳統 NAS 需要訓練候選架構來評…

C語言 —— 此去經年夢浪蕩魂音 - 深入理解指針(卷二)

目錄 1. 數組名與地址 2. 指針訪問數組 3.一維數組傳參本質 4.二級指針 5. 指針數組 6. 指針數組模擬二維數組 1. 數組名與地址 我們先看下面這個代碼&#xff1a; int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[0]; 這里我們使用 &arr[0] 的方式拿到了數…

基于Python pyscard庫采集ACS ACR122U NFC讀卡器數據的詳細操作步驟

步驟1&#xff1a;安裝驅動 1. 下載驅動&#xff1a; - 訪問ACS官網的驅動下載頁面&#xff1a;[ACR122U驅動下載](https://www.acs.com.hk/en/drivers/6/acr122u-nfc-reader/)。 - 選擇適用于Windows的驅動&#xff08;如 ACR122U Driver (Windows) V3.05.02.zip&#xff09;…