1 D3D(Direct3D)

简介:显卡,又叫做3D加速卡。当我们希望调用显卡中的3D加速功能来进行某些优化时,无法直接通过操作系统或者应用程序调用显卡,而是通过系统提供的API。D3D就是其中一种API,另外还有OPENGL。
Feature Level: D3D11以后支持,是D3D11的必备概念。因为D3D11的不同功能对于硬件的最低要求是不尽相同的,所以通过引入feature level对D3D11的功能进行了划分。这使得D3D11可以在D3D10甚至D3D9的硬件上运行。具体版本对应的功能如下图所示:

  关于 D3D9,它是 D3D 系列中唯一支持 Windows XP 的版本,所以依然存在。然而值得一提的是,XP 下的 OpenGL 驱动也在不断更新,OpenGL 同样可以带给 XP 原本只有 D3D10 和 D3D11 的 GPU 能力,而且没有性能损失。
CheckFormatSupport: D3D10 本身不支持 ARGB 颜色格式。但是根据 D3D11 的描述: ARGB 对 feature level 9_x 和 11_0 是必须支持,对于 feature level 10_x 是可选支持。用 CheckFormatSupport 可以检查某个格式是否支持, 或者直接通过 feature level检查格式的支持情况。
  另外, D3D11 还增加了 CheckFeatureSupport 函数, 用来检查 multithread、 double、 atomic、 compute shader 4.x 是肉支持。
Compute Shader: compute shader又叫做 DirectCompute, 在 D3D11 的 GPU 上是 5.0 版本, 在 D3D10.x 的 GPU 上 是简化的 4.x 版本(不支持RWTexture, 无法写入 texture)。在 D3D11 下, 可以把 texture 和 buffer 作为输入、 texture 作为输出, 从而实现从 texture 到 texture 的流水线。

题外话:
  从 CS 转回图形流水线的时候, 在 N卡 上都会出现明显的几毫秒延迟,而在 A卡 上不会出现这个问题。

Multi-threaded: D3D11 加入了显示的多线程支持, 它把接口分成了两部分:
  1- 负责建立资源的函数属于 ID3D11Device, 它是线程安全的, 在必要情况下会自动加锁。
  2- 剩下的部分都属于 ID3D11DeviceContext, 没有线程安全, 需要上层代码处理。

顺带一提:
  高性能地使用多线程事需要驱动支持的,虽然 GPU 一般都有多个指令单元, 但是驱动通常不开放多线程的功能。所以得通过软件实现命令列表, 这使得性能并无提高反而降低。

2 DXGI(DirectX Graphics Infrastructure)

简介: DirectX 图形基础架构,提供了对图形硬件进行底层管理的功能,与 D3D 的i图形功能独立。DXGI 可以说是提供了一个底层的通用框架用来支持未来的硬件。DXGI 的目的是沟通核心模式驱动和系统硬件。
主要功能: 枚举显示硬件设备,将渲染好的帧呈现到输出设备,调整显示设备参数,全屏模式的切换等。

1-初识DXGI与D3D相关推荐

  1. D3D11_Chili_Tutorial(2):画一个三角形

    文章目录 11:D3D初始化篇-- COM(Component Object Model) 12:D3D架构 / 交换链 13:初始化设备 14:调试层 15:智能指针 16:画一个三角形(上集) 1 ...

  2. DirectX 11 编程指南

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 微软在2 ...

  3. Direct3D初始化

    Objectives 1.基本理解Direct3D在3D硬件编程中的作用 2.理解COM组件在Direct3D 3.学习基本图形概念,例如2D图像的储存,交换页,深度缓冲,多重采样,CPU\GPU的相 ...

  4. Direct2D学习方法

    2016.11 初次接触Direct2D,最新教程较少,最新的英文版MSDN : 最新Direct 2D MSDN   真心不太友好. 一:Windows 7 Direct2D 最新的Direct2D ...

  5. DirectX12(D3D12)基础教程(四)——初识DirectXMath库、使用独立堆创建常量缓冲、理解管线状态对象、理解围栏同步

    目录 1.前言及本章内容提要 2.初识DirectXMath库 3.使用独立堆创建常量缓冲 4.理解管线状态对象 5.理解围栏同步 6.完整代码 1.前言及本章内容提要 经过了之前3篇教程的跨度有点大 ...

  6. DXGI快速截屏录屏技术

    DXGI快速截屏录屏技术 概述   很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等.在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套 ...

  7. GDI/GDI+/D2D/D3D

    原文链接 : 2D Drawing APIs in Windows 在 Windows 7 操作系统中,微软花费了很大的力气构建了一套新的 2D 绘图 API.我们称之为 Direct2D ,隶属于 ...

  8. DirectX12_初识之根签名、显存管理、资源屏障、栅栏同步、描述符与描述符堆、捆绑包

    一.显卡架构与存储管理 现代的GPU上是有很多可以并行执行命令的引擎的,如下图所示(可参照官网介绍): 它很形象的说明了一个GPU上至少有三大类引擎,一个是复制引擎(Copy engine).一个是计 ...

  9. DXGI快速截屏录屏技术,高帧率直播桌面

    DXGI快速截屏录屏技术 概述   很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等.在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套 ...

最新文章

  1. 201771010119穷吉第八周
  2. tornado连接数据库
  3. scala学习 之 环境搭建(一)
  4. linux pandas教程_竞赛中的Docker使用教程
  5. Git远端库(GitHub)及Git流
  6. codevs1085数字游戏(环形DP+划分DP )
  7. 解决算法问题的思路 —— 从问题描述到数学表达
  8. 缓存淘汰算法--LRU算法
  9. 博图能打开s7200吗_脚上有一个穴位,能帮你打开任督二脉,是真的吗?
  10. 1960-2019年世界各国人均GDP增长率
  11. Matlab中持久变量(persistent)在Python中的理解
  12. GPT-3 离通用人工智能有多近?
  13. AtCoder Beginner Contest 171 C.One Quadrillion and One Dalmatians
  14. windows下python运行的方法
  15. PostgreSQL | PG库优缺点
  16. 关于论坛发帖图片不显示之解决策略
  17. java:输出一个蜗牛图案
  18. c++中的点号(.),冒号(:)和双冒号(::)运算符
  19. FFmpeg - ./configure编译参数全部总结和整理
  20. 初涉“江湖”,幸会幸会!

热门文章

  1. “专精特新”背后的京东动力
  2. 骨架屏-css实现方式
  3. Windows 8.1 更新错误 0x80073712 解决办法
  4. 3GPP TS 23501-g51 中英文对照 | 4.3.5 Service Exposure in Interworking Scenarios
  5. Poi操作保护工作表后指定区域内删除行列
  6. 【数据分析】贝叶斯原理
  7. 关键词:MAU,DAU,DAU/MAU
  8. 2022杭电多校第八场
  9. B. Not Dividing(构造)
  10. MOS管基本驱动电路