diff --git a/src/Vulkan/Version.h b/src/Vulkan/Version.h
index 002d880..c97fb24 100644
--- a/src/Vulkan/Version.h
+++ b/src/Vulkan/Version.h
@@ -14,11 +14,11 @@
 
 #define MAJOR_VERSION 5
 #define MINOR_VERSION 0
-#define BUILD_VERSION 0
+#define PATCH_VERSION 0
 #define BUILD_REVISION 1
 
 #define STRINGIFY(x) #x
 #define MACRO_STRINGIFY(x) STRINGIFY(x)
 
 #define REVISION_STRING MACRO_STRINGIFY(BUILD_REVISION)
-#define VERSION_STRING MACRO_STRINGIFY(MAJOR_VERSION) "." MACRO_STRINGIFY(MINOR_VERSION) "." MACRO_STRINGIFY(BUILD_VERSION) "." MACRO_STRINGIFY(BUILD_REVISION)
+#define VERSION_STRING MACRO_STRINGIFY(MAJOR_VERSION) "." MACRO_STRINGIFY(MINOR_VERSION) "." MACRO_STRINGIFY(PATCH_VERSION)
diff --git a/src/Vulkan/VkCommandBuffer.hpp b/src/Vulkan/VkCommandBuffer.hpp
index f191616..abcf241 100644
--- a/src/Vulkan/VkCommandBuffer.hpp
+++ b/src/Vulkan/VkCommandBuffer.hpp
@@ -120,7 +120,7 @@
 		VkBuffer buffer;
 		VkDeviceSize offset;
 	};
-	VertexInputBindings vertexInputBindings[MaxVertexInputBindings];
+	VertexInputBindings vertexInputBindings[MAX_VERTEX_INPUT_BINDINGS];
 };
 
 using DispatchableCommandBuffer = DispatchableObject<CommandBuffer, VkCommandBuffer>;
diff --git a/src/Vulkan/VkConfig.h b/src/Vulkan/VkConfig.h
index f68a688..7646a74 100644
--- a/src/Vulkan/VkConfig.h
+++ b/src/Vulkan/VkConfig.h
@@ -15,17 +15,22 @@
 #ifndef VK_CONFIG_HPP_
 #define VK_CONFIG_HPP_
 
+#include "Version.h"
+
+#include <vulkan/vulkan_core.h>
+
 namespace vk
 {
 
 // Note: Constant array initialization requires a string literal.
 //       constexpr char* or char[] does not work for that purpose.
 #define SWIFTSHADER_DEVICE_NAME "SwiftShader Device" // Max length: VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
-#define SWIFTSHADER_UUID "SwiftShaderUUID" // Max length: VK_UUID_SIZE
+#define SWIFTSHADER_UUID "SwiftShaderUUID" // Max length: VK_UUID_SIZE (16)
 
 enum
 {
-	DRIVER_VERSION = 1,
+	API_VERSION = VK_API_VERSION_1_1,
+	DRIVER_VERSION = VK_MAKE_VERSION(MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION),
 	VENDOR_ID = 0x1AE0, // Google
 	DEVICE_ID = 0xC0DE, // SwiftShader
 };
@@ -45,8 +50,9 @@
 	MAX_IMAGE_ARRAY_LAYERS = 11,
 };
 
-enum {
-	MaxVertexInputBindings = 16,
+enum
+{
+	MAX_VERTEX_INPUT_BINDINGS = 16,
 };
 
 }
diff --git a/src/Vulkan/VkPhysicalDevice.cpp b/src/Vulkan/VkPhysicalDevice.cpp
index 0ee1051..91637d2 100644
--- a/src/Vulkan/VkPhysicalDevice.cpp
+++ b/src/Vulkan/VkPhysicalDevice.cpp
@@ -166,7 +166,7 @@
 		24, // maxDescriptorSetStorageImages
 		4, // maxDescriptorSetInputAttachments
 		16, // maxVertexInputAttributes
-		vk::MaxVertexInputBindings, // maxVertexInputBindings
+		vk::MAX_VERTEX_INPUT_BINDINGS, // maxVertexInputBindings
 		2047, // maxVertexInputAttributeOffset
 		2048, // maxVertexInputBindingStride
 		64, // maxVertexOutputComponents
@@ -247,17 +247,11 @@
 	return limits;
 }
 
-
 const VkPhysicalDeviceProperties& PhysicalDevice::getProperties() const
 {
-	uint32_t apiVersion;
-	VkResult result = vkEnumerateInstanceVersion(&apiVersion);
-	ASSERT(result == VK_SUCCESS);
-	(void)result; // Slence unused variable warning
-
 	static const VkPhysicalDeviceProperties properties
 	{
-		apiVersion,
+		API_VERSION,
 		DRIVER_VERSION,
 		VENDOR_ID,
 		DEVICE_ID,
@@ -273,10 +267,13 @@
 
 void PhysicalDevice::getProperties(VkPhysicalDeviceIDProperties* properties) const
 {
-	memcpy(properties->deviceUUID, SWIFTSHADER_UUID, VK_UUID_SIZE);
-	memset(properties->deviceLUID, 0, VK_LUID_SIZE);
+	memset(properties->deviceUUID, 0, VK_UUID_SIZE);
 	memset(properties->driverUUID, 0, VK_UUID_SIZE);
+	memset(properties->deviceLUID, 0, VK_LUID_SIZE);
+
+	memcpy(properties->deviceUUID, SWIFTSHADER_UUID, VK_UUID_SIZE);
 	*((uint64_t*)properties->driverUUID) = DRIVER_VERSION;
+
 	properties->deviceNodeMask = 0;
 	properties->deviceLUIDValid = VK_FALSE;
 }
diff --git a/src/Vulkan/Vulkan.rc b/src/Vulkan/Vulkan.rc
index 98db1ed..3800c7c 100644
--- a/src/Vulkan/Vulkan.rc
+++ b/src/Vulkan/Vulkan.rc
@@ -54,8 +54,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION
- PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,BUILD_VERSION,BUILD_REVISION
+ FILEVERSION MAJOR_VERSION,MINOR_VERSION,PATCH_VERSION,BUILD_REVISION
+ PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,PATCH_VERSION,BUILD_REVISION
  FILEFLAGSMASK 0x17L
 #ifdef _DEBUG
  FILEFLAGS 0x1L
diff --git a/src/Vulkan/libVulkan.cpp b/src/Vulkan/libVulkan.cpp
index 9e03912..a3abbad 100644
--- a/src/Vulkan/libVulkan.cpp
+++ b/src/Vulkan/libVulkan.cpp
@@ -1376,7 +1376,7 @@
 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(uint32_t* pApiVersion)
 {
 	TRACE("(uint32_t* pApiVersion = 0x%X)", pApiVersion);
-	*pApiVersion = VK_API_VERSION_1_1;
+	*pApiVersion = vk::API_VERSION;
 	return VK_SUCCESS;
 }
 
