From 6d0a47b37c28107fdbe034a0ef185c2615aeba0a Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Mon, 25 Aug 2025 13:31:31 -0700 Subject: [PATCH] add concept of offset to instancebuffer offset --- filament/src/details/InstanceBuffer.h | 3 +++ filament/src/details/View.cpp | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/filament/src/details/InstanceBuffer.h b/filament/src/details/InstanceBuffer.h index 662682f3ad..4fb4a5e9aa 100644 --- a/filament/src/details/InstanceBuffer.h +++ b/filament/src/details/InstanceBuffer.h @@ -30,6 +30,7 @@ #include #include +#include namespace filament { @@ -54,6 +55,7 @@ public: utils::CString const& getName() const noexcept { return mName; } backend::BufferObjectHandle getHandle() const noexcept { return mHandle; } + uint32_t getOffset() const noexcept { return mOffset; } private: friend class RenderableManager; @@ -62,6 +64,7 @@ private: utils::CString mName; size_t mInstanceCount; backend::BufferObjectHandle mHandle; + uint32_t mOffset = 0; }; FILAMENT_DOWNCAST(InstanceBuffer) diff --git a/filament/src/details/View.cpp b/filament/src/details/View.cpp index aa80777c85..f590380e09 100644 --- a/filament/src/details/View.cpp +++ b/filament/src/details/View.cpp @@ -810,7 +810,8 @@ void FView::prepare(FEngine& engine, DriverApi& driver, RootArenaScope& rootAren descriptorSet.setBuffer(layout, +PerRenderableBindingPoints::OBJECT_UNIFORMS, instance.buffer ? instance.buffer->getHandle() : mRenderableUbh, - 0, sizeof(PerRenderableUib)); + instance.buffer ? instance.buffer->getOffset() : 0, + sizeof(PerRenderableUib)); descriptorSet.setBuffer(layout, +PerRenderableBindingPoints::BONES_UNIFORMS,