-
Notifications
You must be signed in to change notification settings - Fork 55
Compatibility
There is few things we should care when talking about using NSprites in real projects. Since this package uses GPU instancing
and ComputeBuffer on CPU side with StructuredBuffer<T> on GPU side (in shader) to send sprites data, we need platform and Graphics API support
this two.
So you can see Platform and Graphics API compatibility tables.
This is complicated a bit, because you can run any of APIs, but some doesn't support all NSprites feature (PropertyUpdateMode).
Direct3D11, OpenGLCore and OpenGLES3 don't support Reactive and Static update modes, using this modes producing graphic artifacts. Though you can use EachUpdate which pretty stable.
Though I have several ideas how I can try to bring full support for listed APIs.
| Graphics API | Description |
|---|---|
| Direct3D11 | EachUpdate mode |
| Direct3D12 | ✅ supported |
| Vulkan | ✅ supported |
| OpenGLCore | EachUpdate mode |
| OpenGLES3 | EachUpdate mode |
⚠️ NOTE: unity by default sets graphics API automatically to best depending on your current platform, so it can be Direct3D11 in most cases, which have problems withStaticandReactiveupdate modes, so select more suitable API or use onlyEachUpdatemode.
In terms of platform we sometimes have problems with using ComputeBuffer, because some platforms don't support it, and some have limited StructuredBuffer<T> count. Down below you can see table with current state of what we know about compatibility on platforms. This information will be updated with more details.
If you have any information please share.
| Platform | Description |
|---|---|
| PC | ✅ supported |
| WebGL | ⛔ can't use ComputeBuffer
|
| Android X | ❔ not fully checked |
| Android 9 | ⛔ can't use StructuredBuffer
|
| iOS | ❓ not checked |