1 // 2 // Copyright 2016 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 // vk_headers: 7 // This file should be included to ensure the vulkan headers are included 8 // 9 10 #ifndef LIBANGLE_RENDERER_VULKAN_VK_HEADERS_H_ 11 #define LIBANGLE_RENDERER_VULKAN_VK_HEADERS_H_ 12 13 #if ANGLE_SHARED_LIBVULKAN 14 # include <volk.h> 15 #else 16 # include <vulkan/vulkan.h> 17 #endif 18 19 // For the unreleased VK_GOOGLEX_multisampled_render_to_single_sampled 20 #if !defined(VK_GOOGLEX_multisampled_render_to_single_sampled) 21 # define VK_GOOGLEX_multisampled_render_to_single_sampled 1 22 # define VK_GOOGLEX_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1 23 # define VK_GOOGLEX_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME \ 24 "VK_GOOGLEX_multisampled_render_to_single_sampled" 25 26 # define VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_GOOGLEX \ 27 ((VkStructureType)(1000376000)) 28 # define VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_GOOGLEX \ 29 ((VkStructureType)(1000376001)) 30 31 typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesGOOGLEX 32 { 33 VkStructureType sType; 34 const void *pNext; 35 VkBool32 multisampledRenderToSingleSampled; 36 } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesGOOGLEX; 37 38 typedef struct VkMultisampledRenderToSingleSampledInfoGOOGLEX 39 { 40 VkStructureType sType; 41 const void *pNext; 42 VkBool32 multisampledRenderToSingleSampledEnable; 43 VkSampleCountFlagBits rasterizationSamples; 44 VkResolveModeFlagBits depthResolveMode; 45 VkResolveModeFlagBits stencilResolveMode; 46 } VkMultisampledRenderToSingleSampledInfoGOOGLEX; 47 #endif /* VK_GOOGLEX_multisampled_render_to_single_sampled */ 48 49 #if !defined(ANGLE_SHARED_LIBVULKAN) 50 51 namespace rx 52 { 53 // VK_EXT_debug_utils 54 extern PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; 55 extern PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; 56 extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; 57 extern PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; 58 extern PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; 59 extern PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; 60 61 // VK_EXT_debug_report 62 extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 63 extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 64 65 // VK_KHR_get_physical_device_properties2 66 extern PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; 67 extern PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; 68 extern PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; 69 70 // VK_KHR_external_semaphore_fd 71 extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; 72 73 // VK_EXT_external_memory_host 74 extern PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; 75 76 // VK_EXT_host_query_reset 77 extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; 78 79 // VK_EXT_transform_feedback 80 extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; 81 extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; 82 extern PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; 83 extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; 84 extern PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; 85 extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; 86 87 // VK_KHR_get_memory_requirements2 88 extern PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; 89 extern PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; 90 91 // VK_KHR_bind_memory2 92 extern PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; 93 extern PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; 94 95 // VK_KHR_external_fence_capabilities 96 extern PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR 97 vkGetPhysicalDeviceExternalFencePropertiesKHR; 98 99 // VK_KHR_external_fence_fd 100 extern PFN_vkGetFenceFdKHR vkGetFenceFdKHR; 101 extern PFN_vkImportFenceFdKHR vkImportFenceFdKHR; 102 103 // VK_KHR_external_semaphore_capabilities 104 extern PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR 105 vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; 106 107 // VK_KHR_sampler_ycbcr_conversion 108 extern PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; 109 extern PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; 110 111 // VK_KHR_create_renderpass2 112 extern PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; 113 114 # if defined(ANGLE_PLATFORM_FUCHSIA) 115 // VK_FUCHSIA_imagepipe_surface 116 extern PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; 117 # endif 118 119 # if defined(ANGLE_PLATFORM_ANDROID) 120 extern PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; 121 extern PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; 122 # endif 123 124 # if defined(ANGLE_PLATFORM_GGP) 125 extern PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP; 126 # endif // defined(ANGLE_PLATFORM_GGP) 127 128 // VK_KHR_shared_presentable_image 129 extern PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; 130 131 // VK_EXT_extended_dynamic_state 132 extern PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; 133 extern PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; 134 extern PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; 135 extern PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; 136 extern PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; 137 extern PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; 138 extern PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; 139 extern PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; 140 extern PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; 141 extern PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; 142 extern PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; 143 extern PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; 144 145 // VK_EXT_extended_dynamic_state2 146 extern PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; 147 extern PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; 148 extern PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; 149 extern PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; 150 extern PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; 151 152 // VK_KHR_fragment_shading_rate 153 extern PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; 154 extern PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; 155 156 // VK_GOOGLE_display_timing 157 extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 158 159 } // namespace rx 160 161 #endif // ANGLE_SHARED_LIBVULKAN 162 163 #endif // LIBANGLE_RENDERER_VULKAN_VK_HEADERS_H_ 164