Let's add a `PERFORMANCE_IDEA` comment that says this calls each primitive's update for each pass.  Instead, we could update the primitives once, and then just execute their commands for each pass, and cull commands for picked primitives, e.g., based on the command's owner.

This is going to be a bit more work than it sounds so I'm OK with just the comment for now and waiting until we need the optimization.