|
|
2b3ac27243
|
Add OpenGL backend project and third phase plan
|
2026-03-16 13:18:53 +08:00 |
|
|
|
554c48448b
|
Implement IShader and ISwapChain interfaces for D3D12 backend
- D3D12Shader now implements IShader interface with GetBytecode, GetBytecodeSize, GetType, GetInputLayout
- D3D12SwapChain now implements ISwapChain interface with GetBackBuffer returning IResource*
- Added D3D12Texture back buffer storage to SwapChain
- Fixed ISwapChain const correctness (GetCurrentBackBufferIndex, GetBackBuffer)
- main.cpp: use GetD3D12Bytecode() instead of GetBytecode() for PSO creation
|
2026-03-16 12:38:17 +08:00 |
|
|
|
f4d94bda3d
|
Make D3D12Sampler implement ISampler interface
|
2026-03-16 00:35:18 +08:00 |
|
|
|
1d99ef4d31
|
Make D3D12PipelineState implement IPipelineState interface
|
2026-03-16 00:28:26 +08:00 |
|
|
|
8c1d68da57
|
Make D3D12RootSignature implement IRootSignature interface
|
2026-03-16 00:09:42 +08:00 |
|
|
|
068fea77f4
|
Make D3D12QueryHeap implement IQueryHeap interface
|
2026-03-16 00:04:06 +08:00 |
|
|
|
37750fda7d
|
Make D3D12DescriptorHeap implement IDescriptorHeap interface
|
2026-03-16 00:00:46 +08:00 |
|
|
|
f231e3dc18
|
Make D3D12CommandAllocator implement ICommandAllocator interface
|
2026-03-15 23:50:45 +08:00 |
|
|
|
f063eb9329
|
Make D3D12Fence implement IFence interface
|
2026-03-15 23:44:39 +08:00 |
|
|
|
999c12a00e
|
Make D3D12Texture and D3D12Buffer implement ITexture and IBuffer interfaces
|
2026-03-15 23:31:59 +08:00 |
|
|
|
fb2b794156
|
Add IRHIDevice interface implementation to D3D12Device
- D3D12Device now inherits from IRHIDevice
- Implement factory methods: CreateCommandQueue, CreateCommandList, CreateFence, etc.
- Make D3D12CommandQueue implement ICommandQueue
- Add backward-compatible overloads for existing main.cpp code
- Remove duplicate Viewport/Rect definitions from D3D12CommandList.h
- Update main.cpp to use IRHIDevice* pointer
|
2026-03-15 23:03:06 +08:00 |
|
|
|
dfbd218435
|
Move D3D12 cpp files to src/RHI/D3D12/ subdirectory
|
2026-03-15 20:50:06 +08:00 |
|
|
|
4af4326767
|
Add abstract RHI interfaces for cross-platform support: RHISystem, RHIDevice, Resource, CommandQueue, CommandList, etc.
|
2026-03-15 20:47:17 +08:00 |
|
|
|
93bfba073c
|
Remove redundant InitResourceBarrier helper function from main.cpp
|
2026-03-15 20:41:11 +08:00 |
|
|
|
d52028e196
|
Update main.cpp to use D3D12CommandList wrapper methods, add SetRenderTargets and Clear overloads
|
2026-03-15 20:36:42 +08:00 |
|
|
|
2a5fc4f0d4
|
Add GetDescriptorHandleIncrementSize to D3D12Device and update main.cpp to use wrapper
|
2026-03-15 20:31:37 +08:00 |
|
|
|
3e6388c221
|
Add D3D12Types.h with Types to D3D12 native type mappings
|
2026-03-15 20:28:03 +08:00 |
|
|
|
eab95df004
|
Add D3D12Common.h with helper functions for D3D12 backend
|
2026-03-15 20:21:37 +08:00 |
|
|
|
041d9ea422
|
Add Types.h with generic cross-platform types for RHI abstraction layer
|
2026-03-15 20:20:32 +08:00 |
|
|
|
b9285f37b1
|
Remove helper functions: CreateConstantBufferObject, UpdateConstantBuffer
|
2026-03-15 20:05:25 +08:00 |
|
|
|
a557ed75bf
|
Simplify depth stencil resource usage
|
2026-03-15 20:02:45 +08:00 |
|
|
|
e1bbe24f0d
|
Replace swap chain back buffers with D3D12Texture wrapper
|
2026-03-15 20:01:39 +08:00 |
|
|
|
13818fe641
|
Replace vertex/index buffer creation with D3D12Buffer wrapper
|
2026-03-15 19:58:22 +08:00 |
|
|
|
38e23e45c4
|
Replace depth buffer creation with D3D12Texture wrapper
|
2026-03-15 19:54:00 +08:00 |
|
|
|
632cba821d
|
Replace RTV/DSV/SRV creation with wrapper classes
|
2026-03-15 19:48:20 +08:00 |
|
|
|
70d3879687
|
Remove unused CreateTexture2D function
|
2026-03-15 19:40:24 +08:00 |
|
|
|
ff5dfc21db
|
Replace CreateTexture2D with D3D12Texture wrapper
|
2026-03-15 19:39:16 +08:00 |
|
|
|
3959f74908
|
Add D3D12QueryHeap and D3D12UnorderedAccessView
|
2026-03-15 19:30:19 +08:00 |
|
|
|
a1f0de4e4d
|
Remove helper functions: GetCommandAllocator, GetCommandList, GetD3DDevice, SwapD3D12Buffers
|
2026-03-15 19:25:43 +08:00 |
|
|
|
f1cbf4e3a6
|
Add D3D12Buffer::InitializeWithData for vertex/index buffers
|
2026-03-15 19:16:46 +08:00 |
|
|
|
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 |
|