D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_TYPE 枚举 (d3d12umddi.h)
声明调用 PFND3D12DDI_BEGIN_RENDER_PASS的资源访问类型。
语法
typedef enum D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_TYPE {
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_DISCARD,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_PRESERVE,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_CLEAR,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_NO_ACCESS,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_WRITING,
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ
} ;
常量
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_DISCARD 指示应用程序不依赖于资源的先前内容。 给定的实现可能返回以前写入的内容,也可能返回未初始化的数据。 但是,从资源读取时不得产生 GPU 挂起,“read”只能在最坏的情况下返回未定义的数据。 读取定义为传统: * UAV (无序访问视图) * SRV (着色器资源视图) * CBV (常量缓冲区视图) * VBV (顶点缓冲区视图) * IBV (索引缓冲区视图) * IndirectArg 绑定/读取 * blend/depth-testing-induced read |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_PRESERVE 指示应用程序依赖于资源的先前内容,并且必须从main内存加载内容。 |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_CLEAR 指示应用程序依赖于要清除到应用提供的特定 () 颜色的资源。 注意 无论资源是否与呈现通道以外的任何内容进行交互,都会出现此明确情况。 |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_NO_ACCESS 指示在呈现阶段期间不会从中读取或写入资源。 此值还指示是否未访问 DSV (数据源视图) 的深度/模具平面。 重要事项 此字段必须与 D3D12DDI_RENDER_PASS_ENDING_ACCESS_TYPE 中的 D3D12DDI_RENDER_PASS_ENDING_ACCESS_NO_ACCESS标志配对。 |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_WRITING 指示应用程序将在以下条件下恢复写入: * 继续写入先前在上一个呈现通道中写入的图面 * 在 D3D12DDI_RENDER_PASS_ENDING_ACCESS_TYPE 枚举中具有 D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_WRITING 标志 * 两个呈现通道之间没有发生干预 GPU 工作 恢复 呈现通道 中的写入发生在 挂起 的呈现通道中的写入之后。 此标志的目的是允许写入同一呈现目标,以便跨多个命令列表,且不刷新任何片上缓存。 只要在同一 ExecuteCommandLists 组中 (背靠背) 执行挂起/恢复命令Lists,写入可以从单独的命令列表中的呈现通道恢复。 |
D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ 指示应用程序希望从以前由 GPU (立即写入的资源(即仍可能位于磁贴缓存) 中)进行读取,并且将以像素本地方式从中读取 (即读取操作将始终位于确切的输出像素或相邻像素) 。 此枚举值与 D3D12DDI_RENDER_PASS_ENDING_ACCESS_TYPE 枚举中的 D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ 值配对,是允许从中读取资源(如果可能),而不会在两个后续呈现通道操作之间发出刷新。 具体而言,应用程序保证: * 资源以前已在呈现通道中写入,其“写入”特征为 D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ。 * 在上一个呈现通道的D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ和当前呈现通道之间没有发生 GPU 操作。 * D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ可能从同一命令列表中链接,也可以在同一 ExecuteCommandLists 调用中的 Command Lists之间链接,但不能跨单独的 ExecuteCommandList 调用链接。 * 要从中读取的资源与新绑定的呈现器目标的大小和格式匹配。 * 所有读取/写入都是“1 对 1” (加上由应用) 指定的可选装订线读取像素,来自源纹理的读取将写入目标纹理上的同一位置,并且呈现目标纹理的大小与源纹理相同。 读取的内核大小 () PFND3D12DDI_BEGIN_RENDER_PASS时间通过D3D12_RENDER_PASS_BEGINNING_ACCESS_RESUME_LOCAL_READ_PARAMETERS上的 AdditionalWidth/AdditionalHeight 字段指定所需的周围像素数。 AdditionalWidth/AdditionalHeight 参数必须与上 一个D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ_PARAMETERS上的参数匹配。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1809 |
标头 | d3d12umddi.h |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈