Skip to content

Support the new Vulkan portability driver flag

Ludovico de Nittis requested to merge wip/denittis/vk_portability into master
  • 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 new is_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.

Merge request reports