1 /* 2 * Copyright 2020 Google LLC 3 * SPDX-License-Identifier: MIT 4 */ 5 6 #include "vkr_common.h" 7 8 #include "util/u_debug.h" 9 #include "venus-protocol/vn_protocol_renderer_info.h" 10 #include "virglrenderer_hw.h" 11 12 static const struct debug_named_value vkr_debug_options[] = { 13 { "validate", VKR_DEBUG_VALIDATE, "Force enabling the validation layer" }, 14 DEBUG_NAMED_VALUE_END 15 }; 16 17 uint32_t vkr_renderer_flags; 18 uint32_t vkr_debug_flags; 19 20 size_t vkr_get_capset(void * capset)21vkr_get_capset(void *capset) 22 { 23 struct virgl_renderer_capset_venus *c = capset; 24 if (c) { 25 memset(c, 0, sizeof(*c)); 26 c->wire_format_version = vn_info_wire_format_version(); 27 c->vk_xml_version = vn_info_vk_xml_version(); 28 c->vk_ext_command_serialization_spec_version = 29 vn_info_extension_spec_version("VK_EXT_command_serialization"); 30 c->vk_mesa_venus_protocol_spec_version = 31 vn_info_extension_spec_version("VK_MESA_venus_protocol"); 32 } 33 34 return sizeof(*c); 35 } 36 37 int vkr_renderer_init(uint32_t flags)38vkr_renderer_init(uint32_t flags) 39 { 40 /* TODO VKR_RENDERER_MULTI_PROCESS hint */ 41 42 if ((vkr_renderer_flags & VKR_RENDERER_ASYNC_FENCE_CB) && 43 !(vkr_renderer_flags & VKR_RENDERER_THREAD_SYNC)) 44 return -EINVAL; 45 46 vkr_renderer_flags = flags; 47 vkr_debug_flags = debug_get_flags_option("VKR_DEBUG", vkr_debug_options, 0); 48 49 return 0; 50 } 51 52 void vkr_renderer_fini(void)53vkr_renderer_fini(void) 54 { 55 vkr_renderer_flags = 0; 56 vkr_debug_flags = 0; 57 } 58 59 void vkr_renderer_reset(void)60vkr_renderer_reset(void) 61 { 62 } 63