Add compute shader and other improvements