请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 1341|回复: 1

请教一个Klay中D3D12的问题 [复制链接]

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

注册时间
2009-3-27
积分
4250
发表于 2017-9-19 02:05:42 |显示全部楼层
Klay中GraphicsBuffer的D3D12的版本有两个方法:
1. CreateHardwareResource 的时候如果有数据则运行步骤是创建一个 UploadBuffer 然后 CopyResource 过去,完成数据就填。
2. UpdateSubresource,它的运行步骤是调用 Map/Unmap 就完成数据填充了。

这两个方法在操作上相差很大,一个需要创建UploadBuffer->Map/Unmap->CopyResource->还得需要一次同步,而另一个只要对Buffer进行 Map/Unmap 就完事了。

我的问题是,这两种方法有什么区别?
在用户看来使用 CreateHardwareResource (pData) 和 CreateHardwareResource (nullptr) 然后 UpdateSubresource(pData) 没有区别。
为什么在 CreateHardwareResource 的时候不直接 Map/Unmap 呢? 难道说数据初始化有什么特殊之处么?

Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28Rank: 28

注册时间
2009-3-31
积分
14455
发表于 2017-11-14 09:18:30 |显示全部楼层
没有特殊之处。只是当时就这么写了。

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2017-11-25 06:25 , Processed in 0.066766 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部