• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _VKREFUTIL_HPP
2 #define _VKREFUTIL_HPP
3 /*-------------------------------------------------------------------------
4  * Vulkan CTS Framework
5  * --------------------
6  *
7  * Copyright (c) 2015 Google Inc.
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  *//*!
22  * \file
23  * \brief Vulkan object reference holder utilities.
24  *//*--------------------------------------------------------------------*/
25 
26 #include "vkDefs.hpp"
27 #include "vkRef.hpp"
28 
29 namespace vk
30 {
31 
32 #include "vkRefUtil.inl"
33 
34 Move<VkPipeline>		createGraphicsPipeline	(const DeviceInterface&					vk,
35 												 VkDevice								device,
36 												 VkPipelineCache						pipelineCache,
37 												 const VkGraphicsPipelineCreateInfo*	pCreateInfo,
38 												 const VkAllocationCallbacks*			pAllocator = DE_NULL);
39 Move<VkPipeline>		createComputePipeline	(const DeviceInterface&					vk,
40 												 VkDevice								device,
41 												 VkPipelineCache						pipelineCache,
42 												 const VkComputePipelineCreateInfo*		pCreateInfo,
43 												 const VkAllocationCallbacks*			pAllocator = DE_NULL);
44 #ifndef CTS_USES_VULKANSC
45 Move<VkPipeline>		createRayTracingPipelineNV(const DeviceInterface&					vk,
46 												 VkDevice								device,
47 												 VkPipelineCache						pipelineCache,
48 												 const VkRayTracingPipelineCreateInfoNV*	pCreateInfo,
49 												 const VkAllocationCallbacks*			pAllocator = DE_NULL);
50 Move<VkPipeline>		createRayTracingPipelineKHR	(const DeviceInterface&					vk,
51 												 VkDevice									device,
52 												 VkDeferredOperationKHR						deferredOperation,
53 												 VkPipelineCache							pipelineCache,
54 												 const VkRayTracingPipelineCreateInfoKHR*	pCreateInfo,
55 												 const VkAllocationCallbacks*				pAllocator = DE_NULL);
56 #endif // CTS_USES_VULKANSC
57 
58 Move<VkCommandBuffer>	allocateCommandBuffer	(const DeviceInterface& vk, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo);
59 void allocateCommandBuffers	(const DeviceInterface& vk, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, Move<VkCommandBuffer> *pCommandBuffers);
60 Move<VkDescriptorSet>	allocateDescriptorSet	(const DeviceInterface& vk, VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo);
61 
62 Move<VkSemaphore>		createSemaphore			(const DeviceInterface&			vk,
63 												 VkDevice						device,
64 												 VkSemaphoreCreateFlags			flags		= (VkSemaphoreCreateFlags)0,
65 												 const VkAllocationCallbacks*	pAllocator	= DE_NULL);
66 
67 Move<VkSemaphore>		createSemaphoreType		(const DeviceInterface&			vk,
68 												 VkDevice						device,
69 												 VkSemaphoreType				type,
70 												 VkSemaphoreCreateFlags			flags			= (VkSemaphoreCreateFlags)0,
71 												 const deUint64					initialValue	= 0,
72 												 const VkAllocationCallbacks*	pAllocator		= DE_NULL);
73 
74 Move<VkFence>			createFence				(const DeviceInterface&			vk,
75 												 VkDevice						device,
76 												 VkFenceCreateFlags				flags		= (VkFenceCreateFlags)0,
77 												 const VkAllocationCallbacks*	pAllocator	= DE_NULL);
78 
79 Move<VkCommandPool>		createCommandPool		(const DeviceInterface&			vk,
80 												 VkDevice						device,
81 												 VkCommandPoolCreateFlags		flags,
82 												 deUint32						queueFamilyIndex,
83 												 const VkAllocationCallbacks*	pAllocator	= DE_NULL);
84 
85 Move<VkCommandBuffer>	allocateCommandBuffer	(const DeviceInterface&			vk,
86 												 VkDevice						device,
87 												 VkCommandPool					commandPool,
88 												 VkCommandBufferLevel			level);
89 
90 Move<VkEvent>			createEvent				(const DeviceInterface&			vk,
91 												 VkDevice						device,
92 												 VkEventCreateFlags				flags = (VkEventCreateFlags)0u,
93 												 const VkAllocationCallbacks*	pAllocateInfo = DE_NULL);
94 
95 #ifdef CTS_USES_VULKANSC
96 Move<VkShaderModule>	createShaderModule		(const DeviceInterface&			vk,
97 												 VkDevice						device,
98 												 const VkShaderModuleCreateInfo*	pCreateInfo,
99 												 const VkAllocationCallbacks*	pAllocator = DE_NULL);
100 #endif // CTS_USES_VULKANSC
101 
102 } // vk
103 
104 #endif // _VKREFUTIL_HPP
105