-LIBRARY vk_swiftshader.dll
-EXPORTS
- vk_icdGetInstanceProcAddr
+LIBRARY vk_swiftshader\r
+EXPORTS\r
+ ; Mandatory ICD entry function\r
+ vk_icdGetInstanceProcAddr\r
+\r
+ ; Optional Vulkan API entry functions\r
+ vkCreateInstance\r
+ vkDestroyInstance\r
+ vkEnumeratePhysicalDevices\r
+ vkGetPhysicalDeviceFeatures\r
+ vkGetPhysicalDeviceFormatProperties\r
+ vkGetPhysicalDeviceImageFormatProperties\r
+ vkGetPhysicalDeviceProperties\r
+ vkGetPhysicalDeviceQueueFamilyProperties\r
+ vkGetPhysicalDeviceMemoryProperties\r
+ vkGetInstanceProcAddr\r
+ vkGetDeviceProcAddr\r
+ vkCreateDevice\r
+ vkDestroyDevice\r
+ vkEnumerateInstanceExtensionProperties\r
+ vkEnumerateDeviceExtensionProperties\r
+ vkEnumerateInstanceLayerProperties\r
+ vkEnumerateDeviceLayerProperties\r
+ vkGetDeviceQueue\r
+ vkQueueSubmit\r
+ vkQueueWaitIdle\r
+ vkDeviceWaitIdle\r
+ vkAllocateMemory\r
+ vkFreeMemory\r
+ vkMapMemory\r
+ vkUnmapMemory\r
+ vkFlushMappedMemoryRanges\r
+ vkInvalidateMappedMemoryRanges\r
+ vkGetDeviceMemoryCommitment\r
+ vkBindBufferMemory\r
+ vkBindImageMemory\r
+ vkGetBufferMemoryRequirements\r
+ vkGetImageMemoryRequirements\r
+ vkGetImageSparseMemoryRequirements\r
+ vkGetPhysicalDeviceSparseImageFormatProperties\r
+ vkQueueBindSparse\r
+ vkCreateFence\r
+ vkDestroyFence\r
+ vkResetFences\r
+ vkGetFenceStatus\r
+ vkWaitForFences\r
+ vkCreateSemaphore\r
+ vkDestroySemaphore\r
+ vkCreateEvent\r
+ vkDestroyEvent\r
+ vkGetEventStatus\r
+ vkSetEvent\r
+ vkResetEvent\r
+ vkCreateQueryPool\r
+ vkDestroyQueryPool\r
+ vkGetQueryPoolResults\r
+ vkCreateBuffer\r
+ vkDestroyBuffer\r
+ vkCreateBufferView\r
+ vkDestroyBufferView\r
+ vkCreateImage\r
+ vkDestroyImage\r
+ vkGetImageSubresourceLayout\r
+ vkCreateImageView\r
+ vkDestroyImageView\r
+ vkCreateShaderModule\r
+ vkDestroyShaderModule\r
+ vkCreatePipelineCache\r
+ vkDestroyPipelineCache\r
+ vkGetPipelineCacheData\r
+ vkMergePipelineCaches\r
+ vkCreateGraphicsPipelines\r
+ vkCreateComputePipelines\r
+ vkDestroyPipeline\r
+ vkCreatePipelineLayout\r
+ vkDestroyPipelineLayout\r
+ vkCreateSampler\r
+ vkDestroySampler\r
+ vkCreateDescriptorSetLayout\r
+ vkDestroyDescriptorSetLayout\r
+ vkCreateDescriptorPool\r
+ vkDestroyDescriptorPool\r
+ vkResetDescriptorPool\r
+ vkAllocateDescriptorSets\r
+ vkFreeDescriptorSets\r
+ vkUpdateDescriptorSets\r
+ vkCreateFramebuffer\r
+ vkDestroyFramebuffer\r
+ vkCreateRenderPass\r
+ vkDestroyRenderPass\r
+ vkGetRenderAreaGranularity\r
+ vkCreateCommandPool\r
+ vkDestroyCommandPool\r
+ vkResetCommandPool\r
+ vkAllocateCommandBuffers\r
+ vkFreeCommandBuffers\r
+ vkBeginCommandBuffer\r
+ vkEndCommandBuffer\r
+ vkResetCommandBuffer\r
+ vkCmdBindPipeline\r
+ vkCmdSetViewport\r
+ vkCmdSetScissor\r
+ vkCmdSetLineWidth\r
+ vkCmdSetDepthBias\r
+ vkCmdSetBlendConstants\r
+ vkCmdSetDepthBounds\r
+ vkCmdSetStencilCompareMask\r
+ vkCmdSetStencilWriteMask\r
+ vkCmdSetStencilReference\r
+ vkCmdBindDescriptorSets\r
+ vkCmdBindIndexBuffer\r
+ vkCmdBindVertexBuffers\r
+ vkCmdDraw\r
+ vkCmdDrawIndexed\r
+ vkCmdDrawIndirect\r
+ vkCmdDrawIndexedIndirect\r
+ vkCmdDispatch\r
+ vkCmdDispatchIndirect\r
+ vkCmdCopyBuffer\r
+ vkCmdCopyImage\r
+ vkCmdBlitImage\r
+ vkCmdCopyBufferToImage\r
+ vkCmdCopyImageToBuffer\r
+ vkCmdUpdateBuffer\r
+ vkCmdFillBuffer\r
+ vkCmdClearColorImage\r
+ vkCmdClearDepthStencilImage\r
+ vkCmdClearAttachments\r
+ vkCmdResolveImage\r
+ vkCmdSetEvent\r
+ vkCmdResetEvent\r
+ vkCmdWaitEvents\r
+ vkCmdPipelineBarrier\r
+ vkCmdBeginQuery\r
+ vkCmdEndQuery\r
+ vkCmdResetQueryPool\r
+ vkCmdWriteTimestamp\r
+ vkCmdCopyQueryPoolResults\r
+ vkCmdPushConstants\r
+ vkCmdBeginRenderPass\r
+ vkCmdNextSubpass\r
+ vkCmdEndRenderPass\r
+ vkCmdExecuteCommands\r
+ vkEnumerateInstanceVersion\r
+ vkBindBufferMemory2\r
+ vkBindImageMemory2\r
+ vkGetDeviceGroupPeerMemoryFeatures\r
+ vkCmdSetDeviceMask\r
+ vkCmdDispatchBase\r
+ vkEnumeratePhysicalDeviceGroups\r
+ vkGetImageMemoryRequirements2\r
+ vkGetBufferMemoryRequirements2\r
+ vkGetImageSparseMemoryRequirements2\r
+ vkGetPhysicalDeviceFeatures2\r
+ vkGetPhysicalDeviceProperties2\r
+ vkGetPhysicalDeviceFormatProperties2\r
+ vkGetPhysicalDeviceImageFormatProperties2\r
+ vkGetPhysicalDeviceQueueFamilyProperties2\r
+ vkGetPhysicalDeviceMemoryProperties2\r
+ vkGetPhysicalDeviceSparseImageFormatProperties2\r
+ vkTrimCommandPool\r
+ vkGetDeviceQueue2\r
+ vkCreateSamplerYcbcrConversion\r
+ vkDestroySamplerYcbcrConversion\r
+ vkCreateDescriptorUpdateTemplate\r
+ vkDestroyDescriptorUpdateTemplate\r
+ vkUpdateDescriptorSetWithTemplate\r
+ vkGetPhysicalDeviceExternalBufferProperties\r
+ vkGetPhysicalDeviceExternalFenceProperties\r
+ vkGetPhysicalDeviceExternalSemaphoreProperties\r
+ vkGetDescriptorSetLayoutSupport\r
+ ; VK_KHR_bind_memory2\r
+ vkBindBufferMemory2KHR\r
+ vkBindImageMemory2KHR\r
+ ; VK_KHR_descriptor_update_template\r
+ vkCreateDescriptorUpdateTemplateKHR\r
+ vkDestroyDescriptorUpdateTemplateKHR\r
+ vkUpdateDescriptorSetWithTemplateKHR\r
+ ; VK_KHR_device_group\r
+ vkGetDeviceGroupPeerMemoryFeaturesKHR\r
+ vkCmdSetDeviceMaskKHR\r
+ vkCmdDispatchBaseKHR\r
+ ; VK_KHR_device_group_creation\r
+ vkEnumeratePhysicalDeviceGroupsKHR\r
+ ; VK_KHR_external_fence_capabilities\r
+ vkGetPhysicalDeviceExternalFencePropertiesKHR\r
+ ; VK_KHR_external_memory_capabilities\r
+ vkGetPhysicalDeviceExternalBufferPropertiesKHR\r
+ ; VK_KHR_external_semaphore_capabilities\r
+ vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\r
+ ; VK_KHR_get_memory_requirements2\r
+ vkGetImageMemoryRequirements2KHR\r
+ vkGetBufferMemoryRequirements2KHR\r
+ vkGetImageSparseMemoryRequirements2KHR\r
+ ; VK_KHR_get_physical_device_properties2\r
+ vkGetPhysicalDeviceFeatures2KHR\r
+ vkGetPhysicalDeviceProperties2KHR\r
+ vkGetPhysicalDeviceFormatProperties2KHR\r
+ vkGetPhysicalDeviceImageFormatProperties2KHR\r
+ vkGetPhysicalDeviceQueueFamilyProperties2KHR\r
+ vkGetPhysicalDeviceMemoryProperties2KHR\r
+ vkGetPhysicalDeviceSparseImageFormatProperties2KHR\r
+ ; VK_KHR_maintenance1\r
+ vkTrimCommandPoolKHR\r
+ ; VK_KHR_maintenance3\r
+ vkGetDescriptorSetLayoutSupportKHR\r
+ ; VK_KHR_sampler_ycbcr_conversion\r
+ vkCreateSamplerYcbcrConversionKHR\r
+ vkDestroySamplerYcbcrConversionKHR\r
{
Initialize(3, false);
- GLfloat zero_float = 0;\r
- GLuint renderbuffer;\r
- glGenRenderbuffers(1, &renderbuffer);\r
- GLuint framebuffer;\r
- glGenFramebuffers(1, &framebuffer);\r
-\r
- glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);\r
- EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());\r
- glRenderbufferStorage(GL_RENDERBUFFER, GL_R8I, 43, 27);\r
- EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());\r
- glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);\r
- EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());\r
- glFramebufferRenderbuffer(GL_READ_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, renderbuffer);\r
- EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());\r
- glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);\r
- EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());\r
+ GLfloat zero_float = 0;
+ GLuint renderbuffer;
+ glGenRenderbuffers(1, &renderbuffer);
+ GLuint framebuffer;
+ glGenFramebuffers(1, &framebuffer);
+
+ glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
+ EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());
+ glRenderbufferStorage(GL_RENDERBUFFER, GL_R8I, 43, 27);
+ EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());
+ glBindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
+ EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());
+ glFramebufferRenderbuffer(GL_READ_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, renderbuffer);
+ EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());
+ glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
+ EXPECT_GLENUM_EQ(GL_NO_ERROR, glGetError());
glClearBufferfv(GL_DEPTH, 0, &zero_float);
EXPECT_GLENUM_EQ(GL_INVALID_FRAMEBUFFER_OPERATION, glGetError());
<ClCompile Include="unittests.cpp" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="..\..\src\OpenGL\libEGL\libEGL.vcxproj">\r
- <Project>{e746fca9-64c3-433e-85e8-9a5a67ab7ed6}</Project>\r
- </ProjectReference>\r
- <ProjectReference Include="..\..\src\OpenGL\libGLESv2\libGLESv2.vcxproj">\r
- <Project>{b5871a7a-968c-42e3-a33b-981e6f448e78}</Project>\r
+ <ProjectReference Include="..\..\src\Vulkan\vulkan.vcxproj">\r
+ <Project>{e1c34b66-c942-4b9a-b8c3-9a12625650d3}</Project>\r
</ProjectReference>\r
</ItemGroup>\r
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
-// Copyright 2017 The SwiftShader Authors. All Rights Reserved.\r
+// Copyright 2018 The SwiftShader Authors. All Rights Reserved.\r
//\r
// Licensed under the Apache License, Version 2.0 (the "License");\r
// you may not use this file except in compliance with the License.\r
// See the License for the specific language governing permissions and\r
// limitations under the License.\r
\r
-// OpenGL ES unit tests that provide coverage for functionality not tested by\r
+// Vulkan unit tests that provide coverage for functionality not tested by\r
// the dEQP test suite. Also used as a smoke test.\r
\r
#include "gtest/gtest.h"\r
\r
#if defined(_WIN64)\r
#if defined(NDEBUG)\r
- libVulkanName = "..\\..\\..\\vulkan\\x64\\Release\\vk_swiftshader.dll";\r
+ libVulkanName = "../../out/Release_x64/vk_swiftshader.dll";\r
#else\r
- libVulkanName = "..\\..\\..\\vulkan\\x64\\Debug\\vk_swiftshader.dll";\r
- #endif\r
- #elif defined(_WIN32)\r
- #if defined(NDEBUG)\r
- libVulkanName = "..\\..\\..\\vulkan\\Win32\\Release\\vk_swiftshader.dll";\r
- #else\r
- libVulkanName = "..\\..\\..\\vulkan\\Win32\\Debug\\vk_swiftshader.dll";\r
+ libVulkanName = "../../out/Debug_x64/vk_swiftshader.dll";\r
#endif\r
+ #else\r
+ #error Unimplemented platform\r
#endif\r
\r
#if defined(_WIN32)\r
\r
TEST_F(SwiftShaderVulkanTest, Version)\r
{\r
- if(vk_icdGetInstanceProcAddr)\r
+ const VkInstanceCreateInfo createInfo =\r
{\r
- auto vkCreateInstance = (PFN_vkCreateInstance)vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkCreateInstance");\r
- EXPECT_NE(vkCreateInstance, nullptr);\r
+ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, // sType\r
+ nullptr, // pNext\r
+ 0, // flags\r
+ nullptr, // pApplicationInfo\r
+ 0, // enabledLayerCount\r
+ nullptr, // ppEnabledLayerNames\r
+ 0, // enabledExtensionCount\r
+ nullptr, // ppEnabledExtensionNames\r
+ };\r
+ VkInstance instance;\r
+ VkResult result = vkCreateInstance(&createInfo, nullptr, &instance);\r
+ EXPECT_EQ(result, VK_SUCCESS);\r
\r
- const VkInstanceCreateInfo createInfo = \r
- {\r
- VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, // sType\r
- nullptr, // pNext\r
- 0, // flags\r
- nullptr, // pApplicationInfo\r
- 0, // enabledLayerCount\r
- nullptr, // ppEnabledLayerNames\r
- 0, // enabledExtensionCount\r
- nullptr, // ppEnabledExtensionNames\r
- };\r
- VkInstance instance;\r
- VkResult result = vkCreateInstance(&createInfo, nullptr, &instance);\r
- EXPECT_EQ(result, VK_SUCCESS);\r
+ uint32_t pPhysicalDeviceCount = 0;\r
+ result = vkEnumeratePhysicalDevices(instance, &pPhysicalDeviceCount, nullptr);\r
+ EXPECT_EQ(result, VK_SUCCESS);\r
+ EXPECT_EQ(pPhysicalDeviceCount, 1);\r
\r
- auto vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumeratePhysicalDevices");\r
- EXPECT_NE(vkEnumeratePhysicalDevices, nullptr);\r
+ VkPhysicalDevice pPhysicalDevice = VK_NULL_HANDLE;\r
+ result = vkEnumeratePhysicalDevices(instance, &pPhysicalDeviceCount, &pPhysicalDevice);\r
+ EXPECT_EQ(result, VK_SUCCESS);\r
+ EXPECT_NE(pPhysicalDevice, (VkPhysicalDevice)VK_NULL_HANDLE);\r
\r
- uint32_t pPhysicalDeviceCount = 0;\r
- result = vkEnumeratePhysicalDevices(instance, &pPhysicalDeviceCount, nullptr);\r
- EXPECT_EQ(result, VK_SUCCESS);\r
- EXPECT_EQ(pPhysicalDeviceCount, 1);\r
+ VkPhysicalDeviceProperties physicalDeviceProperties;\r
+ vkGetPhysicalDeviceProperties(pPhysicalDevice, &physicalDeviceProperties);\r
+ EXPECT_EQ(physicalDeviceProperties.apiVersion, VK_API_VERSION_1_1);\r
+ EXPECT_EQ(physicalDeviceProperties.deviceID, 0xC0DE);\r
+ EXPECT_EQ(physicalDeviceProperties.deviceType, VK_PHYSICAL_DEVICE_TYPE_CPU);\r
\r
- VkPhysicalDevice pPhysicalDevice = VK_NULL_HANDLE;\r
- result = vkEnumeratePhysicalDevices(instance, &pPhysicalDeviceCount, &pPhysicalDevice);\r
- EXPECT_EQ(result, VK_SUCCESS);\r
- EXPECT_NE(pPhysicalDevice, (VkPhysicalDevice)VK_NULL_HANDLE);\r
-\r
- auto vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)vk_icdGetInstanceProcAddr(VK_NULL_HANDLE, "vkGetPhysicalDeviceProperties");\r
- EXPECT_NE(vkEnumeratePhysicalDevices, nullptr);\r
-\r
- VkPhysicalDeviceProperties physicalDeviceProperties;\r
- vkGetPhysicalDeviceProperties(pPhysicalDevice, &physicalDeviceProperties);\r
- EXPECT_EQ(physicalDeviceProperties.apiVersion, VK_API_VERSION_1_1);\r
- EXPECT_EQ(physicalDeviceProperties.deviceID, 0xC0DE);\r
- EXPECT_EQ(physicalDeviceProperties.deviceType, VK_PHYSICAL_DEVICE_TYPE_CPU);\r
-\r
- EXPECT_EQ(strncmp(physicalDeviceProperties.deviceName, "SwiftShader Device", VK_MAX_PHYSICAL_DEVICE_NAME_SIZE), 0);\r
- }\r
+ EXPECT_EQ(strncmp(physicalDeviceProperties.deviceName, "SwiftShader Device", VK_MAX_PHYSICAL_DEVICE_NAME_SIZE), 0);\r
}\r