Ported my compute shader over to Beyond All Reason(BAR) and am using it in a widget. The instance data for the model is the same as the compute shader's buffer so I don't have to copy anything. I changed how the compute shader is dispatched, removed the loop and most branching. It now has no noticeable impact on performance.
Made a model in blender from a reference painting of an Atlantic Salmon(ick). Had to write a tiny .obj parser because I'm not going to use whatever weird format BAR uses.