[PATCH 1/2] winevulkan: Skip extensions that require a skipped extension.

Liam Middlebrook lmiddlebrook at nvidia.com
Fri Jan 15 05:31:42 CST 2021


Signed-off-by: Liam Middlebrook <lmiddlebrook at nvidia.com>

On 1/15/21 2:50 AM, Georg Lehmann wrote:
> Needed to skip VK_NV_acquire_winrt_display in the next version bump.
> 
> Signed-off-by: Georg Lehmann <dadschoorse at gmail.com>
> ---
>   dlls/winevulkan/make_vulkan | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
> index 0ad169d5e78..ce603691d6e 100755
> --- a/dlls/winevulkan/make_vulkan
> +++ b/dlls/winevulkan/make_vulkan
> @@ -91,7 +91,6 @@ UNSUPPORTED_EXTENSIONS = [
>   
>       # Device extensions
>       "VK_AMD_display_native_hdr",
> -    "VK_EXT_display_control", # Requires VK_EXT_display_surface_counter
>       "VK_EXT_full_screen_exclusive",
>       "VK_EXT_hdr_metadata", # Needs WSI work.
>       "VK_EXT_pipeline_creation_feedback",
> @@ -2893,6 +2892,7 @@ class VkRegistry(object):
>           extensions = []
>           exts = root.findall("./extensions/extension")
>           deferred_exts = []
> +        skipped_exts = UNSUPPORTED_EXTENSIONS.copy()
>   
>           def process_ext(ext, deferred=False):
>               ext_name = ext.attrib["name"]
> @@ -2907,6 +2907,7 @@ class VkRegistry(object):
>               # Some extensions are not ready or have numbers reserved as a place holder.
>               if ext.attrib["supported"] == "disabled":
>                   LOGGER.debug("Skipping disabled extension: {0}".format(ext_name))
> +                skipped_exts.append(ext_name)
>                   return
>   
>               # Defer extensions with 'sortorder' as they are order-dependent for spec-parsing.
> @@ -2919,6 +2920,7 @@ class VkRegistry(object):
>               # or NV.
>               if "KHX" in ext_name or "NVX" in ext_name:
>                   LOGGER.debug("Skipping experimental extension: {0}".format(ext_name))
> +                skipped_exts.append(ext_name)
>                   return
>   
>               # Extensions can define VkEnumValues which alias to provisional extensions. Pre-process
> @@ -2931,15 +2933,18 @@ class VkRegistry(object):
>               platform = ext.attrib.get("platform")
>               if platform and platform != "win32":
>                   LOGGER.debug("Skipping extensions {0} for platform {1}".format(ext_name, platform))
> +                skipped_exts.append(ext_name)
>                   return
>   
>               if not self._is_extension_supported(ext_name):
>                   LOGGER.debug("Skipping unsupported extension: {0}".format(ext_name))
> +                skipped_exts.append(ext_name)
>                   return
>               elif "requires" in ext.attrib:
>                   # Check if this extension builds on top of another unsupported extension.
>                   requires = ext.attrib["requires"].split(",")
> -                if len(set(requires).intersection(UNSUPPORTED_EXTENSIONS)) > 0:
> +                if len(set(requires).intersection(skipped_exts)) > 0:
> +                    skipped_exts.append(ext_name)
>                       return
>   
>               LOGGER.debug("Loading extension: {0}".format(ext_name))
> 



More information about the wine-devel mailing list