|
|
42c17ee106
|
Add D3D12 view wrapper classes: RTV, DSV, SRV, CBV
|
2026-03-15 19:10:32 +08:00 |
|
|
|
c62dc58157
|
Replace constant buffer with D3D12Buffer wrapper
|
2026-03-15 18:59:28 +08:00 |
|
|
|
f25672c7d6
|
Replace CreateShaderFromFile with D3D12Shader wrapper
|
2026-03-15 18:57:01 +08:00 |
|
|
|
c3feeda5d4
|
feat: 实现 D3D12Shader 着色器类
- 添加 D3D12Shader.h/cpp
- 支持从文件编译着色器
- 支持从内存编译着色器
- 测试通过
|
2026-03-15 18:51:38 +08:00 |
|
|
|
db8e8633c8
|
feat: 实现 D3D12Sampler 采样器类
- 添加 D3D12Sampler.h/cpp
- 支持采样器描述符
- 测试通过
|
2026-03-15 18:48:04 +08:00 |
|
|
|
017bbf281d
|
feat: 实现 D3D12Texture 和 D3D12Buffer 资源类
- 添加 D3D12Texture.h/cpp - 纹理资源封装
- 添加 D3D12Buffer.h/cpp - 缓冲区资源封装
- 支持 CreateCommittedResource 创建资源
- 测试通过
|
2026-03-15 18:45:11 +08:00 |
|
|
|
2a8f50134c
|
feat: 实现 D3D12PipelineState 并替换到 tests/D3D12
- 添加 D3D12PipelineState.h/cpp
- 全局变量 gPipelineState
- 使用 D3D12PipelineState::Initialize 替代原生 CreateGraphicsPipelineState
- 测试通过
|
2026-03-15 18:41:27 +08:00 |
|
|
|
b98f588afd
|
refactor: 将 tests/D3D12 的 RootSignature 替换为 D3D12RootSignature
- 添加全局变量 gRootSignature
- 使用 D3D12RootSignature::Initialize 替代原生 API
- 测试通过
|
2026-03-15 18:37:51 +08:00 |
|
|
|
2bdd6d3199
|
feat: 实现 D3D12RootSignature 根签名类
- 添加 D3D12RootSignature.h 头文件
- 实现 ID3D12RootSignature 封装
- 支持序列化根签名描述符
- 测试通过
|
2026-03-15 18:36:11 +08:00 |
|
|
|
ee7e710141
|
fix: CMakeLists.txt 自动拷贝测试脚本和GT.ppm
- 添加 run.bat、compare_ppm.py、GT.ppm 到输出目录
- 确保构建后可以直接运行测试
|
2026-03-15 18:34:02 +08:00 |
|
|
|
95fd1400bc
|
fix: run.bat 删除旧截图避免假通过
- 运行前删除旧的 screenshot.ppm
- 确保测试使用实际生成的新截图
|
2026-03-15 18:31:51 +08:00 |
|
|
|
88cd65d082
|
fix: 修复 D3D12SwapChain 重复创建 swapchain 问题
- 添加 Initialize(IDXGISwapChain*, width, height) 重载方法
- 接受已存在的 swapchain 而不是重复创建
- 测试通过,日志显示正常渲染
|
2026-03-15 18:30:14 +08:00 |
|
|
|
80a11d1836
|
refactor: 将 tests/D3D12 的 SwapChain 替换为 D3D12SwapChain
- gSwapChain 替换为 D3D12SwapChain
- 使用 Initialize 方法替代原生 CreateSwapChain
- 使用 Present、GetCurrentBackBufferIndex 等 wrapper 方法
- 测试通过
|
2026-03-15 18:26:05 +08:00 |
|
|
|
f187aa3b37
|
feat: 实现 D3D12SwapChain 交换链类
- 添加 D3D12SwapChain.h 头文件
- 实现 IDXGISwapChain3 封装
- 实现 Initialize、Present、Resize 等方法
- 测试通过
|
2026-03-15 18:24:02 +08:00 |
|
|
|
407fe0fd32
|
refactor: 将 tests/D3D12 的 DescriptorHeap 替换为 D3D12DescriptorHeap
- gSwapChainRTVHeap, gSwapChainDSVHeap 替换为 D3D12DescriptorHeap
- srvHeap 替换为 D3D12DescriptorHeap
- 使用 Initialize 方法替代原生 CreateDescriptorHeap
- 测试通过
|
2026-03-15 18:21:07 +08:00 |
|
|
|
7f064e9e71
|
feat: 实现 D3D12DescriptorHeap 描述符堆类
- 添加 D3D12DescriptorHeap.h 头文件
- 实现 ID3D12DescriptorHeap 封装
- 支持 RTV、DSV、CBV_SRV_UAV、Sampler 堆类型
- 支持 GPU 可见描述符堆
- 添加 GetCPUDescriptorHandle、GetGPUDescriptorHandle 等方法
- 测试通过
|
2026-03-15 18:17:59 +08:00 |
|
|
|
ddd3140114
|
refactor: 继续用 D3D12CommandList 替换原生 API
- 添加更多 wrapper 方法: SetDescriptorHeaps, SetGraphicsRootConstantBufferView, SetGraphicsRoot32BitConstants, SetGraphicsRootDescriptorTable, SetGraphicsRootShaderResourceView
- 使用 wrapper 方法替换 main.cpp 中的原生 API 调用
- 测试通过
|
2026-03-15 18:13:53 +08:00 |
|
|
|
7050e88c49
|
refactor: 将 tests/D3D12 的 CommandList 替换为 D3D12CommandList 类
- 将全局 ID3D12GraphicsCommandList 替换为 D3D12CommandList
- 更新初始化、Reset、Close 调用
- 修复 Initialize 中不应调用 Close() 的问题
- 测试通过,截图与 GT.ppm 完全匹配
|
2026-03-15 18:10:16 +08:00 |
|
|
|
bf37b1c00c
|
feat: 实现 D3D12CommandList 命令列表类
- 添加 D3D12CommandList.h 头文件,包含 Viewport、Rect、ResourceBarrierDesc 结构体
- 实现 ID3D12GraphicsCommandList 封装
- 实现所有渲染命令:TransitionBarrier、UAVBarrier、AliasBarrier
- 实现状态追踪和资源追踪
- 添加到 CMakeLists.txt 构建系统
- 修复 tests/D3D12/run.bat 路径问题
|
2026-03-15 18:05:06 +08:00 |
|
|
|
58341c9daf
|
docs: 添加 D3D12 测试文档
|
2026-03-15 17:43:35 +08:00 |
|
|
|
e807dbcd96
|
fix: 截图后自动退出,添加 compare_ppm.py
|
2026-03-15 17:41:57 +08:00 |
|
|
|
3600e0e74b
|
add: 添加 run.bat 脚本
|
2026-03-15 17:38:40 +08:00 |
|
|
|
182025be6a
|
fix: 修复 CMakeLists.txt 路径并添加 stbi 库
|
2026-03-15 17:37:00 +08:00 |
|
|
|
4881aee70a
|
refactor: 将截图功能移到RHI模块的D3D12Screenshot类
|
2026-03-15 15:39:15 +08:00 |
|
|
|
c79533c436
|
fix: 修复截图帧数不一致问题,改为30帧
|
2026-03-15 15:15:59 +08:00 |
|
|
|
60db4b77f8
|
fix: 截图帧数改为30帧
|
2026-03-15 15:09:58 +08:00 |
|
|
|
c59b8c501c
|
refactor: 用Engine Logger替换旧日志函数
|
2026-03-15 14:59:33 +08:00 |
|
|
|
3767f3a6c5
|
fix: 修复Logger模块Bug\n- Logger.h: m_categoryEnabled数组初始化错误,只有第一个元素为true\n- FileLogSink: 添加文件关闭时自动重开逻辑\n- main.cpp: 集成Engine Logger
|
2026-03-15 14:55:23 +08:00 |
|
|
|
c6d7ef4c39
|
feat: 集成engine日志系统到D3D12测试程序\n- FileLogSink每次写入后刷新\n- main.cpp使用Logger输出日志
|
2026-03-15 14:25:36 +08:00 |
|
|
|
e7b32e55f7
|
refactor: 将stbi库从tests/D3D12移动到engine/third_party/stbi
|
2026-03-15 13:57:47 +08:00 |
|
|
|
549178de35
|
fix: 修复D3D12截图功能 - 使用正确的buffer尺寸和row pitch获取
|
2026-03-15 13:54:58 +08:00 |
|
|
|
3d285fa98a
|
fix: 修复截图保存功能和CreateCommittedResource参数问题
- 修复SaveScreenshot函数中D3D12_RESOURCE_DESC的初始化
- 添加完整的SampleDesc和Layout字段
- 修复从PRESENT状态正确转换到COPY_SOURCE进行读取
- 启用D3D12 Debug Layer以获取更好的调试信息
- 添加日志输出到文件以便捕获调试信息
|
2026-03-15 12:51:18 +08:00 |
|
|
|
1a5bcd75d9
|
feat: 添加截图保存Debug工具
- 添加SaveScreenshot函数使用D3D12 Readback方式读取渲染目标
- 保存为PPM格式(在第2帧自动保存到screenshot.ppm)
- 程序可自行测试渲染结果
|
2026-03-15 03:29:28 +08:00 |
|
|
|
17c8ea46c5
|
feat: 实现D3D12Fence封装
- 添加D3D12Fence类封装ID3D12Fence
- 包含Signal/Wait/GetCompletedValue等同步功能
- 更新测试项目使用新的封装类
|
2026-03-15 03:23:39 +08:00 |
|
|
|
8fb11dc650
|
feat: 实现D3D12CommandQueue和D3D12CommandAllocator
- 添加D3D12CommandQueue类封装ID3D12CommandQueue
- 添加D3D12CommandAllocator类封装ID3D12CommandAllocator
- 在D3D12Enum.h中添加CommandQueueType转换函数
- 在CMake中添加Res文件夹自动拷贝到输出目录
- 更新测试项目使用新的封装类
|
2026-03-15 03:15:12 +08:00 |
|
|
|
cba4f9c838
|
feat: 实现D3D12Device类,整合D3D12Enum.h转换函数
- 简化D3D12Device,仅封装ID3D12Device和IDXGIFactory
- 将D3D12Common.h中的转换函数合并到D3D12Enum.h
- 添加ResourceStates枚举到Enums.h
- 更新测试项目使用新的D3D12Device类
- 更新CMake配置
|
2026-03-15 03:02:15 +08:00 |
|
|
|
b2c7627a1b
|
docs: 更新第二阶段计划,反映实际目录结构和已完成任务
|
2026-03-15 02:27:05 +08:00 |
|
|
|
be6abd7bf6
|
refactor: RHI枚举改为独立编号,添加D3D12转换层
|
2026-03-15 02:24:56 +08:00 |
|
|
|
3e89489078
|
refactor: 添加RHI Enums.h并在D3D12测试中替换部分D3D12枚举
|
2026-03-15 02:05:28 +08:00 |
|
|
|
f427eb2588
|
refactor: 删除旧的RHI实现,添加D3D12测试用例和第二阶段计划
|
2026-03-15 01:58:30 +08:00 |
|
|
|
9932d860a7
|
chore: 删除未使用的资源文件
|
2026-03-15 01:22:34 +08:00 |
|
|
|
977054164c
|
Add Chinese comments to D3D12 minimum viable system for better readability
|
2026-03-15 01:20:53 +08:00 |
|
|
|
d8882ab93f
|
refactor: 移除HelloEarth示例,统一使用D3D12最小可行系统
|
2026-03-15 00:43:54 +08:00 |
|
|
|
9a7a6102b5
|
feat: 添加D3D12最小可行系统示例
|
2026-03-15 00:43:10 +08:00 |
|
|
|
827a0c6302
|
chore: 清理构建产物和临时文件
|
2026-03-15 00:19:57 +08:00 |
|
|
|
15f42a1af5
|
feat: 添加CommandList常量和DSV支持,完善RenderContext
|
2026-03-15 00:08:03 +08:00 |
|
|
|
ab29013c01
|
fix: 修复VertexBuffer/IndexBuffer SizeInBytes错误及Fence Signal类型问题
|
2026-03-14 14:20:57 +08:00 |
|
|
|
3ad317afb2
|
feat: 修复RHI渲染循环问题
- 修复RootSignature参数数量与HelloEarth一致
- 修复StaticMeshComponent中device为nullptr的问题
- 修复CommandList::Reset类型转换问题
- 修复RTV创建使用nullptr而不是rtvDesc
- 添加SwapChain的GetCurrentRenderTarget方法
- 修复DepthStencil创建问题(暂时跳过)
- 渲染循环基本可运行
|
2026-03-14 03:13:10 +08:00 |
|
|
|
5f12393424
|
feat: 实现D3D12 RHI抽象层,修复PSO创建问题
- 添加RHI接口定义(IRHIDevice, ICommandList, IResource等)
- 实现D3D12Device, D3D12CommandList, D3D12PipelineState等
- 修复RootSignature参数数量(3->4)与HelloEarth一致
- 修复DSV格式设置(Unknown->D24_UNorm_S8_UInt)
- 添加Geometry Shader编译
- 创建XCEngineDemo项目验证RHI功能
|
2026-03-14 02:42:59 +08:00 |
|
|
|
6a0dfb150d
|
docs: 添加第二阶段计划 - RHI抽象层封装
|
2026-03-13 21:24:02 +08:00 |
|