have VirtualFileSystem also depend on the file path so renaming shaders causes a rebuild