1-初识DXGI与D3D
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相关推荐
- D3D11_Chili_Tutorial(2):画一个三角形
文章目录 11:D3D初始化篇-- COM(Component Object Model) 12:D3D架构 / 交换链 13:初始化设备 14:调试层 15:智能指针 16:画一个三角形(上集) 1 ...
- DirectX 11 编程指南
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 微软在2 ...
- Direct3D初始化
Objectives 1.基本理解Direct3D在3D硬件编程中的作用 2.理解COM组件在Direct3D 3.学习基本图形概念,例如2D图像的储存,交换页,深度缓冲,多重采样,CPU\GPU的相 ...
- Direct2D学习方法
2016.11 初次接触Direct2D,最新教程较少,最新的英文版MSDN : 最新Direct 2D MSDN 真心不太友好. 一:Windows 7 Direct2D 最新的Direct2D ...
- DirectX12(D3D12)基础教程(四)——初识DirectXMath库、使用独立堆创建常量缓冲、理解管线状态对象、理解围栏同步
目录 1.前言及本章内容提要 2.初识DirectXMath库 3.使用独立堆创建常量缓冲 4.理解管线状态对象 5.理解围栏同步 6.完整代码 1.前言及本章内容提要 经过了之前3篇教程的跨度有点大 ...
- DXGI快速截屏录屏技术
DXGI快速截屏录屏技术 概述 很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等.在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套 ...
- GDI/GDI+/D2D/D3D
原文链接 : 2D Drawing APIs in Windows 在 Windows 7 操作系统中,微软花费了很大的力气构建了一套新的 2D 绘图 API.我们称之为 Direct2D ,隶属于 ...
- DirectX12_初识之根签名、显存管理、资源屏障、栅栏同步、描述符与描述符堆、捆绑包
一.显卡架构与存储管理 现代的GPU上是有很多可以并行执行命令的引擎的,如下图所示(可参照官网介绍): 它很形象的说明了一个GPU上至少有三大类引擎,一个是复制引擎(Copy engine).一个是计 ...
- DXGI快速截屏录屏技术,高帧率直播桌面
DXGI快速截屏录屏技术 概述 很多地方都需要用到截屏/录屏技术,比如桌面直播,桌面录制等等.在微软Windows平台,有很多截屏的接口,不过大多数性能并不理想,Windows8以后微软引入了一套 ...
最新文章
- 201771010119穷吉第八周
- tornado连接数据库
- scala学习 之 环境搭建(一)
- linux pandas教程_竞赛中的Docker使用教程
- Git远端库(GitHub)及Git流
- codevs1085数字游戏(环形DP+划分DP )
- 解决算法问题的思路 —— 从问题描述到数学表达
- 缓存淘汰算法--LRU算法
- 博图能打开s7200吗_脚上有一个穴位,能帮你打开任督二脉,是真的吗?
- 1960-2019年世界各国人均GDP增长率
- Matlab中持久变量(persistent)在Python中的理解
- GPT-3 离通用人工智能有多近?
- AtCoder Beginner Contest 171 C.One Quadrillion and One Dalmatians
- windows下python运行的方法
- PostgreSQL | PG库优缺点
- 关于论坛发帖图片不显示之解决策略
- java:输出一个蜗牛图案
- c++中的点号(.),冒号(:)和双冒号(::)运算符
- FFmpeg - ./configure编译参数全部总结和整理
- 初涉“江湖”,幸会幸会!