Commit Graph

8 Commits

Author SHA1 Message Date
eb4840eac4 【关键节点】修复D3D12CommandQueue::ExecuteCommandLists类型混淆bug并完善集成测试配置
1. D3D12CommandQueue::ExecuteCommandLists修复:确保正确调用GetNativeHandle()
2. 集成测试修复:传递&gCommandList而不是gCommandList.GetCommandList()
3. CMakeLists.txt修复:添加renderdoc.dll到所有D3D12/OpenGL集成测试的POST_BUILD命令

测试验证:
- 单元测试:144/144通过
- D3D12集成测试:minimal/quad/triangle/sphere全部通过
- OpenGL集成测试:minimal/quad/triangle/sphere全部通过
2026-03-24 05:00:38 +08:00
0a3fe842b9 Refactor RHI ResourceView abstraction layer for unified cross-platform interface
- Create unified RHIResourceView base interface with type-specific Initialize methods
- Implement D3D12ResourceView with RTV/DSV/SRV/UAV/CBV support
- Implement OpenGL ResourceView simulation layer using FBO, texture units, and UBO
- Add OpenGLTextureUnitAllocator for managing texture unit bindings
- Add OpenGLUniformBufferManager for UBO binding points
- Add OpenGLFramebuffer for FBO management
- Remove deprecated D3D12 view classes (RenderTargetView, DepthStencilView, etc.)
- Fix ExecuteCommandLists type confusion bug by adding GetNativeHandle to RHICommandList
- Fix test bug where Close() was called before ExecuteCommandLists
- Update all integration tests to use new D3D12ResourceView class
- All tests pass: 144 unit tests + 8 integration tests
2026-03-24 03:49:13 +08:00
3af24bb1bc revert: restore BeginCapture/EndCapture instead of TriggerCapture
TriggerCapture caused incomplete rdc files due to async file writing.
BeginCapture/EndCapture ensures synchronous file write on EndCapture.
2026-03-23 20:23:20 +08:00
6f6bb13da4 add RenderDocCapture to D3D12 quad, sphere, triangle integration tests
- Add RenderDocCapture include
- Initialize RenderDocCapture before D3D12 device creation
- SetDevice after D3D12 device initialization
- TriggerCapture on frame 29 before Present
- Add RenderDocCapture::Get().Shutdown() on exit
2026-03-23 20:14:28 +08:00
0eadc7cfd1 refactor: use XCEngine::Math module in sphere test, update matrix to left-handed coordinate system
- Use Matrix4x4 type directly instead of float[16]
- Remove wrapper functions (IdentityMatrix, TranslationMatrix, PerspectiveMatrix, LookAtMatrix, MultiplyMatrix, TransposeMatrix)
- Direct use of Matrix4x4::Identity(), Matrix4x4::Translation(), Matrix4x4::Perspective()
- Transpose matrices before uploading to GPU to match HLSL column-major
- Update Math module Perspective and Orthographic to left-handed coordinate system
- Update math unit tests for new matrix values
2026-03-22 20:08:36 +08:00
7d1362a41e fix: D3D12 sphere - enable depth write, fix texture UV seam tearing and orientation
- Enable depth write mask (D3D12_DEPTH_WRITE_MASK_ALL) to fix rendering artifacts
- Change texture address mode from Wrap to Clamp to fix UV seam tearing
- Remove V coordinate flip in shader to fix upside-down texture
- Add ground truth screenshot (GT.ppm) for testing
2026-03-22 18:41:11 +08:00
6c92164a03 fix: D3D12 sphere rendering - correct matrix math, enable depth test, add texture sampling
- Fix TranslationMatrix to use correct indices (m12/m13/m14 for translation)
- Fix PerspectiveMatrix projection formula
- Enable depth testing (was disabled)
- Add texture sampling in pixel shader
- Adjust sphere radius to 1.0 and position to z=5
- Fix D3D12Buffer copy size calculation
2026-03-22 17:58:30 +08:00
36d3decef6 feat: 添加独立的输入系统和平台抽象层
- 新增 Platform 模块:PlatformTypes.h, Window.h, WindowsWindow
- 新增 Input 模块:InputTypes, InputEvent, InputAxis, InputModule, InputManager
- 新增 WindowsInputModule 处理 Win32 消息转换
- 将 RHI 集成测试从 render_model 迁移到 sphere
- 更新 CMakeLists.txt 添加 Platform 和 Input 模块
2026-03-22 15:21:52 +08:00