diff --git a/README.md b/README.md
index ba531b8623a..1f1a5fcd7dc 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ repositories {
}
dependencies {
- implementation 'com.google.android.filament:filament-android:1.9.14'
+ implementation 'com.google.android.filament:filament-android:1.9.15'
}
```
@@ -63,7 +63,7 @@ A much smaller alternative to `filamat-android` that can only generate OpenGL sh
iOS projects can use CocoaPods to install the latest release:
```
-pod 'Filament', '~> 1.9.14'
+pod 'Filament', '~> 1.9.15'
```
### Snapshots
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index fb060c86d6a..ed6a5625bbb 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -5,6 +5,10 @@ A new header is inserted each time a *tag* is created.
## Next release (main branch)
+## v1.9.15
+
+filamat / matc: fix sporatic crash.
+
## v1.9.14
- Improve bloom/emissive with glTF files.
diff --git a/android/gradle.properties b/android/gradle.properties
index f742ca1dec4..a268799c9a6 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
GROUP=com.google.android.filament
-VERSION_NAME=1.9.14
+VERSION_NAME=1.9.15
POM_DESCRIPTION=Real-time physically based rendering engine for Android.
diff --git a/docs/qrcode/index.html b/docs/qrcode/index.html
new file mode 100644
index 00000000000..06e00e0fa6b
--- /dev/null
+++ b/docs/qrcode/index.html
@@ -0,0 +1,143 @@
+
+
+
+
+ Filament Remote
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Drop a glb file here.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/filament/backend/src/metal/MetalContext.h b/filament/backend/src/metal/MetalContext.h
index 4d8ebd731fa..dad842f009b 100644
--- a/filament/backend/src/metal/MetalContext.h
+++ b/filament/backend/src/metal/MetalContext.h
@@ -24,6 +24,8 @@
#include
#include
+#include
+
#include
namespace filament {
@@ -92,6 +94,8 @@ struct MetalContext {
uint64_t signalId = 1;
TimerQueryInterface* timerQueryImpl;
+
+ std::stack groupMarkers;
};
id getPendingCommandBuffer(MetalContext* context);
diff --git a/filament/backend/src/metal/MetalDriver.mm b/filament/backend/src/metal/MetalDriver.mm
index c67b1a0b69c..d318fe54632 100644
--- a/filament/backend/src/metal/MetalDriver.mm
+++ b/filament/backend/src/metal/MetalDriver.mm
@@ -138,6 +138,8 @@
mContext->currentDrawSwapChain->releaseDrawable();
CVMetalTextureCacheFlush(mContext->textureCache, 0);
+
+ assert_invariant(mContext->groupMarkers.empty());
}
void MetalDriver::flush(int) {
@@ -759,6 +761,11 @@
mContext->currentRenderPassEncoder =
[getPendingCommandBuffer(mContext) renderCommandEncoderWithDescriptor:descriptor];
+ if (!mContext->groupMarkers.empty()) {
+ mContext->currentRenderPassEncoder.label =
+ [NSString stringWithCString:mContext->groupMarkers.top()
+ encoding:NSUTF8StringEncoding];
+ }
// Flip the viewport, because Metal's screen space is vertically flipped that of Filament's.
NSInteger renderTargetHeight =
@@ -858,11 +865,12 @@
}
void MetalDriver::pushGroupMarker(const char* string, size_t len) {
-
+ mContext->groupMarkers.push(string);
}
void MetalDriver::popGroupMarker(int dummy) {
-
+ assert_invariant(!mContext->groupMarkers.empty());
+ mContext->groupMarkers.pop();
}
void MetalDriver::startCapture(int) {
diff --git a/filament/backend/src/opengl/OpenGLDriver.cpp b/filament/backend/src/opengl/OpenGLDriver.cpp
index 78518ea7db8..bdee8845a48 100644
--- a/filament/backend/src/opengl/OpenGLDriver.cpp
+++ b/filament/backend/src/opengl/OpenGLDriver.cpp
@@ -361,7 +361,10 @@ template
backend::Handle OpenGLDriver::initHandle(ARGS&& ... args) noexcept {
static_assert(sizeof(D) <= 208, "Handle<> too large");
backend::Handle h{ allocateHandle(sizeof(D)) };
+ registerHandleId(h.getId());
+
D* addr = handle_cast(h);
+
new(addr) D(std::forward(args)...);
#if !defined(NDEBUG) && UTILS_HAS_RTTI
addr->typeId = typeid(D).name();
@@ -401,6 +404,7 @@ void OpenGLDriver::destruct(Handle& handle, D const* p) noexcept {
#endif
p->~D();
mHandleArena.free(const_cast(p), sizeof(D));
+ unregisterHandleId(handle.getId());
}
}
diff --git a/filament/backend/src/opengl/OpenGLDriver.h b/filament/backend/src/opengl/OpenGLDriver.h
index 1b306184f74..7000374db9b 100644
--- a/filament/backend/src/opengl/OpenGLDriver.h
+++ b/filament/backend/src/opengl/OpenGLDriver.h
@@ -27,8 +27,7 @@
#include