Direct3D 12 尝鲜(五): SDK 更新

(转载请注明出处)

又是一个月, 微软在Build2015中公布了不少关于Win10的新闻, 又在N卡公布的支持DX12显卡中看到了我的垃圾显卡(GT640M LE)居然在支持范围,高高兴兴地直接换物理机安装上Win10, 升级了SDK, VS2015变成了RC版. 不过失望了是显卡支持的仅仅是D3D12 level11.0, 不能用level12.0,不知道会不会更新支持.

Win10SDK也更新了, 我们在意的自然是D3D12部分. 对于目前, 改变如下:

1. Helper类/函数 被分离到了direct3dx12还是什么的头文件里面, 但是我翻遍了SDK也没有这个文件,目测在DXSDK里面

2. 函数名/函数参数个数/参数顺序改变

3. 交换链细节改变

前面两个都是无足轻重的, 最多就是麻烦点, 比如新的创建函数

HRESULT WINAPI D3D12CreateDevice(
  _In_opt_  IUnknown          *pAdapter,
            D3D_FEATURE_LEVEL MinimumFeatureLevel,
  _In_      REFIID            riid,
  _Out_opt_ void              **ppDevice
);

只有四个参数了, 比如要选择软件渲染有点麻烦了,需要枚举显卡适配器了.

好的,现在说一下关于交换链的, 在D3D10, 11 以及之前的12中, 交换链可以自动旋转, 比如我们有个交换链有两个缓冲AB.

之前我们写入A, 旋转交换链后, 之后再渲染, 就是自动写入B了.

现在交换后, 还是写入A, 微软说的是为了减少CPU开销.但是我们现在渲染就稍微麻烦了.现在自己还没找到合适的方法.

目前的解决方法一般三种:

1. 每次呈现都修改CommandList

2. 创建数倍于缓冲区的CommandList, 针对不同缓冲区写入

3. 再创建一个临时缓冲区, 都写入到这个缓冲区里面, 呈现时再送入不同的缓冲区.

这里, 我选择的是2, 浪费一点内存, 以换取效率.

这次的例子就仅仅将代码更新, 这次好像能与DirectComposition组件完美交互了:

更新后的代码下载地址:

点击这里


时间: 2024-10-08 17:20:16

Direct3D 12 尝鲜(五): SDK 更新的相关文章

Direct3D 12 尝鲜: 基本呈现

(转载请注明出处) 请叫我挖坑狂魔_(:3」∠)_ 微软前几天发布了Win10的开发工具,希望使用的童鞋可以加入windows insider计划 进行下载. 下面是我的环境: Windows 10 Technical Preview Build 10041 Visual Studio 2015 CTP 6 Visual Studio Tools for Windows 10 当然,使用的是虚拟机. D3D12文档可以在官方文档里面进行查看,里面有编程向导与API文档. 不过, 这个文档也是初步

Direct3D 12 尝鲜(四): 旋转的彩色立方体

(转载请注明出处) 有点时间没更新了,原因是找了一个多星期的bug结果发现是少了一次加法运算.... 不过反正没人看也就没影响啦!_(:3」∠)_ 这次的目的是做一个旋转的彩色立方体: 这是自己在学D3D11的时候做过的一个例子,现在搬到D3D12上, 这次增加的内容有: 常量缓存 深度缓存 顶点/索引缓存 常量缓存, 常量缓存可以放一些GPU只读的数据, 这里就是存放的是转换矩阵,D3D12中,常量缓存是以256字节对齐的(D3D12_CONSTANT_BUFFER_DATA_PLACEMEN

Direct3D 12 尝鲜(二): Fence

(转载请注明出处) 正如上节末尾所说, 出现了运行时错误: D3D12 ERROR: ID3D12CommandAllocator::Reset: A command allocator is being reset before previous executions associated with the allocator have completed. [ EXECUTION ERROR #548: COMMAND_ALLOCATOR_SYNC] 就是说要在相关执行完成后才能重置, 在自

15.EVE-NG小众镜像,助力尝鲜!

文章列表(关注微信公众号EmulatedLab,及时获取文章以及下载链接) 1.EVE-NG介绍(EVE-NG最好用的模拟器,仿真环境时代来临!) 2.EVE-NG安装过程介绍 3.EVE-NG导入Dynamips和IOL 4.EVE-NG导入QEMU镜像 5.EVE-NG关联SecureCRT,VNC,Wireshark 6.EVE-NG网卡桥接,带您走进更高级的实验 7.EVE-NG硬盘扩容,存储海量镜像 8.EVE-NG定制个人镜像,脚本快速导入 9.EVE-NG容纳H3C.Huawei,

android SDK更新资源

android SDK更新资源 转载,用以备份,方便自己查找.再一次感谢原文作者.  原文:http://www.apkbus.com/android-174440-1-1.html 一.Android SDK (Android SDK主安装包,包含SDK Manager.AVD Manager.工具包tools,释放后的根文件夹为android-sdk-windows): revision 22.6.2 http://dl.google.com/android/android-sdk_r22.

Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例

前言:由于之前没有接触过Hibernate框架,但是最近看一些博客深深被它的"效率"所吸引,所以这就来跟大家一起就着一个简单的例子来尝尝Spring全家桶里自带的JPA的鲜 Spring-DATA-JPA 简介 JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据.他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO

屌丝就爱尝鲜头——java8总结晒一晒

前两节讨论了那么多,这节就是两个议题,讨论了新增的日期的api,再说一说我的Java8的一些心得体会了. 首先,我们必须要搞清楚Java 8 为什么要增加新的日期的api,这是由于老的日期api非常的繁琐,使用起来非常不方便,Java作者奉行这变者通不变者死的原则,于是增加了这些api.下面,我们总点介绍这几个类--LocalDate类.LocalTime类.LocalDateTime类.DateTimeFormatter类,zoneDate类.一个个来看: Ⅰ.LocalDate类--返回日期

屌丝就爱尝鲜头——java8初体验

Java8已经推出,让我们看看他的魅力.让我们看看他改变较大的部分. 一.java8概述 Java8是由Oracle(甲骨文)公司与2014年3月27日正式推出的.Java8同时推出有3套语言系统,分别是Java SE8.Java SE Emebbled 8.Java ME8. Java SE8较以往的系统增强的功能有: ①增强了对集合式操作语言--lambda表达式的支持,"Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演

51CTO学院新课限时尝鲜计划—爆款课程打造的利器

各位老师好,学院的内容一直都在持续更新,老师源源不断的上线新课程,上线速度也是越来越快,因此学院的小伙伴们准备"在首页第一屏增加一个新内容曝光入口",打造"新课限时尝鲜计划",平台考虑给新课程和新老师更大量的曝光量,推出了"新课限时尝鲜计划",具体内容如下: 一.首页新增[新课限时尝鲜]板块 * 申请加入计划的新课会在学院首页第一屏入口曝光 * 学员限时免费学习 * 免费到期后,课程将恢复原价,并引导学员去购买该讲师的课程 * 在内容免费期间,如