Fix Linux build due to VK_EXT_metal_objects types
authorRicardo Garcia <rgarcia@igalia.com>
Tue, 12 Jul 2022 12:05:34 +0000 (14:05 +0200)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 22 Jul 2022 14:23:12 +0000 (14:23 +0000)
This commit adds new platform-specific types to the framework-generation
script so CTS code compiles again on Linux and other platforms.

No tests are affected by these changes.

Components: Vulkan
VK-GL-CTS issue: 3813

Change-Id: Id27dec6a07d78802b2a84ae741b208b27510da53

external/vulkancts/framework/vulkan/generated/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/generated/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/generated/vulkansc/vkBasicTypes.inl
external/vulkancts/framework/vulkan/generated/vulkansc/vkStrUtilImpl.inl
external/vulkancts/scripts/gen_framework.py

index c2e78f4..9b5b2ca 100644 (file)
@@ -4613,6 +4613,12 @@ VK_DEFINE_PLATFORM_TYPE(zx_handle_t,                             uint32_t)
 VK_DEFINE_PLATFORM_TYPE(GgpFrameToken,                         int32_t)
 VK_DEFINE_PLATFORM_TYPE(GgpStreamDescriptor,           int32_t)
 VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLDevice_id,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLCommandQueue_id,                    void*)
+VK_DEFINE_PLATFORM_TYPE(MTLBuffer_id,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLTexture_id,                         void*)
+VK_DEFINE_PLATFORM_TYPE(IOSurfaceRef,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLSharedEvent_id,                     void*)
 #define VK_KHR_SURFACE_SPEC_VERSION 25
 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
 #define VK_KHR_DISPLAY_SPEC_VERSION 23
index 3ff56bd..7c500b3 100644 (file)
@@ -74,6 +74,12 @@ std::ostream& operator<< (std::ostream& s, zx_handle_t                                       v) { return s << tcu:
 std::ostream& operator<< (std::ostream& s, GgpFrameToken                               v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor                 v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, CAMetalLayer                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLDevice_id                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id                  v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLBuffer_id                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLTexture_id                               v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, IOSurfaceRef                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id                   v) { return s << tcu::toHex(v.internal); }
 }
 
 const char* getResultName (VkResult value)
index 91585cd..de04fee 100644 (file)
@@ -2326,6 +2326,12 @@ VK_DEFINE_PLATFORM_TYPE(zx_handle_t,                             uint32_t)
 VK_DEFINE_PLATFORM_TYPE(GgpFrameToken,                         int32_t)
 VK_DEFINE_PLATFORM_TYPE(GgpStreamDescriptor,           int32_t)
 VK_DEFINE_PLATFORM_TYPE(CAMetalLayer,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLDevice_id,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLCommandQueue_id,                    void*)
+VK_DEFINE_PLATFORM_TYPE(MTLBuffer_id,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLTexture_id,                         void*)
+VK_DEFINE_PLATFORM_TYPE(IOSurfaceRef,                          void*)
+VK_DEFINE_PLATFORM_TYPE(MTLSharedEvent_id,                     void*)
 #define VK_KHR_SURFACE_SPEC_VERSION 25
 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
 #define VK_KHR_DISPLAY_SPEC_VERSION 23
index 3e39e6f..0fe0ee0 100644 (file)
@@ -60,6 +60,12 @@ std::ostream& operator<< (std::ostream& s, zx_handle_t                                       v) { return s << tcu:
 std::ostream& operator<< (std::ostream& s, GgpFrameToken                               v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, GgpStreamDescriptor                 v) { return s << tcu::toHex(v.internal); }
 std::ostream& operator<< (std::ostream& s, CAMetalLayer                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLDevice_id                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLCommandQueue_id                  v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLBuffer_id                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLTexture_id                               v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, IOSurfaceRef                                        v) { return s << tcu::toHex(v.internal); }
+std::ostream& operator<< (std::ostream& s, MTLSharedEvent_id                   v) { return s << tcu::toHex(v.internal); }
 }
 
 const char* getResultName (VkResult value)
index d231ad3..83c5329 100755 (executable)
@@ -108,6 +108,14 @@ PLATFORM_TYPES             = [
        (["GgpFrameToken"],                                             ["GgpFrameToken"],                              "int32_t"),
        (["GgpStreamDescriptor"],                               ["GgpStreamDescriptor"],                "int32_t"),
        (["CAMetalLayer"],                                              ["CAMetalLayer"],                               "void*"),
+
+       # VK_EXT_metal_objects
+       (["MTLDevice_id"],                                              ["MTLDevice_id"],                               "void*"),
+       (["MTLCommandQueue_id"],                                ["MTLCommandQueue_id"],                 "void*"),
+       (["MTLBuffer_id"],                                              ["MTLBuffer_id"],                               "void*"),
+       (["MTLTexture_id"],                                             ["MTLTexture_id"],                              "void*"),
+       (["IOSurfaceRef"],                                              ["IOSurfaceRef"],                               "void*"),
+       (["MTLSharedEvent_id"],                                 ["MTLSharedEvent_id"],                  "void*"),
 ]
 
 PLATFORM_TYPE_NAMESPACE        = "pt"
@@ -162,6 +170,7 @@ def prefixName (prefix, name):
        name = name.replace("RGBA_10_X_6", "RGBA10X6")
        name = name.replace("2_D", "2D_")
        name = name.replace("3_D", "3D_")
+       name = name.replace("IOSURFACE", "IO_SURFACE")
 
 
        return prefix + name
@@ -2268,12 +2277,6 @@ def generateDeviceFeaturesDefs(apiName, src):
                        elif sType == 'RASTERIZATION_ORDER_ATTACHMENT_ACCESS':
                                # skip case that has const pNext pointer
                                continue
-                       # skip cases that have const pNext pointer
-                       if sType == 'RASTERIZATION_ORDER_ATTACHMENT_ACCESS':
-                               continue
-                       # skip cases that have const pNext pointer
-                       if sType == 'RASTERIZATION_ORDER_ATTACHMENT_ACCESS':
-                               continue
                        # end handling special cases
                        ptrnExtensionName       = r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_EXTENSION_NAME).+$'
                        matchExtensionName      = re.search(ptrnExtensionName, src, re.M)