Support the new Vulkan portability driver flag
-
Introduce the method _srt_json_object_get_string_member()
This method is similar to
json_object_get_string_member_with_default()
with a "default_value" set to %NULL.However our method gracefully handles the situation where the requested node doesn't hold a value (e.g. it contains a JSON array). When this happens it simply returns %NULL, instead of raising a critical error.
-
Reduce code duplication with a new load_icd_from_json function
Group together the EGL and Vulkan functions that load an ICD from a JSON metadata.
This reduces the code duplications and allows us to expand the number of elements that can be parsed without increasing the
load_json()
function parameters (e.g. adding support for the newis_portability_driver
). -
helpers/check-vulkan: Add support for VK_ERROR_COMPRESSION_EXHAUSTED_EXT
Add support for the new VK_ERROR_COMPRESSION_EXHAUSTED_EXT that has been introduced with the Vulkan header version 213.
-
Support the new Vulkan portability driver flag
Vulkan ICD manifests recently added a new file format 1.0.1 version.
This new version introduces a "is_portability_driver" flag that is used to signal drivers that are not entirely compliant with the Vulkan API.
With this commit we add support in s-r-t to parse this new flag and introduce a new loadable issue called "SRT_LOADABLE_ISSUES_API_SUBSET", to make it easier to spot ICDs that are not fully API compliant.
-
tests/system-info: Check the Vulkan ICDs issues
When testing the parsed JSON, also assert that the ICDs issues are what we expected.
"Support the new Vulkan portability driver flag" is the proposed fix for #87 (closed). All the other commits are either preparatory changes or small, slightly related, improvements.