Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Error building Player: Shader error in 'FluidFoamCollisions'
#1
I'm not sure how to reproduce in a demo project but my main project now often get this error when I "build and run" (target platform is Android, Obi Rope 7.1):

Error building Player: Shader error in 'FluidFoamCollisions': Buffer count exceeding hard limit. No known hw supports this shader. Consider combining separate buffers into one containing struct elements. at kernel SolveDiffuseContacts (on gles3)


Is there a way to eliminate this problem? I'm only using Obi Rope and this component looks is not related to Obi Rope so maybe I can just do some delete work to work around?
Reply
#2
Hi Chenji,

Most compute shaders in Obi require a minimum of 8 RW structured buffers simultaneously bound to a shader. If your hardware/graphics API combination does not support at least 8 buffers it sadly can't run Obi. Most modern hardware has a higher limit, though. You can check this limit on your target hardware by looking at the value of  SystemInfo.maxComputeBuffersInputsCompute

Let's assume FluidFoamCollisions is the only shader that triggers this error in your project for some reason, you may simply delete it from the project if you're not using ObiRope together with ObiFluid.

kind regards,
Reply
#3
(19-09-2025, 08:14 AM)josemendez Wrote: Hi Chenji,

Most compute shaders in Obi require a minimum of 8 RW structured buffers simultaneously bound to a shader. If your hardware/graphics API combination does not support at least 8 buffers it sadly can't run Obi. Most modern hardware has a higher limit, though. You can check this limit on your target hardware by looking at the value of  SystemInfo.maxComputeBuffersInputsCompute

Let's assume FluidFoamCollisions is the only shader that triggers this error in your project for some reason, you may simply delete it from the project if you're not using ObiRope together with ObiFluid.

kind regards,
Thanks for reply. I finally found it's a Unity issue because if I click "Build", it works. It only throw this exception when I click "Build and Run". It seems my Unity somehow gets a wrong check result.
I can work around by manually deploy by adb install.
Reply