32 bit compilation fixes for Visual Studio
This cl fixes all issues related to building Vulkan using the x86 compiler in Visual Studio:
- Added dummy function to prevent compiler crash in VkGetProcAddress.cpp
- Added missing WIN32 check in SwiftShader's Vulkan unit tests
- Removed alignment code which broke Win32 DLL. Removing all of it should work on all other
platforms as well.
Minor nit fix:
- Renamed VkWrapper to VkNonDispatchableHandle, which is a more accurate name.
Bug b/129979580
Change-Id: Ib2bf305433e9aae71ff6f9d796fb86bc7ea733b0
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/31609
Tested-by: Alexis Hétu <sugoi@google.com>
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Vulkan/VkGetProcAddress.cpp b/src/Vulkan/VkGetProcAddress.cpp
index 308c0b5..55cd84a 100644
--- a/src/Vulkan/VkGetProcAddress.cpp
+++ b/src/Vulkan/VkGetProcAddress.cpp
@@ -429,3 +429,36 @@
};
#endif
+
+#if defined(_MSC_VER) && !defined(_WIN64)
+namespace
+{
+ // The following function is a hack to allow compilation in Visual Studio using the 32 bit compiler"
+ // "fatal error C1001: An internal error has occurred in the compiler.
+ // (compiler file 'd:\agent\_work\1\s\src\vctools\compiler\utc\src\p2\main.c', line 187)"
+ void Dummy()
+ {
+ { VkSemaphore handle; }
+ { VkFence handle; }
+ { VkDeviceMemory handle; }
+ { VkBuffer handle; }
+ { VkImage handle; }
+ { VkEvent handle; }
+ { VkQueryPool handle; }
+ { VkBufferView handle; }
+ { VkImageView handle; }
+ { VkShaderModule handle; }
+ { VkPipelineCache handle; }
+ { VkPipelineLayout handle; }
+ { VkRenderPass handle; }
+ { VkPipeline handle; }
+ { VkDescriptorSetLayout handle; }
+ { VkSampler handle; }
+ { VkDescriptorPool handle; }
+ { VkFramebuffer handle; }
+ { VkCommandPool handle; }
+ { VkSamplerYcbcrConversion handle; }
+ { VkDescriptorUpdateTemplate handle; }
+ }
+}
+#endif
\ No newline at end of file