Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Side by Side Diff: include/gpu/vk/GrVkInterface.h

Issue 1718693002: Add vulkan files into skia repo. (Closed) Base URL: https://skia.googlesource.com/skia.git@merge
Patch Set: fix path Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gyp/tools.gyp ('k') | src/gpu/vk/GrVkBuffer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2015 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #ifndef GrRadInterface_DEFINED
9 #define GrRadInterface_DEFINED
10
11 #include "SkRefCnt.h"
12
13 #include "vulkan/vulkan.h"
14
15 ////////////////////////////////////////////////////////////////////////////////
16
17 /**
18 * The default interface is returned by GrVkDefaultInterface. This function's
19 * implementation is platform-specific.
20 */
21
22 struct GrVkInterface;
23
24 /**
25 * Creates a GrVkInterface.
26 */
27 const GrVkInterface* GrVkCreateInterface(VkInstance instance);
28
29
30 /**
31 * GrContext uses the following interface to make all calls into Vulkan. When a
32 * GrContext is created it is given a GrVkInterface. All functions that should b e
33 * available based on the Vulkan's version must be non-NULL or GrContext creatio n
34 * will fail. This can be tested with the validate() method.
35 */
36 struct SK_API GrVkInterface : public SkRefCnt {
37 private:
38 // simple wrapper class that exists only to initialize a pointer to NULL
39 template <typename FNPTR_TYPE> class VkPtr {
40 public:
41 VkPtr() : fPtr(NULL) {}
42 VkPtr operator=(FNPTR_TYPE ptr) { fPtr = ptr; return *this; }
43 operator FNPTR_TYPE() const { return fPtr; }
44 private:
45 FNPTR_TYPE fPtr;
46 };
47
48 typedef SkRefCnt INHERITED;
49
50 public:
51 GrVkInterface();
52
53 // Validates that the GrVkInterface supports its advertised standard. This m eans the necessary
54 // function pointers have been initialized for Vulkan version.
55 bool validate() const;
56
57 /**
58 * The function pointers are in a struct so that we can have a compiler gene rated assignment
59 * operator.
60 */
61 struct Functions {
62 VkPtr<PFN_vkCreateInstance> fCreateInstance;
63 VkPtr<PFN_vkDestroyInstance> fDestroyInstance;
64 VkPtr<PFN_vkEnumeratePhysicalDevices> fEnumeratePhysicalDevices;
65 VkPtr<PFN_vkGetPhysicalDeviceFeatures> fGetPhysicalDeviceFeatures;
66 VkPtr<PFN_vkGetPhysicalDeviceFormatProperties> fGetPhysicalDeviceFormatP roperties;
67 VkPtr<PFN_vkGetPhysicalDeviceImageFormatProperties> fGetPhysicalDeviceIm ageFormatProperties;
68 VkPtr<PFN_vkGetPhysicalDeviceProperties> fGetPhysicalDeviceProperties;
69 VkPtr<PFN_vkGetPhysicalDeviceQueueFamilyProperties> fGetPhysicalDeviceQu eueFamilyProperties;
70 VkPtr<PFN_vkGetPhysicalDeviceMemoryProperties> fGetPhysicalDeviceMemoryP roperties;
71 VkPtr<PFN_vkCreateDevice> fCreateDevice;
72 VkPtr<PFN_vkDestroyDevice> fDestroyDevice;
73 VkPtr<PFN_vkEnumerateInstanceExtensionProperties> fEnumerateInstanceExte nsionProperties;
74 VkPtr<PFN_vkEnumerateDeviceExtensionProperties> fEnumerateDeviceExtensio nProperties;
75 VkPtr<PFN_vkEnumerateInstanceLayerProperties> fEnumerateInstanceLayerPro perties;
76 VkPtr<PFN_vkEnumerateDeviceLayerProperties> fEnumerateDeviceLayerPropert ies;
77 VkPtr<PFN_vkGetDeviceQueue> fGetDeviceQueue;
78 VkPtr<PFN_vkQueueSubmit> fQueueSubmit;
79 VkPtr<PFN_vkQueueWaitIdle> fQueueWaitIdle;
80 VkPtr<PFN_vkDeviceWaitIdle> fDeviceWaitIdle;
81 VkPtr<PFN_vkAllocateMemory> fAllocateMemory;
82 VkPtr<PFN_vkFreeMemory> fFreeMemory;
83 VkPtr<PFN_vkMapMemory> fMapMemory;
84 VkPtr<PFN_vkUnmapMemory> fUnmapMemory;
85 VkPtr<PFN_vkFlushMappedMemoryRanges> fFlushMappedMemoryRanges;
86 VkPtr<PFN_vkInvalidateMappedMemoryRanges> fInvalidateMappedMemoryRanges;
87 VkPtr<PFN_vkGetDeviceMemoryCommitment> fGetDeviceMemoryCommitment;
88 VkPtr<PFN_vkBindBufferMemory> fBindBufferMemory;
89 VkPtr<PFN_vkBindImageMemory> fBindImageMemory;
90 VkPtr<PFN_vkGetBufferMemoryRequirements> fGetBufferMemoryRequirements;
91 VkPtr<PFN_vkGetImageMemoryRequirements> fGetImageMemoryRequirements;
92 VkPtr<PFN_vkGetImageSparseMemoryRequirements> fGetImageSparseMemoryRequi rements;
93 VkPtr<PFN_vkGetPhysicalDeviceSparseImageFormatProperties> fGetPhysicalDe viceSparseImageFormatProperties;
94 VkPtr<PFN_vkQueueBindSparse> fQueueBindSparse;
95 VkPtr<PFN_vkCreateFence> fCreateFence;
96 VkPtr<PFN_vkDestroyFence> fDestroyFence;
97 VkPtr<PFN_vkResetFences> fResetFences;
98 VkPtr<PFN_vkGetFenceStatus> fGetFenceStatus;
99 VkPtr<PFN_vkWaitForFences> fWaitForFences;
100 VkPtr<PFN_vkCreateSemaphore> fCreateSemaphore;
101 VkPtr<PFN_vkDestroySemaphore> fDestroySemaphore;
102 VkPtr<PFN_vkCreateEvent> fCreateEvent;
103 VkPtr<PFN_vkDestroyEvent> fDestroyEvent;
104 VkPtr<PFN_vkGetEventStatus> fGetEventStatus;
105 VkPtr<PFN_vkSetEvent> fSetEvent;
106 VkPtr<PFN_vkResetEvent> fResetEvent;
107 VkPtr<PFN_vkCreateQueryPool> fCreateQueryPool;
108 VkPtr<PFN_vkDestroyQueryPool> fDestroyQueryPool;
109 VkPtr<PFN_vkGetQueryPoolResults> fGetQueryPoolResults;
110 VkPtr<PFN_vkCreateBuffer> fCreateBuffer;
111 VkPtr<PFN_vkDestroyBuffer> fDestroyBuffer;
112 VkPtr<PFN_vkCreateBufferView> fCreateBufferView;
113 VkPtr<PFN_vkDestroyBufferView> fDestroyBufferView;
114 VkPtr<PFN_vkCreateImage> fCreateImage;
115 VkPtr<PFN_vkDestroyImage> fDestroyImage;
116 VkPtr<PFN_vkGetImageSubresourceLayout> fGetImageSubresourceLayout;
117 VkPtr<PFN_vkCreateImageView> fCreateImageView;
118 VkPtr<PFN_vkDestroyImageView> fDestroyImageView;
119 VkPtr<PFN_vkCreateShaderModule> fCreateShaderModule;
120 VkPtr<PFN_vkDestroyShaderModule> fDestroyShaderModule;
121 VkPtr<PFN_vkCreatePipelineCache> fCreatePipelineCache;
122 VkPtr<PFN_vkDestroyPipelineCache> fDestroyPipelineCache;
123 VkPtr<PFN_vkGetPipelineCacheData> fGetPipelineCacheData;
124 VkPtr<PFN_vkMergePipelineCaches> fMergePipelineCaches;
125 VkPtr<PFN_vkCreateGraphicsPipelines> fCreateGraphicsPipelines;
126 VkPtr<PFN_vkCreateComputePipelines> fCreateComputePipelines;
127 VkPtr<PFN_vkDestroyPipeline> fDestroyPipeline;
128 VkPtr<PFN_vkCreatePipelineLayout> fCreatePipelineLayout;
129 VkPtr<PFN_vkDestroyPipelineLayout> fDestroyPipelineLayout;
130 VkPtr<PFN_vkCreateSampler> fCreateSampler;
131 VkPtr<PFN_vkDestroySampler> fDestroySampler;
132 VkPtr<PFN_vkCreateDescriptorSetLayout> fCreateDescriptorSetLayout;
133 VkPtr<PFN_vkDestroyDescriptorSetLayout> fDestroyDescriptorSetLayout;
134 VkPtr<PFN_vkCreateDescriptorPool> fCreateDescriptorPool;
135 VkPtr<PFN_vkDestroyDescriptorPool> fDestroyDescriptorPool;
136 VkPtr<PFN_vkResetDescriptorPool> fResetDescriptorPool;
137 VkPtr<PFN_vkAllocateDescriptorSets> fAllocateDescriptorSets;
138 VkPtr<PFN_vkFreeDescriptorSets> fFreeDescriptorSets;
139 VkPtr<PFN_vkUpdateDescriptorSets> fUpdateDescriptorSets;
140 VkPtr<PFN_vkCreateFramebuffer> fCreateFramebuffer;
141 VkPtr<PFN_vkDestroyFramebuffer> fDestroyFramebuffer;
142 VkPtr<PFN_vkCreateRenderPass> fCreateRenderPass;
143 VkPtr<PFN_vkDestroyRenderPass> fDestroyRenderPass;
144 VkPtr<PFN_vkGetRenderAreaGranularity> fGetRenderAreaGranularity;
145 VkPtr<PFN_vkCreateCommandPool> fCreateCommandPool;
146 VkPtr<PFN_vkDestroyCommandPool> fDestroyCommandPool;
147 VkPtr<PFN_vkResetCommandPool> fResetCommandPool;
148 VkPtr<PFN_vkAllocateCommandBuffers> fAllocateCommandBuffers;
149 VkPtr<PFN_vkFreeCommandBuffers> fFreeCommandBuffers;
150 VkPtr<PFN_vkBeginCommandBuffer> fBeginCommandBuffer;
151 VkPtr<PFN_vkEndCommandBuffer> fEndCommandBuffer;
152 VkPtr<PFN_vkResetCommandBuffer> fResetCommandBuffer;
153 VkPtr<PFN_vkCmdBindPipeline> fCmdBindPipeline;
154 VkPtr<PFN_vkCmdSetViewport> fCmdSetViewport;
155 VkPtr<PFN_vkCmdSetScissor> fCmdSetScissor;
156 VkPtr<PFN_vkCmdSetLineWidth> fCmdSetLineWidth;
157 VkPtr<PFN_vkCmdSetDepthBias> fCmdSetDepthBias;
158 VkPtr<PFN_vkCmdSetBlendConstants> fCmdSetBlendConstants;
159 VkPtr<PFN_vkCmdSetDepthBounds> fCmdSetDepthBounds;
160 VkPtr<PFN_vkCmdSetStencilCompareMask> fCmdSetStencilCompareMask;
161 VkPtr<PFN_vkCmdSetStencilWriteMask> fCmdSetStencilWriteMask;
162 VkPtr<PFN_vkCmdSetStencilReference> fCmdSetStencilReference;
163 VkPtr<PFN_vkCmdBindDescriptorSets> fCmdBindDescriptorSets;
164 VkPtr<PFN_vkCmdBindIndexBuffer> fCmdBindIndexBuffer;
165 VkPtr<PFN_vkCmdBindVertexBuffers> fCmdBindVertexBuffers;
166 VkPtr<PFN_vkCmdDraw> fCmdDraw;
167 VkPtr<PFN_vkCmdDrawIndexed> fCmdDrawIndexed;
168 VkPtr<PFN_vkCmdDrawIndirect> fCmdDrawIndirect;
169 VkPtr<PFN_vkCmdDrawIndexedIndirect> fCmdDrawIndexedIndirect;
170 VkPtr<PFN_vkCmdDispatch> fCmdDispatch;
171 VkPtr<PFN_vkCmdDispatchIndirect> fCmdDispatchIndirect;
172 VkPtr<PFN_vkCmdCopyBuffer> fCmdCopyBuffer;
173 VkPtr<PFN_vkCmdCopyImage> fCmdCopyImage;
174 VkPtr<PFN_vkCmdBlitImage> fCmdBlitImage;
175 VkPtr<PFN_vkCmdCopyBufferToImage> fCmdCopyBufferToImage;
176 VkPtr<PFN_vkCmdCopyImageToBuffer> fCmdCopyImageToBuffer;
177 VkPtr<PFN_vkCmdUpdateBuffer> fCmdUpdateBuffer;
178 VkPtr<PFN_vkCmdFillBuffer> fCmdFillBuffer;
179 VkPtr<PFN_vkCmdClearColorImage> fCmdClearColorImage;
180 VkPtr<PFN_vkCmdClearDepthStencilImage> fCmdClearDepthStencilImage;
181 VkPtr<PFN_vkCmdClearAttachments> fCmdClearAttachments;
182 VkPtr<PFN_vkCmdResolveImage> fCmdResolveImage;
183 VkPtr<PFN_vkCmdSetEvent> fCmdSetEvent;
184 VkPtr<PFN_vkCmdResetEvent> fCmdResetEvent;
185 VkPtr<PFN_vkCmdWaitEvents> fCmdWaitEvents;
186 VkPtr<PFN_vkCmdPipelineBarrier> fCmdPipelineBarrier;
187 VkPtr<PFN_vkCmdBeginQuery> fCmdBeginQuery;
188 VkPtr<PFN_vkCmdEndQuery> fCmdEndQuery;
189 VkPtr<PFN_vkCmdResetQueryPool> fCmdResetQueryPool;
190 VkPtr<PFN_vkCmdWriteTimestamp> fCmdWriteTimestamp;
191 VkPtr<PFN_vkCmdCopyQueryPoolResults> fCmdCopyQueryPoolResults;
192 VkPtr<PFN_vkCmdPushConstants> fCmdPushConstants;
193 VkPtr<PFN_vkCmdBeginRenderPass> fCmdBeginRenderPass;
194 VkPtr<PFN_vkCmdNextSubpass> fCmdNextSubpass;
195 VkPtr<PFN_vkCmdEndRenderPass> fCmdEndRenderPass;
196 VkPtr<PFN_vkCmdExecuteCommands> fCmdExecuteCommands;
197 VkPtr<PFN_vkDestroySurfaceKHR> fDestroySurfaceKHR;
198 VkPtr<PFN_vkGetPhysicalDeviceSurfaceSupportKHR> fGetPhysicalDeviceSurfac eSupportKHR;
199 VkPtr<PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR> fGetPhysicalDeviceS urfaceCapabilitiesKHR;
200 VkPtr<PFN_vkGetPhysicalDeviceSurfaceFormatsKHR> fGetPhysicalDeviceSurfac eFormatsKHR;
201 VkPtr<PFN_vkGetPhysicalDeviceSurfacePresentModesKHR> fGetPhysicalDeviceS urfacePresentModesKHR;
202 VkPtr<PFN_vkCreateSwapchainKHR> fCreateSwapchainKHR;
203 VkPtr<PFN_vkDestroySwapchainKHR> fDestroySwapchainKHR;
204 VkPtr<PFN_vkGetSwapchainImagesKHR> fGetSwapchainImagesKHR;
205 VkPtr<PFN_vkAcquireNextImageKHR> fAcquireNextImageKHR;
206 VkPtr<PFN_vkQueuePresentKHR> fQueuePresentKHR;
207 VkPtr<PFN_vkGetPhysicalDeviceDisplayPropertiesKHR> fGetPhysicalDeviceDis playPropertiesKHR;
208 VkPtr<PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR> fGetPhysicalDevi ceDisplayPlanePropertiesKHR;
209 VkPtr<PFN_vkGetDisplayPlaneSupportedDisplaysKHR> fGetDisplayPlaneSupport edDisplaysKHR;
210 VkPtr<PFN_vkGetDisplayModePropertiesKHR> fGetDisplayModePropertiesKHR;
211 VkPtr<PFN_vkCreateDisplayModeKHR> fCreateDisplayModeKHR;
212 VkPtr<PFN_vkGetDisplayPlaneCapabilitiesKHR> fGetDisplayPlaneCapabilities KHR;
213 VkPtr<PFN_vkCreateDisplayPlaneSurfaceKHR> fCreateDisplayPlaneSurfaceKHR;
214 VkPtr<PFN_vkCreateSharedSwapchainsKHR> fCreateSharedSwapchainsKHR;
215 } fFunctions;
216 };
217
218 #endif
OLDNEW
« no previous file with comments | « gyp/tools.gyp ('k') | src/gpu/vk/GrVkBuffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698