blob: c16367d54753f245721734f0880e2eb9d7c93037 [file] [log] [blame]
Chia-I Wu30c78292014-08-04 10:08:08 +08001/*
2 * XGL
3 *
4 * Copyright (C) 2014 LunarG, Inc.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included
14 * in all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
23 */
24
25#include "icd.h"
Chia-I Wu09142132014-08-11 15:42:55 +080026#include "cmd.h"
Chia-I Wua207aba2014-08-05 15:13:37 +080027#include "dev.h"
Chia-I Wu75577d92014-08-11 10:54:33 +080028#include "dset.h"
Chia-I Wu9737a102014-08-07 07:59:51 +080029#include "event.h"
Chia-I Wubdf4c562014-08-07 06:36:33 +080030#include "fence.h"
Chia-I Wuac6ba132014-08-07 14:21:43 +080031#include "format.h"
Chia-I Wufeb441f2014-08-08 21:27:38 +080032#include "img.h"
Chia-I Wubec90a02014-08-06 12:33:03 +080033#include "gpu.h"
Chia-I Wuf9911eb2014-08-06 13:50:31 +080034#include "mem.h"
Chia-I Wu53fc6aa2014-08-06 14:22:51 +080035#include "obj.h"
Chia-I Wuf667a6a2014-08-07 14:15:01 +080036#include "query.h"
Chia-I Wue09b5362014-08-07 09:25:14 +080037#include "queue.h"
Chia-I Wu28b89962014-08-18 14:40:49 +080038#include "sampler.h"
Chia-I Wua5714e82014-08-11 15:33:42 +080039#include "state.h"
Chia-I Wu5a323262014-08-11 10:31:53 +080040#include "view.h"
Chia-I Wude2bb862014-08-19 14:32:47 +080041#include "dispatch.h"
Chia-I Wu30c78292014-08-04 10:08:08 +080042
Chia-I Wu30c78292014-08-04 10:08:08 +080043static XGL_RESULT XGLAPI intelCreateShader(
44 XGL_DEVICE device,
45 const XGL_SHADER_CREATE_INFO* pCreateInfo,
46 XGL_SHADER* pShader)
47{
48 return XGL_ERROR_UNAVAILABLE;
49}
50
51static XGL_RESULT XGLAPI intelCreateGraphicsPipeline(
52 XGL_DEVICE device,
53 const XGL_GRAPHICS_PIPELINE_CREATE_INFO* pCreateInfo,
54 XGL_PIPELINE* pPipeline)
55{
56 return XGL_ERROR_UNAVAILABLE;
57}
58
59static XGL_RESULT XGLAPI intelCreateComputePipeline(
60 XGL_DEVICE device,
61 const XGL_COMPUTE_PIPELINE_CREATE_INFO* pCreateInfo,
62 XGL_PIPELINE* pPipeline)
63{
64 return XGL_ERROR_UNAVAILABLE;
65}
66
67static XGL_RESULT XGLAPI intelStorePipeline(
68 XGL_PIPELINE pipeline,
69 XGL_SIZE* pDataSize,
70 XGL_VOID* pData)
71{
72 return XGL_ERROR_UNAVAILABLE;
73}
74
75static XGL_RESULT XGLAPI intelLoadPipeline(
76 XGL_DEVICE device,
77 XGL_SIZE dataSize,
78 const XGL_VOID* pData,
79 XGL_PIPELINE* pPipeline)
80{
81 return XGL_ERROR_UNAVAILABLE;
82}
83
84static XGL_RESULT XGLAPI intelCreatePipelineDelta(
85 XGL_DEVICE device,
86 XGL_PIPELINE p1,
87 XGL_PIPELINE p2,
88 XGL_PIPELINE_DELTA* delta)
89{
90 return XGL_ERROR_UNAVAILABLE;
91}
92
Chia-I Wu30c78292014-08-04 10:08:08 +080093const struct icd_dispatch_table intel_normal_dispatch_table = {
94 .InitAndEnumerateGpus = xglInitAndEnumerateGpus,
95 .GetGpuInfo = intelGetGpuInfo,
96 .CreateDevice = intelCreateDevice,
97 .DestroyDevice = intelDestroyDevice,
98 .GetExtensionSupport = intelGetExtensionSupport,
99 .GetDeviceQueue = intelGetDeviceQueue,
100 .QueueSubmit = intelQueueSubmit,
101 .QueueSetGlobalMemReferences = intelQueueSetGlobalMemReferences,
102 .QueueWaitIdle = intelQueueWaitIdle,
103 .DeviceWaitIdle = intelDeviceWaitIdle,
104 .GetMemoryHeapCount = intelGetMemoryHeapCount,
105 .GetMemoryHeapInfo = intelGetMemoryHeapInfo,
106 .AllocMemory = intelAllocMemory,
107 .FreeMemory = intelFreeMemory,
108 .SetMemoryPriority = intelSetMemoryPriority,
109 .MapMemory = intelMapMemory,
110 .UnmapMemory = intelUnmapMemory,
111 .PinSystemMemory = intelPinSystemMemory,
112 .RemapVirtualMemoryPages = intelRemapVirtualMemoryPages,
113 .GetMultiGpuCompatibility = intelGetMultiGpuCompatibility,
114 .OpenSharedMemory = intelOpenSharedMemory,
115 .OpenSharedQueueSemaphore = intelOpenSharedQueueSemaphore,
116 .OpenPeerMemory = intelOpenPeerMemory,
117 .OpenPeerImage = intelOpenPeerImage,
118 .DestroyObject = intelDestroyObject,
119 .GetObjectInfo = intelGetObjectInfo,
120 .BindObjectMemory = intelBindObjectMemory,
121 .CreateFence = intelCreateFence,
122 .GetFenceStatus = intelGetFenceStatus,
123 .WaitForFences = intelWaitForFences,
124 .CreateQueueSemaphore = intelCreateQueueSemaphore,
125 .SignalQueueSemaphore = intelSignalQueueSemaphore,
126 .WaitQueueSemaphore = intelWaitQueueSemaphore,
127 .CreateEvent = intelCreateEvent,
128 .GetEventStatus = intelGetEventStatus,
129 .SetEvent = intelSetEvent,
130 .ResetEvent = intelResetEvent,
131 .CreateQueryPool = intelCreateQueryPool,
132 .GetQueryPoolResults = intelGetQueryPoolResults,
133 .GetFormatInfo = intelGetFormatInfo,
134 .CreateImage = intelCreateImage,
135 .GetImageSubresourceInfo = intelGetImageSubresourceInfo,
136 .CreateImageView = intelCreateImageView,
137 .CreateColorAttachmentView = intelCreateColorAttachmentView,
138 .CreateDepthStencilView = intelCreateDepthStencilView,
139 .CreateShader = intelCreateShader,
140 .CreateGraphicsPipeline = intelCreateGraphicsPipeline,
141 .CreateComputePipeline = intelCreateComputePipeline,
142 .StorePipeline = intelStorePipeline,
143 .LoadPipeline = intelLoadPipeline,
144 .CreatePipelineDelta = intelCreatePipelineDelta,
145 .CreateSampler = intelCreateSampler,
146 .CreateDescriptorSet = intelCreateDescriptorSet,
147 .BeginDescriptorSetUpdate = intelBeginDescriptorSetUpdate,
148 .EndDescriptorSetUpdate = intelEndDescriptorSetUpdate,
149 .AttachSamplerDescriptors = intelAttachSamplerDescriptors,
150 .AttachImageViewDescriptors = intelAttachImageViewDescriptors,
151 .AttachMemoryViewDescriptors = intelAttachMemoryViewDescriptors,
152 .AttachNestedDescriptors = intelAttachNestedDescriptors,
153 .ClearDescriptorSetSlots = intelClearDescriptorSetSlots,
154 .CreateViewportState = intelCreateViewportState,
155 .CreateRasterState = intelCreateRasterState,
156 .CreateMsaaState = intelCreateMsaaState,
157 .CreateColorBlendState = intelCreateColorBlendState,
158 .CreateDepthStencilState = intelCreateDepthStencilState,
159 .CreateCommandBuffer = intelCreateCommandBuffer,
160 .BeginCommandBuffer = intelBeginCommandBuffer,
161 .EndCommandBuffer = intelEndCommandBuffer,
162 .ResetCommandBuffer = intelResetCommandBuffer,
163 .CmdBindPipeline = intelCmdBindPipeline,
164 .CmdBindPipelineDelta = intelCmdBindPipelineDelta,
165 .CmdBindStateObject = intelCmdBindStateObject,
166 .CmdBindDescriptorSet = intelCmdBindDescriptorSet,
167 .CmdBindDynamicMemoryView = intelCmdBindDynamicMemoryView,
168 .CmdBindIndexData = intelCmdBindIndexData,
169 .CmdBindAttachments = intelCmdBindAttachments,
170 .CmdPrepareMemoryRegions = intelCmdPrepareMemoryRegions,
171 .CmdPrepareImages = intelCmdPrepareImages,
172 .CmdDraw = intelCmdDraw,
173 .CmdDrawIndexed = intelCmdDrawIndexed,
174 .CmdDrawIndirect = intelCmdDrawIndirect,
175 .CmdDrawIndexedIndirect = intelCmdDrawIndexedIndirect,
176 .CmdDispatch = intelCmdDispatch,
177 .CmdDispatchIndirect = intelCmdDispatchIndirect,
178 .CmdCopyMemory = intelCmdCopyMemory,
179 .CmdCopyImage = intelCmdCopyImage,
180 .CmdCopyMemoryToImage = intelCmdCopyMemoryToImage,
181 .CmdCopyImageToMemory = intelCmdCopyImageToMemory,
182 .CmdCloneImageData = intelCmdCloneImageData,
183 .CmdUpdateMemory = intelCmdUpdateMemory,
184 .CmdFillMemory = intelCmdFillMemory,
185 .CmdClearColorImage = intelCmdClearColorImage,
186 .CmdClearColorImageRaw = intelCmdClearColorImageRaw,
187 .CmdClearDepthStencil = intelCmdClearDepthStencil,
188 .CmdResolveImage = intelCmdResolveImage,
189 .CmdSetEvent = intelCmdSetEvent,
190 .CmdResetEvent = intelCmdResetEvent,
191 .CmdMemoryAtomic = intelCmdMemoryAtomic,
192 .CmdBeginQuery = intelCmdBeginQuery,
193 .CmdEndQuery = intelCmdEndQuery,
194 .CmdResetQueryPool = intelCmdResetQueryPool,
195 .CmdWriteTimestamp = intelCmdWriteTimestamp,
196 .CmdInitAtomicCounters = intelCmdInitAtomicCounters,
197 .CmdLoadAtomicCounters = intelCmdLoadAtomicCounters,
198 .CmdSaveAtomicCounters = intelCmdSaveAtomicCounters,
199 .DbgSetValidationLevel = intelDbgSetValidationLevel,
200 .DbgRegisterMsgCallback = xglDbgRegisterMsgCallback,
201 .DbgUnregisterMsgCallback = xglDbgUnregisterMsgCallback,
202 .DbgSetMessageFilter = intelDbgSetMessageFilter,
203 .DbgSetObjectTag = intelDbgSetObjectTag,
204 .DbgSetGlobalOption = xglDbgSetGlobalOption,
205 .DbgSetDeviceOption = intelDbgSetDeviceOption,
206 .CmdDbgMarkerBegin = intelCmdDbgMarkerBegin,
207 .CmdDbgMarkerEnd = intelCmdDbgMarkerEnd,
208};
209
210const struct icd_dispatch_table intel_debug_dispatch_table = {
211 .InitAndEnumerateGpus = xglInitAndEnumerateGpus,
212 .GetGpuInfo = intelGetGpuInfo,
213 .CreateDevice = intelCreateDevice,
214 .DestroyDevice = intelDestroyDevice,
215 .GetExtensionSupport = intelGetExtensionSupport,
216 .GetDeviceQueue = intelGetDeviceQueue,
217 .QueueSubmit = intelQueueSubmit,
218 .QueueSetGlobalMemReferences = intelQueueSetGlobalMemReferences,
219 .QueueWaitIdle = intelQueueWaitIdle,
220 .DeviceWaitIdle = intelDeviceWaitIdle,
221 .GetMemoryHeapCount = intelGetMemoryHeapCount,
222 .GetMemoryHeapInfo = intelGetMemoryHeapInfo,
223 .AllocMemory = intelAllocMemory,
224 .FreeMemory = intelFreeMemory,
225 .SetMemoryPriority = intelSetMemoryPriority,
226 .MapMemory = intelMapMemory,
227 .UnmapMemory = intelUnmapMemory,
228 .PinSystemMemory = intelPinSystemMemory,
229 .RemapVirtualMemoryPages = intelRemapVirtualMemoryPages,
230 .GetMultiGpuCompatibility = intelGetMultiGpuCompatibility,
231 .OpenSharedMemory = intelOpenSharedMemory,
232 .OpenSharedQueueSemaphore = intelOpenSharedQueueSemaphore,
233 .OpenPeerMemory = intelOpenPeerMemory,
234 .OpenPeerImage = intelOpenPeerImage,
235 .DestroyObject = intelDestroyObject,
236 .GetObjectInfo = intelGetObjectInfo,
237 .BindObjectMemory = intelBindObjectMemory,
238 .CreateFence = intelCreateFence,
239 .GetFenceStatus = intelGetFenceStatus,
240 .WaitForFences = intelWaitForFences,
241 .CreateQueueSemaphore = intelCreateQueueSemaphore,
242 .SignalQueueSemaphore = intelSignalQueueSemaphore,
243 .WaitQueueSemaphore = intelWaitQueueSemaphore,
244 .CreateEvent = intelCreateEvent,
245 .GetEventStatus = intelGetEventStatus,
246 .SetEvent = intelSetEvent,
247 .ResetEvent = intelResetEvent,
248 .CreateQueryPool = intelCreateQueryPool,
249 .GetQueryPoolResults = intelGetQueryPoolResults,
250 .GetFormatInfo = intelGetFormatInfo,
251 .CreateImage = intelCreateImage,
252 .GetImageSubresourceInfo = intelGetImageSubresourceInfo,
253 .CreateImageView = intelCreateImageView,
254 .CreateColorAttachmentView = intelCreateColorAttachmentView,
255 .CreateDepthStencilView = intelCreateDepthStencilView,
256 .CreateShader = intelCreateShader,
257 .CreateGraphicsPipeline = intelCreateGraphicsPipeline,
258 .CreateComputePipeline = intelCreateComputePipeline,
259 .StorePipeline = intelStorePipeline,
260 .LoadPipeline = intelLoadPipeline,
261 .CreatePipelineDelta = intelCreatePipelineDelta,
262 .CreateSampler = intelCreateSampler,
263 .CreateDescriptorSet = intelCreateDescriptorSet,
264 .BeginDescriptorSetUpdate = intelBeginDescriptorSetUpdate,
265 .EndDescriptorSetUpdate = intelEndDescriptorSetUpdate,
266 .AttachSamplerDescriptors = intelAttachSamplerDescriptors,
267 .AttachImageViewDescriptors = intelAttachImageViewDescriptors,
268 .AttachMemoryViewDescriptors = intelAttachMemoryViewDescriptors,
269 .AttachNestedDescriptors = intelAttachNestedDescriptors,
270 .ClearDescriptorSetSlots = intelClearDescriptorSetSlots,
271 .CreateViewportState = intelCreateViewportState,
272 .CreateRasterState = intelCreateRasterState,
273 .CreateMsaaState = intelCreateMsaaState,
274 .CreateColorBlendState = intelCreateColorBlendState,
275 .CreateDepthStencilState = intelCreateDepthStencilState,
276 .CreateCommandBuffer = intelCreateCommandBuffer,
277 .BeginCommandBuffer = intelBeginCommandBuffer,
278 .EndCommandBuffer = intelEndCommandBuffer,
279 .ResetCommandBuffer = intelResetCommandBuffer,
280 .CmdBindPipeline = intelCmdBindPipeline,
281 .CmdBindPipelineDelta = intelCmdBindPipelineDelta,
282 .CmdBindStateObject = intelCmdBindStateObject,
283 .CmdBindDescriptorSet = intelCmdBindDescriptorSet,
284 .CmdBindDynamicMemoryView = intelCmdBindDynamicMemoryView,
285 .CmdBindIndexData = intelCmdBindIndexData,
286 .CmdBindAttachments = intelCmdBindAttachments,
287 .CmdPrepareMemoryRegions = intelCmdPrepareMemoryRegions,
288 .CmdPrepareImages = intelCmdPrepareImages,
289 .CmdDraw = intelCmdDraw,
290 .CmdDrawIndexed = intelCmdDrawIndexed,
291 .CmdDrawIndirect = intelCmdDrawIndirect,
292 .CmdDrawIndexedIndirect = intelCmdDrawIndexedIndirect,
293 .CmdDispatch = intelCmdDispatch,
294 .CmdDispatchIndirect = intelCmdDispatchIndirect,
295 .CmdCopyMemory = intelCmdCopyMemory,
296 .CmdCopyImage = intelCmdCopyImage,
297 .CmdCopyMemoryToImage = intelCmdCopyMemoryToImage,
298 .CmdCopyImageToMemory = intelCmdCopyImageToMemory,
299 .CmdCloneImageData = intelCmdCloneImageData,
300 .CmdUpdateMemory = intelCmdUpdateMemory,
301 .CmdFillMemory = intelCmdFillMemory,
302 .CmdClearColorImage = intelCmdClearColorImage,
303 .CmdClearColorImageRaw = intelCmdClearColorImageRaw,
304 .CmdClearDepthStencil = intelCmdClearDepthStencil,
305 .CmdResolveImage = intelCmdResolveImage,
306 .CmdSetEvent = intelCmdSetEvent,
307 .CmdResetEvent = intelCmdResetEvent,
308 .CmdMemoryAtomic = intelCmdMemoryAtomic,
309 .CmdBeginQuery = intelCmdBeginQuery,
310 .CmdEndQuery = intelCmdEndQuery,
311 .CmdResetQueryPool = intelCmdResetQueryPool,
312 .CmdWriteTimestamp = intelCmdWriteTimestamp,
313 .CmdInitAtomicCounters = intelCmdInitAtomicCounters,
314 .CmdLoadAtomicCounters = intelCmdLoadAtomicCounters,
315 .CmdSaveAtomicCounters = intelCmdSaveAtomicCounters,
316 .DbgSetValidationLevel = intelDbgSetValidationLevel,
317 .DbgRegisterMsgCallback = xglDbgRegisterMsgCallback,
318 .DbgUnregisterMsgCallback = xglDbgUnregisterMsgCallback,
319 .DbgSetMessageFilter = intelDbgSetMessageFilter,
320 .DbgSetObjectTag = intelDbgSetObjectTag,
321 .DbgSetGlobalOption = xglDbgSetGlobalOption,
322 .DbgSetDeviceOption = intelDbgSetDeviceOption,
323 .CmdDbgMarkerBegin = intelCmdDbgMarkerBegin,
324 .CmdDbgMarkerEnd = intelCmdDbgMarkerEnd,
325};