mono / VulkanSharp

Open source .NET binding for the Vulkan API
MIT License
537 stars 61 forks source link

Fails to build with 1.0.38 spec #55

Closed bholcomb closed 7 years ago

bholcomb commented 7 years ago

I was following the build instructions and it looks like the latest spec is causing the generator some issues. Specifically, it looks like some new NVX extensions are causing the problem. Not sure if the warnings are anything to worry about.

Would it be a good idea to check in the vk.xml that the project is tested with? Might prevent these types of issues.

Here is my build output:

1> Specification file ....\bin\Release\vk.xml loaded 1>EXEC : warning : not adding empty enum VkFramebufferCreateFlagBits 1>EXEC : warning : not adding empty enum VkQueryPoolCreateFlagBits 1>EXEC : warning : not adding empty enum VkRenderPassCreateFlagBits 1>EXEC : warning : not adding empty enum VkSamplerCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineLayoutCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineCacheCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineDepthStencilStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineDynamicStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineColorBlendStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineMultisampleStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineRasterizationStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineViewportStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineTessellationStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineInputAssemblyStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineVertexInputStateCreateFlagBits 1>EXEC : warning : not adding empty enum VkPipelineShaderStageCreateFlagBits 1>EXEC : warning : not adding empty enum VkDescriptorSetLayoutCreateFlagBits 1>EXEC : warning : not adding empty enum VkBufferViewCreateFlagBits 1>EXEC : warning : not adding empty enum VkInstanceCreateFlagBits 1>EXEC : warning : not adding empty enum VkDeviceQueueCreateFlagBits 1>EXEC : warning : not adding empty enum VkDeviceCreateFlagBits 1>EXEC : warning : type name 'MirConnection' doesn't start with Vk prefix or end with _t suffix 1>EXEC : warning : type name 'wl_display' doesn't start with Vk prefix or end with _t suffix 1>EXEC : warning : type name 'Display' doesn't start with Vk prefix or end with _t suffix 1>EXEC : warning : type name 'VisualID' doesn't start with Vk prefix or end with _t suffix 1>EXEC : warning : type name 'MirConnection' doesn't start with Vk prefix or end with _t suffix 1>EXEC : warning : type name 'wl_display' doesn't start with Vk prefix or end with _t suffix 1>EXEC : warning : type name 'Display' doesn't start with Vk prefix or end with _t suffix 1>EXEC : warning : type name 'VisualID' doesn't start with Vk prefix or end with _t suffix 1>C:\source\VulkanSharp\src\Vulkan\Handles.cs(555,230,555,248): error CS1750: A value of type '' cannot be used as a default parameter because there are no standard conversions to type 'ExternalMemoryHandleTypeFlagsNv' 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7514,10,7514,45): error CS0246: The type or namespace name 'IndirectCommandsLayoutUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Interop\MarshalStructs.cs(1068,12,1068,47): error CS0246: The type or namespace name 'IndirectCommandsLayoutUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7556,12,7556,56): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('IndirectCommandsLayoutCreateInfoNVX') 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7831,10,7831,34): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7929,10,7929,34): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7939,10,7939,34): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Interop\MarshalStructs.cs(1116,12,1116,36): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7949,12,7949,48): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('ObjectTablePipelineEntryNVX') 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7982,10,7982,34): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Interop\MarshalStructs.cs(1123,12,1123,36): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(7998,12,7998,53): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('ObjectTableDescriptorSetEntryNVX') 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(8031,10,8031,34): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Interop\MarshalStructs.cs(1131,12,1131,36): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(8041,12,8041,52): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('ObjectTableVertexBufferEntryNVX') 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(8074,10,8074,34): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Interop\MarshalStructs.cs(1138,12,1138,36): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(8084,12,8084,51): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('ObjectTableIndexBufferEntryNVX') 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(8117,10,8117,34): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Interop\MarshalStructs.cs(1145,12,1145,36): error CS0246: The type or namespace name 'ObjectEntryUsageFlagsNVX' could not be found (are you missing a using directive or an assembly reference?) 1>C:\source\VulkanSharp\src\Vulkan\Structs.cs(8132,12,8132,52): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('ObjectTablePushConstantEntryNVX') 1>C:\source\VulkanSharp\src\Vulkan\Interop\ImportedCommands.cs(522,90,522,126): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('IndirectCommandsLayoutCreateInfoNVX') 1>C:\source\VulkanSharp\src\Vulkan\Interop\ImportedCommands.cs(534,117,534,137): error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('ObjectTableEntryNVX')

cheers,

Bob