Base the driver version on Version.h.
Also always clear the UUIDs first so that shorter strings don't leave
data undefined.
Bug b/116336664
Change-Id: I77d5ae1514db5d68d540614b7c57c4872695ecca
Reviewed-on: https://swiftshader-review.googlesource.com/c/22490
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Corentin Wallez <cwallez@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
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;
}