• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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