@@ -258,7 +258,8 @@ uint32_t select_first(const std::vector<Runtime::DeviceMapping>& devices) {
258
258
// Global runtime initialization
259
259
//
260
260
261
- std::unique_ptr<Runtime> init_global_vulkan_runtime () {
261
+ std::unique_ptr<Runtime> init_global_vulkan_runtime (
262
+ const std::string& cache_data_path) {
262
263
// Load Vulkan drivers
263
264
#if defined(USE_VULKAN_VOLK)
264
265
if (VK_SUCCESS != volkInitialize ()) {
@@ -278,7 +279,6 @@ std::unique_ptr<Runtime> init_global_vulkan_runtime() {
278
279
#endif /* VULKAN_DEBUG */
279
280
const bool init_default_device = true ;
280
281
const uint32_t num_requested_queues = 1 ; // TODO: raise this value
281
- const std::string cache_data_path = " " ; // TODO: expose to client
282
282
283
283
const RuntimeConfig default_config{
284
284
enable_validation_messages,
@@ -377,13 +377,13 @@ uint32_t Runtime::create_adapter(const Selector& selector) {
377
377
return adapter_i;
378
378
}
379
379
380
- Runtime* runtime () {
380
+ Runtime* runtime (const std::string& cache_data_path ) {
381
381
// The global vulkan runtime is declared as a static local variable within a
382
382
// non-static function to ensure it has external linkage. If it were a global
383
383
// static variable there would be one copy per translation unit that includes
384
384
// Runtime.h as it would have internal linkage.
385
385
static const std::unique_ptr<Runtime> p_runtime =
386
- init_global_vulkan_runtime ();
386
+ init_global_vulkan_runtime (cache_data_path );
387
387
388
388
VK_CHECK_COND (
389
389
p_runtime,
0 commit comments