From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/winevulkan/make_vulkan | 46 ++++++++++++++----------------------- include/wine/vulkan.h | 30 ------------------------ 2 files changed, 17 insertions(+), 59 deletions(-) diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index e8db66c673f..d7d3159cb90 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -457,9 +457,10 @@ class Type(object): return None @staticmethod - def all(klass, which=lambda t: True, by_name=False): + def all(klass, which=lambda t: True, by_name=False, required=True): + types = filter(lambda t: t.is_required() if required else True, Type.types.values()) klass = [klass] if type(klass) not in (list, tuple) else klass - types = filter(lambda t: type(t) in klass and which(t), Type.types.values()) + types = filter(lambda t: type(t) in klass and which(t), types) return sorted(types, key=lambda type: (0 if by_name else -type.order, type.name)) @@ -708,13 +709,13 @@ class Function(Type): def needs_exposing(self): # The function needs exposed if at-least one extension isn't both UNSUPPORTED and UNEXPOSED - return self.is_required() and (not self.extensions or any(ext.is_exposed for ext in self.extensions)) + return not self.extensions or any(ext.is_exposed for ext in self.extensions) def is_host_instance(self): - return self.is_required() and self.dispatch and self.is_instance() + return self.dispatch and self.is_instance() def is_host_device(self): - return self.is_required() and self.dispatch and self.is_device() + return self.dispatch and self.is_device() def is_client_instance(self): return self.needs_exposing() and self.is_instance() @@ -1841,8 +1842,6 @@ class Record(Type): is_const = True for e in struct_extensions: - if not e.is_required(): - continue if e.needs_conversion(conv, Unwrap.HOST, direction, is_const, check_extensions=False): return True if direction == Direction.INPUT: @@ -2086,9 +2085,6 @@ class StructConversionFunction(object): body += ident + "break;\n" for ext in self.operand.struct_extensions: - if not ext.is_required(): - continue - if self.direction == Direction.OUTPUT and not any([self.member_needs_copy(ext, m) for m in ext.members]): continue @@ -2383,7 +2379,7 @@ class Generator(object): for definition, conversion in enum_conversions(conversions): if isinstance(conversion, StructConversionFunction): for e in conversion.operand.struct_extensions: - if not e.is_required() or not e.needs_win32_type(): + if not e.needs_win32_type(): continue win32_structs.append(e) if conversion.operand.needs_win32_type(): @@ -2400,9 +2396,7 @@ class Generator(object): f.write("{\n") f.write(" switch(type)\n") f.write(" {\n") - for handle in Type.all(Handle, by_name=True): - if not handle.is_required() or not handle.is_wrapped(): - continue + for handle in Type.all(Handle, Handle.is_wrapped, by_name=True): f.write(" case {}:\n".format(handle.object_type)) if handle.is_dispatchable(): f.write(" return (uint64_t) (uintptr_t) ") @@ -2422,9 +2416,7 @@ class Generator(object): f.write("BOOL wine_vk_is_type_wrapped(VkObjectType type)\n") f.write("{\n") f.write(" return FALSE") - for handle in Type.all(Handle, by_name=True): - if not handle.is_required() or not handle.is_wrapped(): - continue + for handle in Type.all(Handle, Handle.is_wrapped, by_name=True): f.write(" ||\n type == {}".format(handle.object_type)) f.write(";\n") f.write("}\n\n") @@ -2601,7 +2593,7 @@ class Generator(object): f.write("typedef struct _XDisplay Display;\n") f.write("#endif\n") - for type in Type.all((Constant, Define)): + for type in Type.all((Constant, Define), required=False): f.write(type.definition()) f.write("\n") @@ -2609,8 +2601,7 @@ class Generator(object): # For backward compatibility also create definitions for aliases. # These types normally don't get pulled in as we use the new types # even in legacy functions if they are aliases. - if handle.is_required(): - f.write(handle.definition()) + f.write(handle.definition()) f.write("\n") for flags in Type.all(Flags): @@ -2619,19 +2610,18 @@ class Generator(object): # Define enums, this includes values for some of the bitmask types as well. for enum in Type.all(Enum, by_name=True): - if enum.is_required(): - f.write(enum.definition()) + f.write(enum.definition()) for type in Type.all((Record, FunctionPointer)): - if type.is_required() and type.name != "SECURITY_ATTRIBUTES": + if type.name != "SECURITY_ATTRIBUTES": f.write(type.definition()) - for func in Type.all(Function, Function.is_required): + for func in Type.all(Function): f.write(func.gen_pointer()) f.write("\n") f.write("#ifndef VK_NO_PROTOTYPES\n") - for func in Type.all(Function, Function.is_required): + for func in Type.all(Function): f.write(func.gen_prototype()) f.write("#endif /* VK_NO_PROTOTYPES */\n\n") @@ -2677,7 +2667,7 @@ class Generator(object): f.write("@ stdcall -private vk_icdGetInstanceProcAddr(ptr str)\n") f.write("@ stdcall -private vk_icdGetPhysicalDeviceProcAddr(ptr str)\n") f.write("@ stdcall -private vk_icdNegotiateLoaderICDInterfaceVersion(ptr)\n") - for func in Type.all(Function, Function.is_core): + for func in Type.all(Function, Function.is_core, required=False): f.write(func.spec()) f.write("@ stdcall -private DllRegisterServer()\n") f.write("@ stdcall -private DllUnregisterServer()\n") @@ -2685,7 +2675,7 @@ class Generator(object): def generate_vulkan_loader_spec(self, f): self._generate_copyright(f, spec_file=True) - for func in Type.all(Function, Function.is_core): + for func in Type.all(Function, Function.is_core, required=False): f.write(func.spec(symbol=f"winevulkan.{func.name}")) def _match_object_types(self): @@ -2697,8 +2687,6 @@ class Generator(object): object_types[object_name] = value.name for handle in Type.all(Handle): - if not handle.is_required(): - continue handle.object_type = object_types.get(handle.name.upper()) if not handle.object_type: LOGGER.warning("No object type found for {}".format(handle.name)) diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index 00a72a81b87..15cafddcd57 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -1115,7 +1115,6 @@ typedef VkFlags VkImageViewCreateFlags; typedef VkFlags VkSampleCountFlags; typedef VkFlags VkColorComponentFlags; typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; -typedef VkFlags VkDeviceMemoryReportFlagsEXT; typedef VkFlags VkGeometryFlagsKHR; typedef VkGeometryFlagsKHR VkGeometryFlagsNV; typedef VkFlags VkGeometryInstanceFlagsKHR; @@ -1127,7 +1126,6 @@ typedef VkFlags VkMemoryPropertyFlags; typedef VkFlags VkPipelineShaderStageCreateFlags; typedef VkFlags VkPipelineTessellationStateCreateFlags; typedef VkFlags VkPipelineVertexInputStateCreateFlags; -typedef VkFlags VkPresentStageFlagsEXT; typedef VkFlags VkSparseImageFormatFlags; typedef VkFlags VkSparseMemoryBindFlags; typedef VkFlags64 VkTensorUsageFlagsARM; @@ -1146,8 +1144,6 @@ typedef VkFlags VkDebugReportFlagsEXT; typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; typedef VkFlags VkDependencyFlags; typedef VkFlags VkDeviceQueueCreateFlags; -typedef VkFlags VkDirectDriverLoadingFlagsLUNARG; -typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; typedef VkFlags VkExternalMemoryFeatureFlags; typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; typedef VkFlags VkExternalMemoryHandleTypeFlags; @@ -1155,7 +1151,6 @@ typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; typedef VkFlags VkFormatFeatureFlags; typedef VkFlags64 VkFormatFeatureFlags2; typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR; -typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; typedef VkFlags VkIndirectStateFlagsNV; typedef VkFlags VkPipelineCacheCreateFlags; typedef VkFlags VkPipelineColorBlendStateCreateFlags; @@ -1170,11 +1165,9 @@ typedef VkFlags VkPipelineStageFlags; typedef VkFlags64 VkPipelineStageFlags2; typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR; typedef VkFlags VkPipelineViewportStateCreateFlags; -typedef VkFlags VkPresentTimingInfoFlagsEXT; typedef VkFlags VkQueryControlFlags; typedef VkFlags VkQueryPipelineStatisticFlags; typedef VkFlags VkQueueFlags; -typedef VkFlags VkRefreshObjectFlagsKHR; typedef VkFlags VkSpirvResourceTypeFlagsEXT; typedef VkFlags VkSubpassDescriptionFlags; typedef VkFlags VkSurfaceTransformFlagsKHR; @@ -1187,7 +1180,6 @@ typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV; typedef VkFlags64 VkAccessFlags3KHR; typedef VkFlags VkAcquireProfilingLockFlagsKHR; typedef VkFlags VkAddressCopyFlagsKHR; -typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; typedef VkFlags64 VkBufferUsageFlags2; typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR; typedef VkFlags VkBufferViewCreateFlags; @@ -1211,16 +1203,11 @@ typedef VkFlags VkDeviceAddressBindingFlagsEXT; typedef VkFlags VkDeviceCreateFlags; typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; -typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; -typedef VkFlags VkDisplayModeCreateFlagsKHR; -typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; typedef VkFlags VkEventCreateFlags; typedef VkFlags VkExternalFenceFeatureFlags; typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; typedef VkFlags VkExternalFenceHandleTypeFlags; typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; -typedef VkFlags VkExternalMemoryFeatureFlagsNV; -typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; typedef VkFlags VkExternalSemaphoreFeatureFlags; typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; typedef VkFlags VkExternalSemaphoreHandleTypeFlags; @@ -1234,11 +1221,8 @@ typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; typedef VkFlags VkHostImageCopyFlags; typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT; -typedef VkFlags VkIOSSurfaceCreateFlagsMVK; typedef VkFlags VkImageCompressionFixedRateFlagsEXT; typedef VkFlags VkImageCompressionFlagsEXT; -typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; -typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; typedef VkFlags VkIndirectCommandsInputModeFlagsEXT; typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT; typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; @@ -1258,7 +1242,6 @@ typedef VkFlags VkOpticalFlowGridSizeFlagsNV; typedef VkFlags VkOpticalFlowSessionCreateFlagsNV; typedef VkFlags VkOpticalFlowUsageFlagsNV; typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV; -typedef VkFlags VkPastPresentationTimingFlagsEXT; typedef VkFlags VkPerformanceCounterDescriptionFlagsARM; typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM; @@ -1289,7 +1272,6 @@ typedef VkRenderingFlags VkRenderingFlagsKHR; typedef VkFlags VkResolveImageFlagsKHR; typedef VkFlags VkResolveModeFlags; typedef VkResolveModeFlags VkResolveModeFlagsKHR; -typedef VkFlags VkScreenSurfaceCreateFlagsQNX; typedef VkFlags VkSemaphoreCreateFlags; typedef VkFlags VkSemaphoreImportFlags; typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; @@ -1298,20 +1280,14 @@ typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR; typedef VkFlags VkShaderCorePropertiesFlagsAMD; typedef VkFlags VkShaderCreateFlagsEXT; typedef VkFlags VkShaderModuleCreateFlags; -typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; typedef VkFlags VkSubgroupFeatureFlags; typedef VkFlags VkSubmitFlags; typedef VkSubmitFlags VkSubmitFlagsKHR; -typedef VkFlags VkSurfaceCounterFlagsEXT; -typedef VkFlags VkSurfaceCreateFlagsOHOS; typedef VkFlags VkSwapchainCreateFlagsKHR; -typedef VkFlags VkSwapchainImageUsageFlagsANDROID; -typedef VkFlags VkSwapchainImageUsageFlagsOHOS; typedef VkFlags VkTileShadingRenderPassFlagsQCOM; typedef VkFlags VkToolPurposeFlags; typedef VkToolPurposeFlags VkToolPurposeFlagsEXT; typedef VkFlags VkValidationCacheCreateFlagsEXT; -typedef VkFlags VkViSurfaceCreateFlagsNN; typedef VkFlags VkVideoBeginCodingFlagsKHR; typedef VkFlags VkVideoCapabilityFlagsKHR; typedef VkFlags VkVideoCodecOperationFlagsKHR; @@ -1330,11 +1306,7 @@ typedef VkFlags VkVideoEncodeFlagsKHR; typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR; typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR; typedef VkFlags VkVideoEncodeH264StdFlagsKHR; -typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR; typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR; -typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR; -typedef VkFlags VkVideoEncodeH265StdFlagsKHR; -typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR; typedef VkFlags VkVideoEncodeIntraRefreshModeFlagsKHR; typedef VkFlags VkVideoEncodeRateControlFlagsKHR; typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; @@ -1347,7 +1319,6 @@ typedef VkFlags VkVideoSessionCreateFlagsKHR; typedef VkFlags VkVideoSessionParametersCreateFlagsKHR; typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; typedef VkFlags VkWin32SurfaceCreateFlagsKHR; -typedef VkFlags VkXcbSurfaceCreateFlagsKHR; typedef VkFlags VkXlibSurfaceCreateFlagsKHR; typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV; typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV; @@ -1356,7 +1327,6 @@ typedef VkFlags VkCommandPoolResetFlags; typedef VkFlags VkCommandPoolTrimFlags; typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; typedef VkFlags VkDescriptorPoolResetFlags; -typedef VkFlags VkExportMetalObjectTypeFlagsEXT; typedef VkFlags VkPeerMemoryFeatureFlags; typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; typedef VkFlags VkQueryResultFlags; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9990