mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-14 00:23:50 +00:00
fix(rendering): water reflection render pass compat, anisotropy feature, shadow pool race
Three bugs found via AMD RADV crash log: 1. Water reflection render pass used BOTTOM_OF_PIPE as srcStageMask but pipelines were created against the main pass (EARLY_FRAGMENT_TESTS | COLOR_ATTACHMENT_OUTPUT). AMD enforces strict render pass compatibility → SIGSEGV when scene renders into reflection texture. 2. samplerAnisotropy was never enabled during device creation despite being used in sampler creation — now requested via PhysicalDeviceSelector. 3. Shadow texture descriptor pool was reset each frame while prior frame's command buffers might still reference it. Split into per-frame-slot pools so each reset is fence-guarded.
This commit is contained in:
parent
62b8a757a3
commit
4f7912cf45
4 changed files with 20 additions and 12 deletions
|
|
@ -391,8 +391,9 @@ private:
|
|||
VkDescriptorSet shadowParamsSet_ = VK_NULL_HANDLE;
|
||||
::VkBuffer shadowParamsUBO_ = VK_NULL_HANDLE;
|
||||
VmaAllocation shadowParamsAlloc_ = VK_NULL_HANDLE;
|
||||
// Per-frame pool for foliage shadow texture descriptor sets
|
||||
VkDescriptorPool shadowTexPool_ = VK_NULL_HANDLE;
|
||||
// Per-frame pools for foliage shadow texture descriptor sets (one per frame-in-flight)
|
||||
static constexpr uint32_t kShadowTexPoolFrames = 2;
|
||||
VkDescriptorPool shadowTexPool_[kShadowTexPoolFrames] = {};
|
||||
|
||||
// Particle pipelines
|
||||
VkPipeline particlePipeline_ = VK_NULL_HANDLE; // M2 emitter particles
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue