feat(d3d12): 新增纹理资源类,修复 Surface 重复释放问题

核心变更:
- 新增 d3d12_texture 和 d3d12_render_texture 类
- 新增 d3d12_texture_init_info 结构,支持三种资源创建方式
- 新增 D3D12Helpers.h,提供堆属性辅助结构
- 改用 utl::free_list 管理 surface,解决重复释放问题
- 为 d3d12_surface 添加移动语义,支持撕裂检测

文档完善:
- 为 FreeList.h 和 Vector.h 添加完整 Doxygen 中文注释
- 更新 D3D12 学习 Wiki,添加 SRV、资源创建方式、纹理资源类章节
- 新增变更记录文档
This commit is contained in:
SpecialX
2026-04-01 16:15:12 +08:00
parent 95d8893182
commit 4d13d8df89
19 changed files with 1821 additions and 233 deletions

View File

@@ -0,0 +1,14 @@
#pragma once
#include "D3D12CommonHeader.h"
namespace XEngine::graphics::d3d12::d3dx
{
constexpr struct{
D3D12_HEAP_PROPERTIES default_heap{
D3D12_HEAP_TYPE_DEFAULT, // 堆类型默认堆GPU可读写CPU不可直接访问。选项D3D12_HEAP_TYPE_DEFAULT默认堆、D3D12_HEAP_TYPE_UPLOAD上传堆CPU写入GPU读取、D3D12_HEAP_TYPE_READBACK回读堆GPU写入CPU读取、D3D12_HEAP_TYPE_CUSTOM自定义堆
D3D12_CPU_PAGE_PROPERTY_UNKNOWN, // CPU页属性未知使用默认设置。选项D3D12_CPU_PAGE_PROPERTY_UNKNOWN未知、D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE不可用、D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE写入合并、D3D12_CPU_PAGE_PROPERTY_WRITE_BACK写回
D3D12_MEMORY_POOL_UNKNOWN, // 内存池未知由驱动自动选择。选项D3D12_MEMORY_POOL_UNKNOWN未知、D3D12_MEMORY_POOL_L0系统内存池、D3D12_MEMORY_POOL_L1显存池
0, // 节点掩码单GPU系统设为0多GPU系统中指定使用哪个GPU节点
0, // 保留字段必须为0为将来扩展预留
};
}heap_properties;
}