If you run:
vblank_mode=0 optirun xbmc OR
vblank_mode=0 primusrun xbmc How's that?
vblank_mode=0 is just for the graphic card not to set a default refresh rate on the screen (monitor/tv). It set the best possible refresh rate. It MAY make tearing because it sets the refresh rate higher then your monitor supports.
For the "optirun" vs "primusrun" I found this information:
Primus brings better performance and less power consumption when using Bumblebee, by replacing VirtualGL. According to the Bumblebee G+ page, this has the following advantages over the optirun (VirtualGL) solution used by default in Bumblebee:
- Less overhead (better framerates) and cleaner solution (no networking or compression involved at all)
- Fixes the "bug" that causes Bumblebee to shut down the GPU too early sometimes (no more need for the "optirun bash" workaround)
- Less buggy/glitchy, easier to debug
- Only uses/starts secondary GPU for OpenGL parts of applications - everything else remains on your main GPU (power savings)