Added shader caching