|
|
720dd422d5
|
RHI: Add Compute/Dispatch unit tests (P1-7) and fix shader type bugs
Bug fixes:
- D3D12Shader::Compile: Set m_type based on target string (cs_/vs_/ps_/gs_)
- OpenGLShader::Compile: Parse target parameter to determine shader type
- OpenGLShader::CompileCompute: Set m_type = ShaderType::Compute
- D3D12CommandList::SetPipelineState: Use correct PSO handle for Compute
New tests (test_compute.cpp, 8 tests):
- ComputeShader_Compile_ValidShader
- ComputeShader_GetType_ReturnsCompute
- ComputeShader_Shutdown_Invalidates
- PipelineState_SetComputeShader
- PipelineState_HasComputeShader_ReturnsTrue
- PipelineState_GetType_Compute
- PipelineState_EnsureValid_Compute
- CommandList_Dispatch_Basic
Test results: 232/232 passed (D3D12: 116, OpenGL: 116)
|
2026-03-25 13:52:11 +08:00 |
|
|
|
0f5d018c1a
|
refactor(RHI): 完成 Shader uniform 设置迁移到 CommandList
- 删除 RHIShader 的 OpenGL 风格 SetMat4/SetVec3/SetInt 等方法
- 添加 UniformInfo 结构体和 GetUniformInfos/GetUniformInfo 接口
- D3D12Shader 和 OpenGLShader 实现 CacheUniformInfos
- RHICommandList 添加 SetUniform*/SetGlobal* 统一接口
- D3D12 实现 D3D12PipelineLayout 管理 root signature 映射
- 修复 D3D12CommandList::SetPipelineStateInternal 在 Reset 后未重新应用 root signature 的问题
- 更新 OpenGL 集成测试使用新的 SetUniform* API
- 所有单元测试和集成测试通过 (8/8 integration tests)
|
2026-03-24 19:47:22 +08:00 |
|
|
|
c563db3123
|
D3D12: Add Quad integration test with texture sampling
- Add quad test that renders a textured quad with earth texture
- Add quad.hlsl shader with texture sampling (Texture2D + SamplerState)
- Add SRV descriptor heap and root signature with SRV table
- Fix MessageBox errors -> Log() console output
- Fix shader float2->float4 type mismatch
- Fix texture initialization to use proper command list handling
- Add shader error output to stderr in D3D12Shader
- Add Map error logging in D3D12Screenshot
|
2026-03-21 12:38:16 +08:00 |
|
|
|
e38d5ccede
|
feat(RHI): 实现 RHIBuffer, RHITexture, RHIShader 抽象基类
- 新增 RHIBuffer, RHITexture, RHIShader 抽象基类
- D3D12Buffer/Texture/Shader 继承抽象基类
- OpenGLBuffer/Texture/Shader 继承抽象基类
- 添加 RHICapabilities, RHIDevice 头文件
- RHIEnums 添加 Fragment/TessControl/TessEvaluation
- 文档更新差异处理策略
|
2026-03-17 17:26:41 +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 |
|
|
|
dfbd218435
|
Move D3D12 cpp files to src/RHI/D3D12/ subdirectory
|
2026-03-15 20:50:06 +08:00 |
|
|
|
f427eb2588
|
refactor: 删除旧的RHI实现,添加D3D12测试用例和第二阶段计划
|
2026-03-15 01:58:30 +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 |
|