-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Warning: terminator_CreateInstance: Failed to CreateInstance in ICD2. Skipping ICD #30401
Comments
I have also seen the message occurring from time to time, without the warning interrupting test execution:
I would assume that it is another "garbage warning" like the following may also be:
Typically, these warnings either need to be suppressed in cli/lib/exec/spawn.js or they go away when Electron is updated (which sometimes introduces new garbage warnings!).
The issues you quoted are related, and useful as background reading, however they are already closed: |
Confirmed with Cypress For example using https://github.com/cypress-io/cypress-realworld-app:
In this environment: $ sudo apt install vulkan-tools
$ vulkaninfo --summary
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return code -3 from call to vkCreateInstance in ICD /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so. Skipping this driver. Also seeing this warning running Ubuntu directly on laptop x86 hardware (with GPU). |
Current behavior
I observed the following warning/error when running tests using Cypress v13.13.1 installed locally on RHEL v8.10 VM and also when using the Cypress:Included image v13.13.1 running Debian GNU/Linux 12
Warning: terminator_CreateInstance: Failed to CreateInstance in ICD2. Skipping ICD
Error: Loader Message: setup_loader_term_phys_devs: Failed to detect any vaild GPUs in the current config
Warning: vkEnumeratePhysicalDevices
at GatherPhysicalDevices (../../vulkanInfo.cpp:131)
at Initialize (../../BackendVk.cpp:353)
at Create (../../BackendVk.cpp:266)
at operator() (../../BackendVk.cpp:521)
As far as I can tell, the warning/error does not impact test execution or degrade performance as the tests still run to completion and the time duration of test execution is not increasing. I observed the warning/error being displayed from 1-3 times when running tests from the CLI in headless mode. The only pattern seems to be that the warning/error is displayed to stdout when running multiple tests in a group (eg. all E2E or API). If the tests are run one at a time independently then I never see this warning/error.
Desired behavior
The desired behavior is, if possible, to suppress these warnings/errors because they lead to confusion about whether there was a problem during test execution.
Test code to reproduce
I don't have the ability to publish a repo or my test specs or Cypress configuration.
Cypress Version
v13.13.1
Node version
v18.18.2 and v20.5.1
Operating System
RHEL v8.10 and Debian GNU/Linux 12
Debug Logs
Other
I did a number of things to try and troubleshoot the root cause of the warning/error and was able to resolve the issue as per the explanation below. After making the changes described below, I do not see the error/warning anymore. The root cause appears to be how the Vulkan drivers are installed.
-The Vulkan Loader provides an Installable Client Driver (ICD), which supports systems that have multiple GPUs and enables control over how the GPUs work. The Vulkan driver can be installed as Explicit, Implicit or ICD Manifest type. On my VM, the driver appears to have been installed as the Implicit Layer Manifest type because the driver file is located in /usr/share/vulkan/implicit_layer.d/. However when running Cypress tests, Cypress appears to be looking for what is known as the ICD Manifest type driver file and that file would be located in /usr/share/vulkan/icd.d/. There was no file in that directory on my VM, so I created a driver file and placed the file in that location as explained below.
-Several driver files were located in /usr/share/vulkan/implicit_layer.d/. Based on doing a search for RPMs with vulkan in the name (rpm -qa | grep -i vulkan) on my system, I determined that the mesa-vulkan-drivers were installed. The driver file installed in the implicit_layer.d/ directory was VkLayer_MESA_device_select.json
--I created a new file with the same name in the icd.d/ directory
--The file should have root as the owner:group and permissions of 644, just like the other driver files in icd.d/
--The content of the new driver file created in icd.d/ was similar to the other driver files in icd.d/. In the new driver file the api_version and library_path were updated to match what was found in the driver file in implicit_layer.d/VkLayer_MESA_device_select.json
--The location and name of the new driver file is /usr/share/vulkan/icd.d/VkLayer_MESA_device_select.json
--The content of the json file is shown below (normal json indentation not shown)
--Once this file is created with the required content and placed in the icd.d/ directory the warning/error should no longer be displayed to stdout during test execution
Note that for library_path the fullpath to the driver shared object file is used
{
"ICD": {
"api_version": "1.3.211"
"library_path": "/usr/lib64/libVkLayer_MESA_device_select.so"
},
"file_format_version": "1.0.0"
}
The text was updated successfully, but these errors were encountered: