Hi! I've encountered some issues while developing mobile detection app.
On my device Xiaomi Redmi Note 4 in logs appear two errors:
- On NN interference start there are
`-------- GLSL link error: Warning: barrier used in non-uniform control flowWarning: barrier used in non-uniform control flow
UnityEngine.Resources:Load(String, Type)
UnityEngine.Resources:Load(String) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Resources/Resources.bindings.cs:46)
Barracuda.ComputeShaderSingleton:LoadIf(Boolean, String) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:38)
Barracuda.ComputeShaderSingleton:LoadIf(Boolean, String, List`1) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:45)
Barracuda.ComputeShaderSingleton:.ctor() (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:24)
Barracuda.ComputeShaderSingleton:.cctor() (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:11)
Barracuda.BarracudaBackendsFactory:CreateOps(Type, ITensorAllocator, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaBackendsFactory.cs:50)
Barracuda.BarracudaBackendsFactory:CreateWorker(Type, Model, String[], String[], Boolean, Type) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaBackendsFactory.cs:99)
Barracuda.WorkerFactory:CreateWorker(Type, Model, String[], String[], Boolean, Type) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:331)
Barracuda.WorkerFactory:CreateWorker(Model, String[], String[], Device, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:345)
Barracuda.WorkerFactory:CreateWorker(Model, String[], Device, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:426)
Barracuda.WorkerFactory:CreateWorker(Model, Device, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:414)
Barracuda.WorkerFactory:CreateWorker(Model, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:403)
NNHandler:.ctor(NNModel) (at C:\Users\Kuuupa\YOLO\Assets\Scripts\NN\NNHandler.cs:13)
NNImageHandler:Start() (at C:\Users\Kuuupa\YOLO\Assets\Scripts\NNImageHandler.cs:33)
[./Runtime/GfxDevice/opengles/ApiGLES.cpp line 687]
(Filename: /Users/builduser/buildslave/unity/build/Runtime/Export/Resources/Resources.bindings.cs Line: 46)`
and
ERROR: Unable to link compute shader: Dense.Dense_T16x16_R4x4 UnityEngine.Resources:Load(String, Type) UnityEngine.Resources:Load(String) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Resources/Resources.bindings.cs:46) Barracuda.ComputeShaderSingleton:LoadIf(Boolean, String) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:38) Barracuda.ComputeShaderSingleton:LoadIf(Boolean, String, List
1) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:45)
Barracuda.ComputeShaderSingleton:.ctor() (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:24)
Barracuda.ComputeShaderSingleton:.cctor() (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\ComputeShaderSingleton.cs:11)
Barracuda.BarracudaBackendsFactory:CreateOps(Type, ITensorAllocator, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaBackendsFactory.cs:50)
Barracuda.BarracudaBackendsFactory:CreateWorker(Type, Model, String[], String[], Boolean, Type) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaBackendsFactory.cs:99)
Barracuda.WorkerFactory:CreateWorker(Type, Model, String[], String[], Boolean, Type) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:331)
Barracuda.WorkerFactory:CreateWorker(Model, String[], String[], Device, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:345)
Barracuda.WorkerFactory:CreateWorker(Model, String[], Device, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:426)
Barracuda.WorkerFactory:CreateWorker(Model, Device, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:414)
Barracuda.WorkerFactory:CreateWorker(Model, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Barracuda.cs:403)
NNHandler:.ctor(NNModel) (at C:\Users\Kuuupa\YOLO\Assets\Scripts\NN\NNHandler.cs:13)
NNImageHandler:Start() (at C:\Users\Kuuupa\YOLO\Assets\Scripts\NNImageHandler.cs:33)
[./Runtime/GfxDevice/opengles/GfxDeviceGLES.cpp line 2571]
(Filename: /Users/builduser/buildslave/unity/build/Runtime/Export/Resources/Resources.bindings.cs Line: 46)
`
one after another.
And on end of interference there is
`allocation 0x0xc0000001 already registered @ ./Runtime/GfxDevice/opengles/DataBuffersGLES.cpp:l234 size 4096; now calling from ./Runtime/GfxDevice/opengles/DataBuffersGLES.cpp:l234 size 84500?
UnityEngine.ComputeBuffer:InitBuffer(Int32, Int32, ComputeBufferType, ComputeBufferMode)
UnityEngine.ComputeBuffer:.ctor(Int32, Int32, ComputeBufferType, ComputeBufferMode, Int32) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Shaders/ComputeShader.bindings.cs:90)
UnityEngine.ComputeBuffer:.ctor(Int32, Int32) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Shaders/ComputeShader.bindings.cs:65)
Barracuda.ComputeTensorData:.ctor(TensorShape, String, Boolean) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaReferenceCompute.cs:37)
Barracuda.ReferenceComputeOps:Pin(Tensor) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaReferenceCompute.cs:550)
Barracuda.ComputeOps:Conv2D(Tensor, Tensor, Tensor, Int32[], Int32[]) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaCompute.cs:654)
Barracuda.PrecompiledComputeOps:Conv2D(Tensor, Tensor, Tensor, Int32[], Int32[]) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\BarracudaPrecompiledCompute.cs:235)
Barracuda.VerboseOps:Barracuda.IOps.Conv2D(Tensor, Tensor, Tensor, Int32[], Int32[]) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\VerboseOps.cs:40)
Barracuda.d__27:MoveNext() (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\GenericWorker.cs:204)
Barracuda.GenericWorker:Execute() (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\GenericWorker.cs:117)
Barracuda.GenericWorker:Execute(Tensor) (at C:\Users\Kuuupa\YOLO\Library\PackageCache\[email protected]\Barracuda\Core\Backends\GenericWorker.cs:111)
NNImageHandler:Update() (at C:\Users\Kuuupa\YOLO\Assets\Scripts\NNImageHandler.cs:43)
[./Runtime/Allocator/MemoryManager.cpp line 1645]
(Filename: /Users/builduser/buildslave/unity/build/Runtime/Export/Shaders/ComputeShader.bindings.cs Line: 90)
`
But these 3 errors didn't occur on another tested device that is Huawei Mate 10.
Another have place if I try run WebCamTexture together with Barracuda Worker on my Xiaomi :
`
OPENGL NATIVE PLUG-IN ERROR: GL_INVALID_ENUM: enum argument out of range
UnityEngine.WebCamTexture:INTERNAL_CALL_Play(WebCamTexture)
UnityEngine.WebCamTexture:Play() (at /Users/builduser/buildslave/unity/build/artifacts/Android/modules/Audio/UnityEngineWebCamTextureBindings.gen.cs:63)
NNImageHandler:Start() (at C:\Users\Kuuupa\YOLO\Assets\Scripts\NNImageHandler.cs:30)
[./Runtime/GfxDevice/opengles/GfxDeviceGLES.cpp line 348]
(Filename: /Users/builduser/buildslave/unity/build/artifacts/Android/modules/Audio/UnityEngineWebCamTextureBindings.gen.cs Line: 63)
`
I have no idea if these errors have something in common so I post them as one issue.
They didn't occur also on my laptop while testing.
I use YOLOv2 Tiny network, downloaded already in onnx format.