diff --git a/src/mbgl/vulkan/buffer_resource.cpp b/src/mbgl/vulkan/buffer_resource.cpp index 2f6c1a282..e8750339b 100644 --- a/src/mbgl/vulkan/buffer_resource.cpp +++ b/src/mbgl/vulkan/buffer_resource.cpp @@ -78,7 +78,7 @@ BufferResource::BufferResource( const auto frameCount = backend.getMaxFrames(); totalSize = bufferWindowSize * frameCount; - bufferWindowVersions = std::vector(frameCount, 0); + bufferWindowVersions = std::vector(frameCount, VersionType{}); } const auto bufferInfo = vk::BufferCreateInfo() @@ -184,6 +184,14 @@ void BufferResource::update(const void* newData, std::size_t updateSize, std::si stats.bufferObjUpdates++; version++; + if (version == std::numeric_limits::max()) { + version = VersionType{} + 1; + + if (bufferWindowSize) { + std::ranges::fill(bufferWindowVersions, VersionType{}); + } + } + if (bufferWindowSize) { const auto frameIndex = context.getCurrentFrameResourceIndex(); bufferWindowVersions[frameIndex] = version;