Problems on latest develop

Hi, started getting the following crashes:

**-[MTLDebugDevice newBufferWithBytesNoCopy:length:options:deallocator:]:696: failed assertion `Buffer Validation**
**Cannot create buffer of zero length.**
**newBufferWithBytesNoCopy:pointer must not be nil.**

Stack trace:

#8	0x000000010777f328 in -[CaptureMTLDevice newBufferWithBytesNoCopy:length:options:deallocator:] ()
#9	0x0000000102fc5678 in juce::CoreGraphicsMetalLayerRenderer::Resources::Resources(id<MTLDevice>, CAMetalLayer*) at /Users/lee/dev/JUCE/modules/juce_gui_basics/native/juce_CGMetalLayerRenderer_mac.h:244
#10	0x0000000102fc54d8 in juce::CoreGraphicsMetalLayerRenderer::Resources::Resources(id<MTLDevice>, CAMetalLayer*) at /Users/lee/dev/JUCE/modules/juce_gui_basics/native/juce_CGMetalLayerRenderer_mac.h:239
#11	0x0000000102fc4dd0 in std::__1::__unique_if<juce::CoreGraphicsMetalLayerRenderer::Resources>::__unique_single std::__1::make_unique[abi:v15006]<juce::CoreGraphicsMetalLayerRenderer::Resources, id<MTLDevice>, CAMetalLayer*&>(id<MTLDevice>&&, CAMetalLayer*&) at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/__memory/unique_ptr.h:714
#12	0x0000000102fc48e0 in juce::RectangleList<float> juce::CoreGraphicsMetalLayerRenderer::drawRectangleList<juce::NSViewComponentPeer::displayLayer(CALayer*)::'lambda'(auto&&...)>(CAMetalLayer*, float, juce::NSViewComponentPeer::displayLayer(CALayer*)::'lambda'(auto&&...)&&, juce::RectangleList<float>, bool) at /Users/lee/dev/JUCE/modules/juce_gui_basics/native/juce_CGMetalLayerRenderer_mac.h:88
#13	0x0000000102fad374 in juce::NSViewComponentPeer::displayLayer(CALayer*) at /Users/lee/dev/JUCE/modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm:1995
#14	0x0000000102fc0450 in juce::JuceCALayerDelegate::JuceCALayerDelegate()::'lambda'(objc_object*, objc_selector*, CALayer*)::operator()(objc_object*, objc_selector*, CALayer*) const at /Users/lee/dev/JUCE/modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm:151
#15	0x0000000102fc04a4 in juce::JuceCALayerDelegate::JuceCALayerDelegate()::'lambda'(objc_object*, objc_selector*, CALayer*)::__invoke(objc_object*, objc_selector*, CALayer*) at /Users/lee/dev/JUCE/modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm:148
#16	0x000000019e6e4800 in CA::Layer::display_if_needed(CA::Transaction*) ()
#17	0x000000019e857e30 in CA::Context::commit_transaction(CA::Transaction*, double, double*) ()
#18	0x000000019e6c700c in CA::Transaction::commit() ()
#19	0x000000019a534e50 in __62+[CATransaction(NSCATransaction) NS_setFlushesWithDisplayLink]_block_invoke ()
#20	0x000000019ac10fbc in ___NSRunLoopObserverCreateWithHandler_block_invoke ()
#21	0x00000001971edac4 in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#22	0x00000001971ed9b0 in __CFRunLoopDoObservers ()
#23	0x00000001971ecfe8 in __CFRunLoopRun ()
#24	0x00000001971ec58c in CFRunLoopRunSpecific ()
#25	0x00000001a0a21df4 in RunCurrentEventLoopInMode ()
#26	0x00000001a0a21a84 in ReceiveNextEventCommon ()
#27	0x00000001a0a21988 in _BlockUntilNextEventMatchingListInModeWithFilter ()
#28	0x000000019a40bf58 in _DPSNextEvent ()
#29	0x000000019a40b0f4 in -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] ()
#30	0x000000019a3ff558 in -[NSApplication run] ()
#31	0x0000000102d3c968 in juce::MessageManager::runDispatchLoop() at /Users/lee/dev/JUCE/modules/juce_events/native/juce_MessageManager_mac.mm:337
#32	0x0000000102d3c83c in juce::JUCEApplicationBase::main() at /Users/lee/dev/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:265
#33	0x0000000102d3c668 in juce::JUCEApplicationBase::main(int, char const**) at /Users/lee/dev/JUCE/modules/juce_events/messages/juce_ApplicationBase.cpp:243

Switching back to master is fine - any ideas?
Thx

Which commit hash are you on?

This looks like the issue that was fixed here:

1 Like

tip of develop

Problem first appeared here by the looks of it:

9d50ab6c59d34ebcbe04a459ec3ac17bbf4bc748

What is the code or sequence of events that leads to the crash?

1 Like

Can’t reproduce now, this seems to have stopped it happening:

commit 1de392bbab873e2f401f4aeaba9fb9479d07301f