Windows 图形显示驱动开发-WDDM 2.9功能- 支持跨适配器资源扫描 (CASO)(一)

CASO 前性能 (双复制路径)

从 Windows 8.1 (WDDM 1.3) 开始,D3D9 和 DXGI 应用程序能够在多适配器配置(如混合系统)上使用跨适配器演示支持。 借助此支持,呈现是在呈现适配器 (通常是离散 GPU) 上完成的,然后完成两个副本,将内容获取到显示适配器 (通常是集成 GPU) ,以便扫描到显示器。

  • 复制 1 从呈现适配器资源复制到跨适配器资源。
  • 复制 2 从跨适配器资源复制到显示适配器资源。

这些副本可能会限制应用的性能,尤其是针对低延迟而优化的应用。

使用 CASO 优化翻转演示文稿模型 (单复制路径)

Windows Server 2022 (WDDM 2.9) 及更高版本的驱动程序可以声明对适当的跨适配器资源层的支持,从而允许系统的表示堆栈优化跨适配器呈现。 无论设备配置如何,驱动程序都必须根据自己的适配器功能声明对此功能的支持,以便功能值在所有适用的硬件配置之间缩放。 此缩放包括但不限于具有动态附加其他外部 GPU 的单个 GPU 设备。

如果显示适配器支持 CASO,则系统仅执行从呈现适配器图面到跨适配器图面的第一次复制,然后直接从跨适配器图面扫描。 此功能可减少处理、带宽、电源和延迟。

CASO 功能是为翻转演示模型的 DXGI 运行时实现的。

CASO 的 DDI 更改和添加

指示对跨适配器资源的层支持

DXGI 实现对跨适配器资源的三层支持:

  • 向/从跨适配器资源复制 (最低层)
  • 从跨适配器资源进行纹理化
  • 扫描跨适配器资源 (最高层)

每个较高层支持都必须保证其下面的层 () 得到支持。 例如,若要声明对跨适配器资源的扫描支持,驱动程序还必须支持纹理和复制。

驱动程序通过在 DXGK_DRIVERCAPS 中设置以下 DXGK_VIDMMCAPS 位字段值来声明 对每个层的支持。MemoryManagementCaps:

层含义DXGK_VIDMMCAPS值
第 1 层复制支持:向/从跨适配器资源复制


CrossAdapterResource (通过D3DKMT_WDDM_1_3_CAPS中的SupportCrossAdapterResource 位由图形内核公开给用户模式​

第 2层纹理支持:跨适配器资源的纹理)CrossAdapterResourceTexture (包括对着色器资源视图、无序访问视图和呈现目标)
第 3层CASO 支持:从跨适配器资源进行扫描CrossAdapterResourceScanout

如果图形内核未以超集方式指示对三个层的支持,则适配器启动失败。 例如,如果设置了 CrossAdapterResourceTexture ,则必须设置 CrossAdapterResource 。

第 1 层支持要求

跨适配器资源的定义仍与用于 WDDM 1.3 第 1 层复制支持的相同。

第 2 层支持要求

这些要求类似于 D3D12 用户模式驱动程序 CrossAdapterRowMajorTextureSupported 功能 (上限) ;也就是说,设备支持着色器资源视图、无序访问视图和呈现跨适配器行主纹理的目标视图。 但是,尽管 D3D12 的 CrossAdapterRowMajorTextureSupported 需要支持所有相关纹理格式,但此第 2 层上限至少只需要对第 3 层支持要求中列出的 DisplayScanOut 格式的支持。

由于 D3D12 的 cap 是此第 2 层上限的超集, 因此 D3D12CreateDevice 还会验证是否设置了内核驱动程序的 CrossAdapterResourceTexture cap(如果设置了 其 CrossAdapterRowMajorTextureSupported cap),并且如果未设置,则无法创建设备。

第 3 层支持要求

系统必须能够对以下最低规范的跨适配器资源执行支持的翻转功能(如 DXGK_FLIPCAPS 中驱动程序声明的那样):

  • 跨适配器主缓冲区大小为 1920 x 1080 或更小
  • 任何受支持的 DisplayScanOut 格式的缓冲区像素格式。 自 Windows 10 版本 20H1 起,这些格式为:
  1. DXGI_FORMAT_R16G16B16A16_FLOAT
  2. DXGI_FORMAT_R10G10B10A2_UNORM
  3. DXGI_FORMAT_R8G8B8A8_UNORM
  4. DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
  5. DXGI_FORMAT_B8G8R8A8_UNORM
  6. DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

如果驱动程序支持扫描更多纹理格式的跨适配器资源,则它还必须支持根据层支持要求从这些格式进行纹理处理。

如果驱动程序支持扫描更多纹理格式的跨适配器资源,则它还必须支持根据层支持要求从这些格式进行纹理处理。

备注:

DXGI 运行时查询驱动程序以获取其 CrossAdapterResourceScanout 支持。 如果受支持,则表示堆栈会进入单一复制路径。 因此,声明支持 CrossAdapterResourceScanout 的驱动程序需要支持 DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3 DDI。 此外,对于上述最低规范的跨适配器主节点,它还必须支持所有相关的与演示文稿相关的 DDI。 例如: pfnCreateResource、 pfnCheckMultiplaneOverlaySupport 和 pfnPresentMultiplaneOverlay/pfnPresent1。 有关详细信息,请参阅 多平面覆盖支持。 有关退出 CASO 的详细信息,请参阅 用于呈现优化的驱动程序 DDI.

 这两个层都附带用于验证的 HLK 测试 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37499.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

调用feapder作为子程序时setting.py文件不起作用

feaper 官方文档地址: 简介及安装 - feapder官方文档|feapder-document 问题: 在最近的开发中需要调用feapder作为主程序调用的子程序时发现自动入库时无法入库,通过查看日志信息发现连接数据库时被拒绝连接了,但是我的setting.p…

【STM32】SPI通信协议W25Q64Flash存储器芯片(学习笔记)

通信接口部分有介绍SPI:【STM32】USART串口协议&串口外设-学习笔记-CSDN博客 SPI通信协议 SPI通信 SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(Serial Clock&…

刘强东突然发声:不该用算法压榨最底层兄弟!东哥,真正的人民企业家

今天忙了一天,很累,准备睡觉的时候,看到网上盛传的刘强东的朋友圈,东哥又在朋友圈发文了。 说实话,看完之后,感动,真的感动。 尤其是当我看到这两句话的时候。 1、我们所学的知识、商业模式、技…

Maven安装与环境配置

首先我们先介绍一些关于Maven的知识,如果着急直接看下面的安装教程。 目录 Maven介绍 Maven模型 Maven仓库 Maven安装 下载 安装步骤 Maven介绍 Apache Maven是一个项目管理和构建工具,它基于项目对象模型(Project Object Model , 简称: POM)的概念…

C++ 语法之数组指针

一维数组: 如果我们定义了一个一维数组,那么这个数组名,就是指向第一个数组元素的地址,也即,是整个数组分配的内存空间的首地址。 比如 int a[3]; 定义了一个包含三个元素的数组。因为一个int占4个字节,那…

021-TCMalloc

TCMalloc 以下是对TCMalloc的技术调研报告,结合原理、代码实现、优化参数及性能对比的综合分析: 一、TCMalloc核心原理 架构分层 TCMalloc采用三级缓存结构,具体流程参考下图: ┌─────────────┐ ┌───…

华为网路设备学习-16 虚拟路由器冗余协议(VRRP)

VRRP是针对干线上三层网络设备(如:路由器、防火墙等)的网络虚拟化技术,提供冗余和状态监测等功能。确保在网络中的单点故障发生时,能够快速切换到备份设备,从而保证网络通信的连续性和可靠性。‌ VRRP通过…

【华为Pura先锋盛典】华为Pura X“阔折叠”手机发布:首次全面搭载HarmonyOS 5

文章目录 前言一、阔感体验,大有不同二、鸿蒙AI,大有智慧三、便携出行,大有不同四、首款全面搭载 HarmonyOS 5 的手机五、卓越性能,可靠安心六、红枫影像,大放光彩预热:鸿蒙电脑HarmonyOS 5 升级计划小结 前…

算法题(103):数独

审题: 本题需要我们找出数独的解,并打印出来 时间复杂度分析: 本题是9*9的数独格子,所以数据量小于25,可以使用2^n的算法 思路: 方法一:深度优先搜索 首先确定搜索及插入策略: 我们采…

sougou AI close

sougou AI close 全局禁用《AI 汪仔》 现在丝滑流畅很多了

二分查找上下界问题的思考

背景 最近在做力扣hot100中的二分查找题目时,发现很多题目都用到了二分查找的变种问题,即二分查找上下界问题,例如以下题目: 35. 搜索插入位置 74. 搜索二维矩阵 34. 在排序数组中查找元素的第一个和最后一个位置 它们不同于查找…

springboot实现调用百度ocr实现身份识别+二要素校验

一、技术选型 OCR服务&#xff1a;推荐使用百度AI 二、实现 1.注册一个服务 百度智能云控制台https://console.bce.baidu.com/ai-engine/ocr/overview/index?_1742309417611 填写完之后可以获取到app-id、apiKey、SecretKey这三个后面文件配置会用到 2、导入依赖 <!-- …

【数据分享】2000—2024年我国乡镇的逐月归一化植被指数(NDVI)数据(Shp/Excel格式)

之前我们分享过2000—2024年我国省市县三级逐月归一化植被指数&#xff08;NDVI&#xff09;数据&#xff0c;该数据是基于NASA定期发布的MOD13A3数据集中的月度NDVI栅格数据&#xff08;可查看之前的文章获悉详情&#xff09;计算得出。很多小伙伴拿到数据后反馈是否可以处理出…

背包问题——动态规划的经典问题包括01背包问题和完全背包问题

01背包问题&#xff1a;给你多个物品每个物品只能选一次&#xff0c;要你在不超过背包容积&#xff08;或者恰好等于&#xff09;的情况下选择装价值最大的组合。如果没有动态规划的基础其实是很难理解这个问题的&#xff0c;所以看这篇文章之前先去学习一下动态规划的基本思想…

AI Agent系列(七) -思维链(Chain of Thought,CoT)

AI Agent系列【七】 前言一、CoT技术详解1.1 CoT组成1.2 CoT的特点 二、CoT的作用三、CoT的好处四、CoT适用场景五、CoT的推理结构 前言 思维链(Chain of Thought,CoT)&#xff0c;思维链就是一系列中间的推理步骤(a series of intermediate reasoning steps)&#xff0c;通过…

Docker搭建Testlink教程

1.拉取镜像 打开终端输入命令&#xff1a; #拉取mariadb镜像 docker pull bitnami/mariadb #拉取testlink镜像 docker pull bitnami/testlink-archived 执行结果&#xff1a; 2.运行容器 打开终端输入命令&#xff1a; #创建容器网络 docker network create testlink #查…

考研c语言复习之栈

栈一般出选择题&#xff0c;队列选择题和大题都有 栈&#xff1a;只允许在一端 进行插入或删除操作的线性表即栈顶&#xff08;top) s.top-1时栈为空 向栈中插入元素 s.tops.top1;s.data[s.top]value; 这段代码可以用一行代码代替&#xff1a; s.data[s.top]value; 不懂i和…

C#里使用libxl来合并单元格的例子

操作EXCEL的文件格式是常用的功能&#xff0c; 通过不同的单元格的合并&#xff0c;可以生成不同的表格。 如下图所示&#xff1a; 采用libxl来创建上面的EXCEL&#xff0c;使用下面的代码来实现&#xff1a; private void button8_Click(object sender, EventArgs e) {var …

大屏技术汇集【目录】

Cesium 自从首次发布以来&#xff0c;经历了多个版本的迭代和更新&#xff0c;每个版本都带来了性能改进、新功能添加以及对现有功能的优化。以下是 Cesium 一些重要版本及其主要特点&#xff1a; 主要版本概述 Cesium 1.0 (2012年) 初始版本发布&#xff0c;确立了Cesium作为…

《深度学习》——YOLOv3详解

文章目录 YOLOv3简介YOLOv3核心原理YOLOv3改进YOLOv3网络结构 YOLOv3简介 YOLOv3&#xff08;You Only Look Once, version 3&#xff09;是一种先进的实时目标检测算法&#xff0c;由 Joseph Redmon 和 Ali Farhadi 开发。它在目标检测领域表现出色&#xff0c;具有速度快、精…