Lines Matching refs:inst
38 void free_layer_configuration(const struct loader_instance* inst, loader_settings_layer_configuration* layer_configuration) {
39 loader_instance_heap_free(inst, layer_configuration->name);
40 loader_instance_heap_free(inst, layer_configuration->path);
44 void free_loader_settings(const struct loader_instance* inst, loader_settings* settings) {
47 free_layer_configuration(inst, &settings->layer_configurations[i]);
50 loader_instance_heap_free(inst, settings->layer_configurations);
51 loader_instance_heap_free(inst, settings->settings_file_path);
109 bool parse_json_enable_disable_option(const struct loader_instance* inst, cJSON* object, const char* key) {
119 loader_instance_heap_free(inst, str);
123 VkResult parse_layer_configuration(const struct loader_instance* inst, cJSON* layer_configuration_json,
131 loader_instance_heap_free(inst, control_string);
154 free_layer_configuration(inst, layer_configuration);
159 VkResult parse_layer_configurations(const struct loader_instance* inst, cJSON* settings_object, loader_settings* loader_settings) {
175 inst, sizeof(loader_settings_layer_configuration) * layer_configurations_count, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
187 res = parse_layer_configuration(inst, layer, &(loader_settings->layer_configurations[i]));
196 free_layer_configuration(inst, &(loader_settings->layer_configurations[i]));
199 loader_instance_heap_free(inst, loader_settings->layer_configurations);
207 VkResult check_if_settings_path_exists(const struct loader_instance* inst, char* base, char* suffix, char** settings_file_path) {
214 *settings_file_path = loader_instance_heap_calloc(inst, path_len, VK_SYSTEM_ALLOCATION_SCOPE_COMMAND);
222 loader_instance_heap_free(inst, *settings_file_path);
228 VkResult get_unix_settings_path(const struct loader_instance* inst, char** settings_file_path) {
230 check_if_settings_path_exists(inst, loader_secure_getenv("HOME", inst),
236 res = check_if_settings_path_exists(inst, loader_secure_getenv("XDG_DATA_HOME", inst),
243 return check_if_settings_path_exists(inst, "/etc", "/vulkan/loader_settings.d/" VK_LOADER_SETTINGS_FILENAME,
272 void log_settings(const struct loader_instance* inst, loader_settings* settings) {
276 loader_log(inst, VULKAN_LOADER_INFO_BIT, 0, "Using layer configurations found in loader settings from %s",
279 loader_log(inst, VULKAN_LOADER_DEBUG_BIT, 0, "Layer Configurations count = %d", settings->layer_configuration_count);
281 loader_log(inst, VULKAN_LOADER_DEBUG_BIT, 0, "---- Layer Configuration [%d] ----", i);
283 loader_log(inst, VULKAN_LOADER_DEBUG_BIT, 0, "Name: %s", settings->layer_configurations[i].name);
284 loader_log(inst, VULKAN_LOADER_DEBUG_BIT, 0, "Path: %s", settings->layer_configurations[i].path);
286 loader_log(inst, VULKAN_LOADER_DEBUG_BIT, 0, "Control: %s",
289 loader_log(inst, VULKAN_LOADER_DEBUG_BIT, 0, "---------------------------------");
295 VkResult get_loader_settings(const struct loader_instance* inst, loader_settings* loader_settings) {
301 res = windows_get_loader_settings_file_path(inst, &settings_file_path);
307 res = get_unix_settings_path(inst, &settings_file_path);
315 res = loader_get_json(inst, settings_file_path, &json);
372 loader_instance_heap_free(inst, app_key);
403 res = loader_parse_json_array_of_strings(inst, single_settings_object, "stderr_log", &stderr_log);
408 free_string_list(inst, &stderr_log);
420 res = loader_parse_json_array_of_strings(inst, log_element, "destinations", &log_destinations);
424 free_string_list(inst, &log_destinations);
426 res = loader_parse_json_array_of_strings(inst, log_element, "filters", &log_filters);
430 free_string_list(inst, &log_filters);
435 res = parse_layer_configurations(inst, single_settings_object, loader_settings);
457 loader_instance_heap_free(inst, settings_file_path);
459 loader_instance_heap_free(inst, file_format_version_string);
501 // If inst is NULL - use the global settings and lock the mutex
503 const loader_settings* get_current_settings_and_lock(const struct loader_instance* inst) {
504 if (inst) {
505 return &inst->settings;
510 // Release the global settings lock if we are using the global settings - aka if inst is NULL
511 void release_current_settings_lock(const struct loader_instance* inst) {
512 if (inst == NULL) {
517 VkResult get_settings_layers(const struct loader_instance* inst, struct loader_layer_list* settings_layers,
522 const loader_settings* settings = get_current_settings_and_lock(inst);
541 res = loader_copy_to_new_str(inst, layer_config->path, &props.manifest_file_name);
545 res = loader_append_layer_property(inst, settings_layers, &props);
547 loader_free_layer_properties(inst, &props);
558 res = loader_append_layer_property(inst, settings_layers, &props);
560 loader_free_layer_properties(inst, &props);
572 VkResult local_res = loader_get_json(inst, layer_config->path, &json);
581 loader_add_layer_properties(inst, settings_layers, json, layer_config->treat_as_implicit_manifest, layer_config->path);
595 loader_remove_layer_in_list(inst, settings_layers, settings_layers->count - 1);
609 loader_remove_layer_in_list(inst, settings_layers, settings_layers->count - 1);
614 release_current_settings_lock(inst);
634 VkResult combine_settings_layers_with_regular_layers(const struct loader_instance* inst, struct loader_layer_list* settings_layers,
666 res = loader_init_generic_list(inst, (struct loader_generic_list*)output_layers,
675 res = loader_append_layer_property(inst, output_layers, &settings_layers->list[i]);
688 res = loader_append_layer_property(inst, output_layers, ®ular_layers->list[i]);
694 loader_free_layer_properties(inst, ®ular_layers->list[i]);
701 res = loader_append_layer_property(inst, output_layers, &settings_layers->list[i]);
709 loader_delete_layer_list_and_properties(inst, output_layers);
715 VkResult enable_correct_layers_from_settings(const struct loader_instance* inst, const struct loader_envvar_all_filters* filters,
721 char* vk_instance_layers_env = loader_getenv(ENABLED_LAYERS_ENV, inst);
728 loader_log(inst, VULKAN_LOADER_WARN_BIT | VULKAN_LOADER_LAYER_BIT, 0, "env var \'%s\' defined and adding layers: %s",
784 loader_implicit_layer_is_enabled(inst, filters, props)) {
791 res = loader_add_meta_layer(inst, filters, props, target_layer_list, activated_layer_list, instance_layers, NULL);
794 res = loader_add_layer_properties_to_list(inst, target_layer_list, props);
798 res = loader_add_layer_properties_to_list(inst, activated_layer_list, props);