社区
其它游戏引擎
帖子详情
D3D12 资源 维度 复制
DestinedToDie
2019-06-14 05:27:46
我想检查一下纹理里的数据,打算拷贝到内存,最后选择用回读堆,但是回读堆上的资源必须是缓存,要怎么样才能把纹理拷贝到缓冲呢?
...全文
320
8
打赏
收藏
D3D12 资源 维度 复制
我想检查一下纹理里的数据,打算拷贝到内存,最后选择用回读堆,但是回读堆上的资源必须是缓存,要怎么样才能把纹理拷贝到缓冲呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DestinedToDie
2019-06-16
打赏
举报
回复
这是UAV对应资源的创建
D3D12_HEAP_DESC RTBufferHeapDesc = {
FLOOR(RTBuffer_Size, static_cast<UINT64>(256)),
{D3D12_HEAP_TYPE_DEFAULT,D3D12_CPU_PAGE_PROPERTY_UNKNOWN,D3D12_MEMORY_POOL_UNKNOWN},
D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT,
D3D12_HEAP_FLAG_NONE
};
ThrowIfFailed(Device->CreateHeap(&RTBufferHeapDesc, IID_PPV_ARGS(&RT_ResultHeap)));
D3D12_RESOURCE_DESC RTBufferDesc = CD3DX12_RESOURCE_DESC::Tex2D(
RenderTargetFormat, Width, Height);
RTBufferDesc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
RTBufferDesc.DepthOrArraySize = 1;
ThrowIfFailed(Device->CreatePlacedResource(
RT_ResultHeap.Get(),
0,
&RTBufferDesc,
D3D12_RESOURCE_STATE_UNORDERED_ACCESS,
nullptr,
IID_PPV_ARGS(&CS_ResultResource)));
#ifdef _DEBUG
ThrowIfFailed(CS_ResultResource->SetName(L"RT"));
#endif // _DEBUG
DestinedToDie
2019-06-16
打赏
举报
回复
这是用于拷贝的代码块
{
ComPtr<ID3D12Resource> Reader = nullptr;
D3D12_HEAP_PROPERTIES Prop = {};
Prop.Type = D3D12_HEAP_TYPE_READBACK;
D3D12_RESOURCE_DESC Desc = CD3DX12_RESOURCE_DESC::Buffer(RTBuffer_Size);
Device->CreateCommittedResource(
&Prop,
D3D12_HEAP_FLAG_NONE,
&Desc,
D3D12_RESOURCE_STATE_COPY_DEST,
nullptr,
IID_PPV_ARGS(&Reader)
);
D3D12_TEXTURE_COPY_LOCATION Src = {}, Dst = {};
Src.pResource = CS_ResultResource.Get();
Dst.pResource = Reader.Get();
Dst.Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT;
DirectGraphicsCommandList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr);
XMVECTOR* pData = nullptr;
{
Barrier = CD3DX12_RESOURCE_BARRIER::Transition(
CS_ResultResource.Get(),
D3D12_RESOURCE_STATE_UNORDERED_ACCESS,
D3D12_RESOURCE_STATE_COPY_SOURCE);
DirectGraphicsCommandList->ResourceBarrier(1, &Barrier);
}
ThrowIfFailed(Reader->Map(0, &D3D12_RANGE({ 0,RTBuffer_Size }), reinterpret_cast<void**>(pData)));
for (UINT64 i = 0; i < RTBuffer_Size / sizeof(XMFLOAT4); i++)
{
if (pData == nullptr)
{
break;
}
if (XMVector4Length(*pData).m128_f32[0] >= 0.01f)
{
OutputDebugStringA("Found not-zero pixel");
}
pData++;
}
Reader->Unmap(0, &D3D12_RANGE({ 0,0 }));
{
Barrier = CD3DX12_RESOURCE_BARRIER::Transition(
CS_ResultResource.Get(),
D3D12_RESOURCE_STATE_COPY_SOURCE,
D3D12_RESOURCE_STATE_UNORDERED_ACCESS);
DirectGraphicsCommandList->ResourceBarrier(1, &Barrier);
}
}
DestinedToDie
2019-06-16
打赏
举报
回复
那我等会贴一下
可能也没什么人像我这样做
WJN92
2019-06-16
打赏
举报
回复
没遇到过这样的问题,你又不贴一下代码
DestinedToDie
2019-06-15
打赏
举报
回复
我的UAV在默认堆里不能直接Map()
DestinedToDie
2019-06-15
打赏
举报
回复
但是CopyBufferRegion()CopyTextureRegion()CopyResource()都有维度要求,回读堆又不能是纹理
DestinedToDie
2019-06-15
打赏
举报
回复
对啊UAV里的2D纹理
WJN92
2019-06-15
打赏
举报
回复
你应该是用uav的吧,好像能映射到内存吧
项目实训记录4:
资源
管理模块的实践开发日志
本文详述基于D
3D
12
的图形注入式
资源
管理模块开发过程,涵盖单例状态机设计、从Present注入点反推最小追踪对象(swapchain/back buffer/command queue/device/描述符绑定)、多线程下的锁粒度优化(细粒度互斥+自旋锁+分片锁)、RAII辅助类保障状态安全、swapchain重建导致的帧边界清理问题,以及放弃完整
资源
状态追踪而采用确定性resource barrier强制转换策略的原因与实现。
【性能测试】
3D
Mark安装与使用全攻略:从零开始评估你的显卡性能
本文系统讲解
3D
Mark的下载安装、核心测试项(Time Spy、Fire Strike、Port Royal等)、实战跑分流程、分数解读方法及稳定性压力测试。强调测试前准备(驱动更新、后台清理、电源模式)、硬件监控(温度/频率/功耗)与结果对比分析,覆盖DirectX
12
/11、光追、4K等关键技术
维度
,助力精准评估显卡图形处理能力。
5个
维度
解析革新性游戏插件加载器:零基础玩转ASI脚本注入与DirectX增强
本文深入解析Ultimate ASI Loader——一款开源游戏插件加载器,聚焦其无侵入式ASI脚本注入、全版本DirectX兼容(D
3D
8–D
3D
12
)、代理DLL机制、动态插件加载及虚拟文件系统等核心技术。涵盖实际应用场景如画质增强、老游戏现代化、直播互动与教学模式,并提供零基础部署指南与安全配置方案。
One4D框架:解耦LoRA控制实现高效4D内容生成
One4D是一种面向4D内容(
3D
+时间)生成与重建的新型框架,核心创新为解耦LoRA控制(DLC)架构,通过RGB与几何双分支独立LoRA适配器及零初始化跨模态控制链接,有效抑制跨模态干扰;结合统一掩码条件机制(UMC)支持单图/稀疏帧/全视频输入。在Sintel、Bonn等基准上显著提升几何精度与长序列一致性,并降低63%内存开销。
3D
-MIX:面向VLA模型的即插即用式
3D
空间感知增强模块
3D
-MIX是一种即插即用的轻量级模块,专为视觉-语言动作(VLA)模型设计,用于增强其对深度、距离、方位和遮挡等
3D
空间语义的理解能力。它通过语义门控融合策略,在视觉与语言特征交汇处动态生成空间注意力图,无需修改主干网络或重训模型。模块参数仅48.7万,单帧推理延迟增加不足1.2ms,兼容ViT、ResNet等视觉编码器及BERT、CLIP等语言编码器,已在OpenVLA等框架中验证有效。
其它游戏引擎
456
社区成员
668
社区内容
发帖
与我相关
我的任务
其它游戏引擎
其它游戏引擎
复制链接
扫一扫
分享
社区描述
其它游戏引擎
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章