Guard Fuchsia extensions.

So we can build for Linux without them.
The vk.xml protect="" are needed because our driver release
doesn't recognize the platform="" guard. A driver update
should fix this.

Test:
pixelbook:go/magma-tps#L1

Change-Id: I3c113b0cc38ed3812660a9836530183fa53a1f54
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 778c8b0..21be114 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -1543,8 +1543,10 @@
    const VkImportMemoryFdInfoKHR *fd_info =
       vk_find_struct_const(pAllocateInfo->pNext, IMPORT_MEMORY_FD_INFO_KHR);
 
+#if VK_USE_PLATFORM_MAGMA_KHR
    const VkImportMemoryFuchsiaHandleInfoKHR *fuchsia_info =
       vk_find_struct_const(pAllocateInfo->pNext, IMPORT_MEMORY_FUCHSIA_HANDLE_INFO_KHR);
+#endif // VK_USE_PLATFORM_MAGMA_KHR
 
    /* The Vulkan spec permits handleType to be 0, in which case the struct is
     * ignored.
@@ -1593,6 +1595,8 @@
        * If the import fails, we leave the file descriptor open.
        */
       close(fd_info->fd);
+
+#if VK_USE_PLATFORM_MAGMA_KHR
    } else if (fuchsia_info && fuchsia_info->handleType) {
       assert(fuchsia_info->handleType ==
              VK_EXTERNAL_MEMORY_HANDLE_TYPE_FUCHSIA_VMO_BIT_KHR);
@@ -1624,6 +1628,8 @@
           device, &device->bo_cache, buffer, aligned_alloc_size, &mem->bo);
       if (result != VK_SUCCESS)
          goto fail;
+#endif // VK_USE_PLATFORM_MAGMA_KHR
+
    } else {
       result = anv_bo_cache_alloc(device, &device->bo_cache,
                                   pAllocateInfo->allocationSize,
diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_extensions.py
index 9a23c3b..bc43f3c 100755
--- a/src/intel/vulkan/anv_extensions.py
+++ b/src/intel/vulkan/anv_extensions.py
@@ -89,9 +89,9 @@
     Extension('VK_KHX_multiview',                         1, False),
     Extension('VK_EXT_debug_report',                      8, True),
     Extension('VK_KHR_magma_surface',                     1, 'VK_USE_PLATFORM_MAGMA_KHR'),
-    Extension('VK_KHR_external_memory_fuchsia',           1, True),
-    Extension('VK_KHR_external_semaphore_fuchsia',        1, True),
-    Extension('VK_GOOGLE_image_usage_scanout',            1, True),
+    Extension('VK_KHR_external_memory_fuchsia',           1, 'VK_USE_PLATFORM_MAGMA_KHR'),
+    Extension('VK_KHR_external_semaphore_fuchsia',        1, 'VK_USE_PLATFORM_MAGMA_KHR'),
+    Extension('VK_GOOGLE_image_usage_scanout',            1, 'VK_USE_PLATFORM_MAGMA_KHR'),
 ]
 
 class VkVersion:
@@ -170,7 +170,7 @@
 #include "vk_util.h"
 
 /* Convert the VK_USE_PLATFORM_* defines to booleans */
-%for platform in ['ANDROID', 'WAYLAND', 'XCB', 'XLIB']:
+%for platform in ['ANDROID', 'WAYLAND', 'XCB', 'XLIB', 'MAGMA']:
 #ifdef VK_USE_PLATFORM_${platform}_KHR
 #   undef VK_USE_PLATFORM_${platform}_KHR
 #   define VK_USE_PLATFORM_${platform}_KHR true
diff --git a/src/intel/vulkan/anv_magma.cc b/src/intel/vulkan/anv_magma.cc
index dbf8266..bd5a12f 100644
--- a/src/intel/vulkan/anv_magma.cc
+++ b/src/intel/vulkan/anv_magma.cc
@@ -323,6 +323,7 @@
    return 0;
 }
 
+#if VK_USE_PLATFORM_MAGMA_KHR
 VkResult anv_GetMemoryFuchsiaHandleKHR(VkDevice vk_device,
                                        const VkMemoryGetFuchsiaHandleInfoKHR* pGetFuchsiaHandleInfo,
                                        uint32_t* pHandle)
@@ -421,6 +422,7 @@
    *pFuchsiaHandle = handle;
    return VK_SUCCESS;
 }
+#endif // VK_USE_PLATFORM_MAGMA_KHR
 
 bool anv_gem_supports_syncobj_wait(int fd) { return true; }
 
diff --git a/src/vulkan/registry/vk.xml b/src/vulkan/registry/vk.xml
index e1c1339..1326cfc 100644
--- a/src/vulkan/registry/vk.xml
+++ b/src/vulkan/registry/vk.xml
@@ -7707,14 +7707,14 @@
                 <enum value="&quot;VK_EXT_extension_197&quot;"          name="VK_EXT_EXTENSION_197_EXTENSION_NAME"/>
             </require>
         </extension>
-        <extension name="VK_GOOGLE_image_usage_scanout" number="1000" type="instance" contact="Craig Stout @cdotstout" supported="vulkan" platform="magma" author="GOOGLE">
+        <extension name="VK_GOOGLE_image_usage_scanout" number="1000" type="instance" contact="Craig Stout @cdotstout" supported="vulkan" platform="magma" author="GOOGLE" protect="VK_USE_PLATFORM_MAGMA_KHR">
             <require>
                 <enum value="1"                                          name="VK_GOOGLE_IMAGE_USAGE_SCANOUT_SPEC_VERSION"/>
                 <enum value="&quot;VK_GOOGLE_image_usage_scanout&quot;"  name="VK_GOOGLE_IMAGE_USAGE_SCANOUT_EXTENSION_NAME"/>
                 <enum bitpos="16" extends="VkImageUsageFlagBits"         name="VK_IMAGE_USAGE_SCANOUT_BIT_GOOGLE"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_memory_fuchsia" number="1001" type="device" requires="VK_KHR_external_memory_capabilities,VK_KHR_external_memory" author="KHR" supported="vulkan">
+        <extension name="VK_KHR_external_memory_fuchsia" number="1001" type="device" requires="VK_KHR_external_memory_capabilities,VK_KHR_external_memory" author="KHR" supported="vulkan" protect="VK_USE_PLATFORM_MAGMA_KHR">
             <require>
                 <enum value="1"                                           name="VK_KHR_EXTERNAL_MEMORY_FUCHSIA_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_memory_fuchsia&quot;"  name="VK_KHR_EXTERNAL_MEMORY_FUCHSIA_EXTENSION_NAME"/>
@@ -7729,7 +7729,7 @@
                 <command name="vkGetMemoryFuchsiaHandlePropertiesKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_external_semaphore_fuchsia" number="1002" type="device" requires="VK_KHR_external_semaphore_capabilities,VK_KHR_external_semaphore" author="KHR" contact="Craig Stout @cdotstout" supported="vulkan" platform="magma">
+        <extension name="VK_KHR_external_semaphore_fuchsia" number="1002" type="device" requires="VK_KHR_external_semaphore_capabilities,VK_KHR_external_semaphore" author="KHR" contact="Craig Stout @cdotstout" supported="vulkan" platform="magma" protect="VK_USE_PLATFORM_MAGMA_KHR">
             <require>
                 <enum value="1"                                              name="VK_KHR_EXTERNAL_SEMAPHORE_FUCHSIA_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_external_semaphore_fuchsia&quot;"  name="VK_KHR_EXTERNAL_SEMAPHORE_FUCHSIA_EXTENSION_NAME"/>
@@ -7742,7 +7742,7 @@
                 <command name="vkGetSemaphoreFuchsiaHandleKHR"/>
             </require>
         </extension>
-        <extension name="VK_KHR_magma_surface" number="1003" type="instance" requires="VK_KHR_surface" platform="magma" contact="Craig Stout @cdotstout" supported="vulkan" author="KHR">
+        <extension name="VK_KHR_magma_surface" number="1003" type="instance" requires="VK_KHR_surface" platform="magma" contact="Craig Stout @cdotstout" supported="vulkan" author="KHR" protect="VK_USE_PLATFORM_MAGMA_KHR">
             <require>
                 <enum value="1"                                         name="VK_KHR_MAGMA_SURFACE_SPEC_VERSION"/>
                 <enum value="&quot;VK_KHR_magma_surface&quot;"          name="VK_KHR_MAGMA_SURFACE_EXTENSION_NAME"/>