Update session logs
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
# Session Log — 2026-07-12
|
||||||
|
|
||||||
|
## RHI Global Context Refactor
|
||||||
|
|
||||||
|
Reviewed the user's staged changes to the Vulkan RHI backend. The changes encompassed:
|
||||||
|
|
||||||
|
### Global Context Adoption
|
||||||
|
- RHI functions no longer take allocator parameters
|
||||||
|
- `_G_RHI_CONTEXT` provides `allocator` (user-facing objects) and `tmp` (short-lived temporaries)
|
||||||
|
- `prRhiInit(void)` / `prRhiDestroy(void)` manage the global context
|
||||||
|
|
||||||
|
### KTX Texture Bug Fix
|
||||||
|
- Original implementation only copied mip level 0
|
||||||
|
- Fixed to iterate all mip levels using `ktxTexture_GetImageOffset()`
|
||||||
|
- Final layout changed from `VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL` to `VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL`
|
||||||
|
|
||||||
|
### Frame-by-Frame Command Batching Pattern
|
||||||
|
- Commands that run every frame avoid arena allocation
|
||||||
|
- Use stack arrays with while-loop to batch operations in fixed-size chunks
|
||||||
|
- Applied to: `prRhiCmdBindDescriptorSets`, `prRhiCmdBindVertexBuffers`, `prRhiCmdCopyBufferToImage`
|
||||||
|
|
||||||
|
### API Simplifications
|
||||||
|
- `prRhiCreateCommandPool`: removed desc parameter, uses `device->queue_family_index`
|
||||||
|
- `prRhiFreeCommandBuffers`: removed count parameter, uses `wpArrayCount`
|
||||||
|
- `prRhiAllocateDescriptorSet`: changed `u32 variable_count` to `WpU32Array variable_descriptor_counts`
|
||||||
|
- `prRhiCmdBindVertexBuffers`: changed raw pointer + count to `WpU64Array`
|
||||||
|
|
||||||
|
### New Pipeline Configuration
|
||||||
|
- Added `polygon_mode`, `cull_mode`, `front_face` to rasterization
|
||||||
|
- Added `depth_test_enable`, `depth_write_enable`, `depth_compare_op`
|
||||||
|
- Added `vertex_shader_entry_point`, `fragment_shader_entry_point` (not hardcoded to "main")
|
||||||
|
- Added `line_width`, `multisample_count`
|
||||||
|
|
||||||
|
### Code Style Updates
|
||||||
|
- All Vulkan info structs use C99 designated initializers
|
||||||
|
- Removed unnecessary type casts on opaque struct handles
|
||||||
|
- Added braces to all single-line if statements
|
||||||
|
- Braces rule moved from prism-rhi skill to AGENTS.md formatting section
|
||||||
|
|
||||||
|
## Documentation Updates
|
||||||
|
- Updated `prism-rhi` skill with all new conventions
|
||||||
|
- Updated `AGENTS.md` with frame-by-frame batching pattern
|
||||||
|
- Moved braces rule to `AGENTS.md` (not RHI-specific)
|
||||||
Reference in New Issue
Block a user