Commit Graph

9 Commits

Author SHA1 Message Date
0948e0fdbe docs: Update RHI test refactoring status
- Mark P0-1 (Shader) and P0-2 (PipelineState) as completed
- Update test coverage matrix
- Add changelog v1.1
2026-03-25 12:30:05 +08:00
79422cfddd fix: simplify RenderDocCapture usage with TriggerCapture
- Remove BeginCapture/EndCapture complexity for manual frame capture
- Use TriggerCapture for single frame capture (simpler API)
- Move TriggerCapture before Present to ensure frame is captured
- Add SetForegroundWindow/SetFocus before TriggerCapture
- Remove default capture path in Initialize to allow SetCaptureFilePath to work
2026-03-23 19:40:50 +08:00
1acea6bf69 Improve RenderDocCapture API
- Add SetWindow() method for separate window configuration
- BeginCapture/EndCapture now return bool for error feedback
- Add GetCapture() method to retrieve capture file info
- Add LaunchReplayUI() method
- Add SetCaptureOptionU32() for user-configurable capture options
- Add null pointer checks in BeginCapture with Logger warnings
- Add RenderDocCaptureInfo struct for capture file metadata
2026-03-23 18:37:22 +08:00
36683b4bb3 Fix RenderDoc OpenGL capture - pass HGLRC instead of HDC
Critical fix: For OpenGL, RenderDoc requires HGLRC (OpenGL context) as
the device pointer, not HDC. Previously OpenGL test incorrectly passed
HDC which caused capture to silently fail (NumCaptures=0).

Changes:
- OpenGLDevice: Add wglCreateContextAttribsARB support for debug context
- OpenGLDevice: Create OpenGL 4.6 core profile with debug flag
- RenderDocCapture: Pass correct window to SetActiveWindow/StartFrameCapture
- OpenGL test: Pass HGLRC via SetDevice(), use BeginCapture/EndCapture

Fix root cause identified via RenderDoc docs analysis:
  'For OpenGL it must be the HGLRC, GLXContext, or EGLContext'
2026-03-23 18:35:49 +08:00
e9f4f2dc49 Integrate RenderDoc frame capture into D3D12 minimal test
- Add SetDevice() and GetNumCaptures() methods to RenderDocCapture
- Fix initialization order: RenderDoc before D3D12, then SetDevice after
- Use nullptr for window param in StartFrameCapture/EndFrameCapture
- Add BeginCapture at frame 29, EndCapture at frame 30
- Set capture file path template to .\minimal_frame30
- Copy renderdoc.dll (26MB redistributable) to test output
- Engine/third_party/renderdoc/ now contains working renderdoc.dll
2026-03-23 17:47:43 +08:00
81dc337262 feat: add RenderDocCapture to Debug module for frame capture debugging
- Add RenderDocCapture class for dynamic loading of renderdoc.dll
- Support BeginCapture/EndCapture/TriggerCapture APIs
- Add RenderDoc log category
- Add unit tests for RenderDocCapture in tests/debug
2026-03-23 17:11:01 +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
83fd517974 feat: 实现日志与调试系统(Debug模块)
- LogLevel: 日志级别枚举 (Verbose, Debug, Info, Warning, Error, Fatal)
- LogCategory: 日志分类 (General, Rendering, Physics, Memory, Threading等)
- ILogSink: 日志输出接口
- ConsoleLogSink: 控制台输出, 支持Windows颜色
- FileLogSink: 文件日志输出
- FileWriter: 文件写入器
- Logger: 日志管理器, 支持多sink, 分类控制
- Profiler: 性能分析器
- 单元测试覆盖
2026-03-13 20:53:57 +08:00