Merge remote-tracking branch 'origin/master' into claude/issue-73
# Conflicts: # interfaces/Crafter.Graphics-Mesh.cppm
This commit is contained in:
commit
aafa458d41
9 changed files with 473 additions and 14 deletions
|
|
@ -281,6 +281,16 @@ void Mesh::Build(const CompressedMeshAsset& asset, VkCommandBuffer cmd, RTBuildO
|
|||
VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
|
||||
VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR);
|
||||
|
||||
// The compressed staging is only read by the decompress recorded above; the
|
||||
// subsequent BLAS build reads the decompressed vertex/index buffers, never
|
||||
// this. So hand it to the fence-keyed deletion queue (#101/#102) now rather
|
||||
// than pinning host-visible memory for the mesh's whole life. The recorded
|
||||
// vkCmdDecompressMemoryEXT still references compressedStaging.address, so it
|
||||
// must outlive this submit — which the queue guarantees: it retires the
|
||||
// allocation only after framesInFlight frames have elapsed, by which point
|
||||
// the decompress submit's fence has cleared.
|
||||
compressedStaging.DeferredClear();
|
||||
|
||||
allowUpdate = options.allowUpdate;
|
||||
builtInputCount = asset.vertexCount;
|
||||
RecordBLASBuild(*this, asset.vertexCount, asset.indexCount, BlasFlags(options), /*update*/ false, cmd);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue