diff --git a/src/nouveau/vulkan/nvk_instance.c b/src/nouveau/vulkan/nvk_instance.c index 58372ddbe1f..da1866e4f06 100644 --- a/src/nouveau/vulkan/nvk_instance.c +++ b/src/nouveau/vulkan/nvk_instance.c @@ -85,6 +85,7 @@ static const driOptionDescription nvk_dri_options[] = { DRI_CONF_SECTION_END DRI_CONF_SECTION_DEBUG + DRI_CONF_FORCE_VK_VENDOR(0) DRI_CONF_VK_WSI_FORCE_SWAPCHAIN_TO_CURRENT_EXTENT(false) DRI_CONF_VK_X11_IGNORE_SUBOPTIMAL(false) DRI_CONF_SECTION_END @@ -97,6 +98,9 @@ nvk_init_dri_options(struct nvk_instance *instance) driParseConfigFiles(&instance->dri_options, &instance->available_dri_options, 0, "nvk", NULL, NULL, instance->vk.app_info.app_name, instance->vk.app_info.app_version, instance->vk.app_info.engine_name, instance->vk.app_info.engine_version); + + instance->force_vk_vendor = + driQueryOptioni(&instance->dri_options, "force_vk_vendor"); } VKAPI_ATTR VkResult VKAPI_CALL diff --git a/src/nouveau/vulkan/nvk_instance.h b/src/nouveau/vulkan/nvk_instance.h index 50b49ef9504..3e02dda5e8d 100644 --- a/src/nouveau/vulkan/nvk_instance.h +++ b/src/nouveau/vulkan/nvk_instance.h @@ -17,6 +17,7 @@ struct nvk_instance { struct driOptionCache available_dri_options; uint8_t driver_build_sha[20]; + uint32_t force_vk_vendor; }; VK_DEFINE_HANDLE_CASTS(nvk_instance, vk.base, VkInstance, VK_OBJECT_TYPE_INSTANCE) diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index d0e5d715a4c..5da6a270c45 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -609,7 +609,8 @@ nvk_get_device_properties(const struct nvk_instance *instance, *properties = (struct vk_properties) { .apiVersion = nvk_get_vk_version(info), .driverVersion = vk_get_driver_version(), - .vendorID = NVIDIA_VENDOR_ID, + .vendorID = instance->force_vk_vendor != 0 ? + instance->force_vk_vendor : NVIDIA_VENDOR_ID, .deviceID = info->device_id, .deviceType = info->type == NV_DEVICE_TYPE_DIS ? VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU :