MacのUnityでPlatformをPCにしているときにはGPUInstancingが正常に動くが、AndroidやiOSに設定すると絵が正しく表示されない
この件、めちゃくちゃハマったのですが、結論から言うとShader側で設けているBufferに対してCPU側から送るバッファのサイズがおかしかったのが原因でした。
なんで、Platform設定によってうまくいったりいかなかったりするんだろう???
しかもWindowsでEditorを動かしている際はPlatformの設定に関わらずうまく動くという...
一応、いかにサンプルを作りました。
github.com
P.S
DirectX* or desktop OpenGL doesn't really support half or fixed data types.
という記載を見かけたので、DirectXを使っているWindowsやdesktop OpenGLなんかではhalfがfloatに変換されているのかもって思いました。
検索キーワード用:DrawMeshInstancedIndirect,URP