Search Issue Tracker
Fixed in 5.4.0
Votes
0
Found in
5.1.0a2
Issue ID
678001
Regression
No
[ComputeBuffer] Improve error messaging on ComputeBuffer constructor usage
Trying to create a new ComputeBuffer from code with
ComputeBuffer c = new ComputeBuffer (5, 5);
I get these errors printed to the Console:
"SUCCEEDED(hr)"
"SUCCEEDED(hr)"
"SUCCEEDED(hr)"
"DestroyBuffer can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function."
None if this is very helpful and the documentation for ComputeBuffer doesn't give any details on this either.
Comments (2)
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Inspector loses focus or Material doesn't update when using GetModifiedMaterial with a Mask component
- Crash on GfxDeviceClient::AllocateBufferInternal when entering Play mode using Graphics.RenderPrimitives and Graphics.DrawProcedural in the scene
- Import TextMesh Pro window opens when the Text Mesh Pro Essentials and Examples are already imported when creating a new TextMesh Pro GameObject in the Hierarchy with TextMesh Pro settings reset
- Video is not rendered when the VideoPlayer GameObject is disabled and re-enabled after playback starts while using Material Override render mode
- Selection outline is not shown when selecting a high intensity HDR Swatch preset in Color Picker
Simon-O
Aug 25, 2016 18:20
A destroyBuffer appears to be called implicitly when the runtime terminates if a buffer has been created but not released properly.
Since the cleanup thread isn't the same as the UI thread, the exception mentioned here is thrown.
Make sure you're tidying up your resources appropriately.
reefwirrax
May 05, 2016 11:56
Indeed, i even had DestroyBuffer can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
...when destroyBuffer codeword does not exist in my code,