Commit 29a9809a by Nicolas Capens Committed by Nicolas Capens

Export Vulkan API entry functions

This enables running tests and applications directly against the driver without the use of a loader. Bug: b/148240133 Change-Id: I7c906ed72a6bd5465a50381d3e91e18383bb23e1 Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/28370 Presubmit-Ready: Nicolas Capens <nicolascapens@google.com> Reviewed-by: 's avatarBen Clayton <bclayton@google.com> Kokoro-Presubmit: kokoro <noreply+kokoro@google.com> Tested-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent ba9de975
...@@ -2130,9 +2130,11 @@ if(SWIFTSHADER_BUILD_VULKAN) ...@@ -2130,9 +2130,11 @@ if(SWIFTSHADER_BUILD_VULKAN)
) )
if(WIN32) if(WIN32)
set(VULKAN_API_LIBRARY_NAME "vulkan-1.dll")
set_property(TARGET vk_swiftshader APPEND set_property(TARGET vk_swiftshader APPEND
PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_WIN32_KHR") PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_WIN32_KHR")
elseif(LINUX) elseif(LINUX)
set(VULKAN_API_LIBRARY_NAME "libvulkan.so.1")
if(X11) if(X11)
set_property(TARGET vk_swiftshader APPEND set_property(TARGET vk_swiftshader APPEND
PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XLIB_KHR") PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XLIB_KHR")
...@@ -2142,8 +2144,11 @@ if(SWIFTSHADER_BUILD_VULKAN) ...@@ -2142,8 +2144,11 @@ if(SWIFTSHADER_BUILD_VULKAN)
PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XCB_KHR") PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XCB_KHR")
endif() endif()
elseif(APPLE) elseif(APPLE)
set(VULKAN_API_LIBRARY_NAME "libvulkan.dylib")
set_property(TARGET vk_swiftshader APPEND set_property(TARGET vk_swiftshader APPEND
PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_MACOS_MVK") PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_MACOS_MVK")
else()
message(FATAL_ERROR "Platform does not support Vulkan yet")
endif() endif()
set_shared_library_export_map(vk_swiftshader ${SOURCE_DIR}/Vulkan) set_shared_library_export_map(vk_swiftshader ${SOURCE_DIR}/Vulkan)
...@@ -2157,10 +2162,9 @@ if(SWIFTSHADER_BUILD_VULKAN) ...@@ -2157,10 +2162,9 @@ if(SWIFTSHADER_BUILD_VULKAN)
add_custom_command( add_custom_command(
TARGET vk_swiftshader TARGET vk_swiftshader
POST_BUILD POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:vk_swiftshader>/translator
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> $<TARGET_FILE_DIR:vk_swiftshader>/translator/${LIB_PREFIX}Vulkan_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/${VULKAN_API_LIBRARY_NAME}
) )
# The vk_swiftshader_icd.json manifest file will point to ICD_LIBRARY_PATH. # The vk_swiftshader_icd.json manifest file will point to ICD_LIBRARY_PATH.
...@@ -2175,11 +2179,12 @@ if(SWIFTSHADER_BUILD_VULKAN) ...@@ -2175,11 +2179,12 @@ if(SWIFTSHADER_BUILD_VULKAN)
endif() endif()
configure_file( configure_file(
"${VULKAN_DIR}/vk_swiftshader_icd.json.tmpl" "${VULKAN_DIR}/vk_swiftshader_icd.json.tmpl"
"${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/vk_swiftshader_icd.json") "${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/vk_swiftshader_icd.json"
endif(SWIFTSHADER_BUILD_VULKAN) )
endif()
########################################################### ###########################################################
# Sample programs # Sample programs and tests
########################################################### ###########################################################
if(SWIFTSHADER_BUILD_SAMPLES) if(SWIFTSHADER_BUILD_SAMPLES)
......
{ {
global: global:
vkGetInstanceProcAddr;
# Loader-ICD interface functions # Loader-ICD interface functions
vk_icdGetInstanceProcAddr; vk_icdGetInstanceProcAddr;
vk_icdNegotiateLoaderICDInterfaceVersion; vk_icdNegotiateLoaderICDInterfaceVersion;
# Optional Vulkan API entry functions
vkCreateInstance;
vkDestroyInstance;
vkEnumeratePhysicalDevices;
vkGetPhysicalDeviceFeatures;
vkGetPhysicalDeviceFormatProperties;
vkGetPhysicalDeviceImageFormatProperties;
vkGetPhysicalDeviceProperties;
vkGetPhysicalDeviceQueueFamilyProperties;
vkGetPhysicalDeviceMemoryProperties;
vkGetInstanceProcAddr;
vkGetDeviceProcAddr;
vkCreateDevice;
vkDestroyDevice;
vkEnumerateInstanceExtensionProperties;
vkEnumerateDeviceExtensionProperties;
vkEnumerateInstanceLayerProperties;
vkEnumerateDeviceLayerProperties;
vkGetDeviceQueue;
vkQueueSubmit;
vkQueueWaitIdle;
vkDeviceWaitIdle;
vkAllocateMemory;
vkFreeMemory;
vkMapMemory;
vkUnmapMemory;
vkFlushMappedMemoryRanges;
vkInvalidateMappedMemoryRanges;
vkGetDeviceMemoryCommitment;
vkBindBufferMemory;
vkBindImageMemory;
vkGetBufferMemoryRequirements;
vkGetImageMemoryRequirements;
vkGetImageSparseMemoryRequirements;
vkGetPhysicalDeviceSparseImageFormatProperties;
vkQueueBindSparse;
vkCreateFence;
vkDestroyFence;
vkResetFences;
vkGetFenceStatus;
vkWaitForFences;
vkCreateSemaphore;
vkDestroySemaphore;
vkCreateEvent;
vkDestroyEvent;
vkGetEventStatus;
vkSetEvent;
vkResetEvent;
vkCreateQueryPool;
vkDestroyQueryPool;
vkGetQueryPoolResults;
vkCreateBuffer;
vkDestroyBuffer;
vkCreateBufferView;
vkDestroyBufferView;
vkCreateImage;
vkDestroyImage;
vkGetImageSubresourceLayout;
vkCreateImageView;
vkDestroyImageView;
vkCreateShaderModule;
vkDestroyShaderModule;
vkCreatePipelineCache;
vkDestroyPipelineCache;
vkGetPipelineCacheData;
vkMergePipelineCaches;
vkCreateGraphicsPipelines;
vkCreateComputePipelines;
vkDestroyPipeline;
vkCreatePipelineLayout;
vkDestroyPipelineLayout;
vkCreateSampler;
vkDestroySampler;
vkCreateDescriptorSetLayout;
vkDestroyDescriptorSetLayout;
vkCreateDescriptorPool;
vkDestroyDescriptorPool;
vkResetDescriptorPool;
vkAllocateDescriptorSets;
vkFreeDescriptorSets;
vkUpdateDescriptorSets;
vkCreateFramebuffer;
vkDestroyFramebuffer;
vkCreateRenderPass;
vkDestroyRenderPass;
vkGetRenderAreaGranularity;
vkCreateCommandPool;
vkDestroyCommandPool;
vkResetCommandPool;
vkAllocateCommandBuffers;
vkFreeCommandBuffers;
vkBeginCommandBuffer;
vkEndCommandBuffer;
vkResetCommandBuffer;
vkCmdBindPipeline;
vkCmdSetViewport;
vkCmdSetScissor;
vkCmdSetLineWidth;
vkCmdSetDepthBias;
vkCmdSetBlendConstants;
vkCmdSetDepthBounds;
vkCmdSetStencilCompareMask;
vkCmdSetStencilWriteMask;
vkCmdSetStencilReference;
vkCmdBindDescriptorSets;
vkCmdBindIndexBuffer;
vkCmdBindVertexBuffers;
vkCmdDraw;
vkCmdDrawIndexed;
vkCmdDrawIndirect;
vkCmdDrawIndexedIndirect;
vkCmdDispatch;
vkCmdDispatchIndirect;
vkCmdCopyBuffer;
vkCmdCopyImage;
vkCmdBlitImage;
vkCmdCopyBufferToImage;
vkCmdCopyImageToBuffer;
vkCmdUpdateBuffer;
vkCmdFillBuffer;
vkCmdClearColorImage;
vkCmdClearDepthStencilImage;
vkCmdClearAttachments;
vkCmdResolveImage;
vkCmdSetEvent;
vkCmdResetEvent;
vkCmdWaitEvents;
vkCmdPipelineBarrier;
vkCmdBeginQuery;
vkCmdEndQuery;
vkCmdResetQueryPool;
vkCmdWriteTimestamp;
vkCmdCopyQueryPoolResults;
vkCmdPushConstants;
vkCmdBeginRenderPass;
vkCmdNextSubpass;
vkCmdEndRenderPass;
vkCmdExecuteCommands;
vkEnumerateInstanceVersion;
vkBindBufferMemory2;
vkBindImageMemory2;
vkGetDeviceGroupPeerMemoryFeatures;
vkCmdSetDeviceMask;
vkCmdDispatchBase;
vkEnumeratePhysicalDeviceGroups;
vkGetImageMemoryRequirements2;
vkGetBufferMemoryRequirements2;
vkGetImageSparseMemoryRequirements2;
vkGetPhysicalDeviceFeatures2;
vkGetPhysicalDeviceProperties2;
vkGetPhysicalDeviceFormatProperties2;
vkGetPhysicalDeviceImageFormatProperties2;
vkGetPhysicalDeviceQueueFamilyProperties2;
vkGetPhysicalDeviceMemoryProperties2;
vkGetPhysicalDeviceSparseImageFormatProperties2;
vkTrimCommandPool;
vkGetDeviceQueue2;
vkCreateSamplerYcbcrConversion;
vkDestroySamplerYcbcrConversion;
vkCreateDescriptorUpdateTemplate;
vkDestroyDescriptorUpdateTemplate;
vkUpdateDescriptorSetWithTemplate;
vkGetPhysicalDeviceExternalBufferProperties;
vkGetPhysicalDeviceExternalFenceProperties;
vkGetPhysicalDeviceExternalSemaphoreProperties;
vkGetDescriptorSetLayoutSupport;
# VK_KHR_bind_memory2;
vkBindBufferMemory2KHR;
vkBindImageMemory2KHR;
# VK_KHR_descriptor_update_template;
vkCreateDescriptorUpdateTemplateKHR;
vkDestroyDescriptorUpdateTemplateKHR;
vkUpdateDescriptorSetWithTemplateKHR;
# VK_KHR_device_group;
vkGetDeviceGroupPeerMemoryFeaturesKHR;
vkCmdSetDeviceMaskKHR;
vkCmdDispatchBaseKHR;
# VK_KHR_device_group_creation;
vkEnumeratePhysicalDeviceGroupsKHR;
# VK_KHR_external_fence_capabilities;
vkGetPhysicalDeviceExternalFencePropertiesKHR;
# VK_KHR_external_memory_capabilities;
vkGetPhysicalDeviceExternalBufferPropertiesKHR;
# VK_KHR_external_semaphore_capabilities;
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
# VK_KHR_get_memory_requirements2;
vkGetImageMemoryRequirements2KHR;
vkGetBufferMemoryRequirements2KHR;
vkGetImageSparseMemoryRequirements2KHR;
# VK_KHR_get_physical_device_properties2;
vkGetPhysicalDeviceFeatures2KHR;
vkGetPhysicalDeviceProperties2KHR;
vkGetPhysicalDeviceFormatProperties2KHR;
vkGetPhysicalDeviceImageFormatProperties2KHR;
vkGetPhysicalDeviceQueueFamilyProperties2KHR;
vkGetPhysicalDeviceMemoryProperties2KHR;
vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
# VK_KHR_maintenance1;
vkTrimCommandPoolKHR;
# VK_KHR_maintenance3;
vkGetDescriptorSetLayoutSupportKHR;
# VK_KHR_sampler_ycbcr_conversion;
vkCreateSamplerYcbcrConversionKHR;
vkDestroySamplerYcbcrConversionKHR;
# VK_KHR_surface;
vkDestroySurfaceKHR;
vkGetPhysicalDeviceSurfaceSupportKHR;
vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
vkGetPhysicalDeviceSurfaceFormatsKHR;
vkGetPhysicalDeviceSurfacePresentModesKHR;
# Type-strings and type-infos required by sanitizers # Type-strings and type-infos required by sanitizers
_ZTS*; _ZTS*;
_ZTI*; _ZTI*;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment