Lines Matching refs:vk
52 vk::VkPhysicalDevice physicalDevice = context.getPhysicalDevice();
53 const vk::InstanceInterface& vki = context.getInstanceInterface();
56 vk::VkResult result = vki.getPhysicalDeviceRefreshableObjectTypesKHR(physicalDevice, &countReported, DE_NULL);
57 if (result != vk::VK_SUCCESS)
64 std::vector<vk::VkObjectType> refreshableObjects (refreshableObjectsMaxCount);
70 std::fill(refreshableObjects.begin(), refreshableObjects.end(), vk::VK_OBJECT_TYPE_UNKNOWN);
74 if ((result != vk::VK_SUCCESS) && (result != vk::VK_INCOMPLETE))
84 if (refreshableObjects[i] == vk::VK_OBJECT_TYPE_UNKNOWN)
95 vk::VkPhysicalDevice physicalDevice = context.getPhysicalDevice();
96 const vk::InstanceInterface& vki = context.getInstanceInterface();
97 const vk::DeviceInterface& vkd = context.getDeviceInterface();
99 vk::VkResult result = vki.getPhysicalDeviceRefreshableObjectTypesKHR(physicalDevice, &countReported, DE_NULL);
100 if ((result != vk::VK_SUCCESS) || (countReported == 0))
103 std::vector<vk::VkObjectType> refreshableObjectTypes(countReported);
105 if (result != vk::VK_SUCCESS)
110 vk::VkDevice device = context.getDevice();
111 vk::VkQueue queue = context.getUniversalQueue();
112 vk::Allocator& allocator = context.getDefaultAllocator();
113 vk::Move<vk::VkCommandPool> cmdPool = createCommandPool(vkd, device, vk::VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex);
114 vk::Move<vk::VkCommandBuffer> cmdBuffer = allocateCommandBuffer(vkd, device, *cmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
115 vk::Move<vk::VkFence> fence = createFence(vkd, device);
116 vk::Move<vk::VkSemaphore> semaphore = createSemaphore(vkd, device);
117 vk::Move<vk::VkEvent> event = createEvent(vkd, device);
118 const vk::VkQueryPoolCreateInfo queryPoolCreateInfo
120 vk::VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, // VkStructureType sType;
123 vk::VK_QUERY_TYPE_OCCLUSION, // VkQueryType queryType;
127 vk::Move<vk::VkQueryPool> queryPool = createQueryPool(vkd, device, &queryPoolCreateInfo);
128 const vk::VkBufferCreateInfo bufferCreateInfo
130 vk::VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, // VkStructureType sType
133 (vk::VkDeviceSize)64, // VkDeviceSize size
134 vk::VK_BUFFER_USAGE_TRANSFER_SRC_BIT | vk::VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, // VkBufferUsageFlags usage
135 vk::VK_SHARING_MODE_EXCLUSIVE, // VkSharingMode sharingMode
139 vk::Move<vk::VkBuffer> buffer = createBuffer(vkd, device, &bufferCreateInfo);
140 const vk::VkMemoryRequirements bufferRequirements = getBufferMemoryRequirements(vkd, device, *buffer);
141 de::MovePtr<vk::Allocation> bufferAllocation = allocator.allocate(bufferRequirements, vk::MemoryRequirement::HostVisible);
143 vk::Move<vk::VkBufferView> bufferView = makeBufferView(vkd, device, *buffer, vk::VK_FORMAT_R32G32B32A32_SFLOAT, 0ull, VK_WHOLE_SIZE);
144 const vk::VkSamplerCreateInfo samplerCreateInfo
146 vk::VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, // VkStructureType sType;
148 (vk::VkSamplerCreateFlags)0, // VkSamplerCreateFlags flags;
149 vk::VK_FILTER_NEAREST, // VkFilter magFilter;
150 vk::VK_FILTER_NEAREST, // VkFilter minFilter;
151 vk::VK_SAMPLER_MIPMAP_MODE_NEAREST, // VkSamplerMipmapMode mipmapMode;
152 vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // VkSamplerAddressMode addressModeU;
153 vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // VkSamplerAddressMode addressModeV;
154 vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, // VkSamplerAddressMode addressModeW;
159 vk::VK_COMPARE_OP_ALWAYS, // VkCompareOp compareOp;
162 vk::VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, // VkBorderColor borderColor;
165 vk::Move<vk::VkSampler> sampler = createSampler(vkd, device, &samplerCreateInfo);
166 const vk::VkSamplerYcbcrConversionCreateInfo conversionInfo
168 vk::VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, // VkStructureType sType;
170 vk::VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, // VkFormat format;
171 vk::VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, // VkSamplerYcbcrModelConversion ycbcrModel;
172 vk::VK_SAMPLER_YCBCR_RANGE_ITU_FULL, // VkSamplerYcbcrRange ycbcrRange;
174 vk::VK_COMPONENT_SWIZZLE_IDENTITY,
175 vk::VK_COMPONENT_SWIZZLE_IDENTITY,
176 vk::VK_COMPONENT_SWIZZLE_IDENTITY,
177 vk::VK_COMPONENT_SWIZZLE_IDENTITY
179 vk::VK_CHROMA_LOCATION_MIDPOINT, // VkChromaLocation xChromaOffset;
180 vk::VK_CHROMA_LOCATION_MIDPOINT, // VkChromaLocation yChromaOffset;
181 vk::VK_FILTER_NEAREST, // VkFilter chromaFilter;
184 vk::Move<vk::VkSamplerYcbcrConversion> ycbcrConversion = vk::createSamplerYcbcrConversion(vkd, device, &conversionInfo);
185 const vk::VkImageCreateInfo imageCreateInfo
187 vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // VkStructureType sType;
190 vk::VK_IMAGE_TYPE_2D, // VkImageType imageType;
191 vk::VK_FORMAT_R8G8B8A8_UNORM, // VkFormat format;
195 vk::VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples;
196 vk::VK_IMAGE_TILING_OPTIMAL, // VkImageTiling tiling;
197 vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT | vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, // VkImageUsageFlags usage;
198 vk::VK_SHARING_MODE_EXCLUSIVE, // VkSharingMode sharingMode;
201 vk::VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout;
203 vk::Move<vk::VkImage> image = createImage(vkd, device, &imageCreateInfo);
204 const vk::VkMemoryRequirements imageRequirements = getImageMemoryRequirements(vkd, device, *image);
205 de::MovePtr<vk::Allocation> imageAllocation = allocator.allocate(imageRequirements, vk::MemoryRequirement::Any);
207 vk::Move<vk::VkImageView> imageView = makeImageView(vkd, device, *image, vk::VK_IMAGE_VIEW_TYPE_2D, vk::VK_FORMAT_R8G8B8A8_UNORM, makeImageSubresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u));
208 vk::Move<vk::VkShaderModule> shaderModule = createShaderModule(vkd, device, context.getBinaryCollection().get("comp"), 0u);
209 vk::Move<vk::VkRenderPass> renderPass = makeRenderPass(vkd, device, vk::VK_FORMAT_R8G8B8A8_UNORM);
210 vk::Move<vk::VkFramebuffer> framebuffer = makeFramebuffer(vkd, device, *renderPass, *imageView, 64, 64);
211 const vk::VkPipelineCacheCreateInfo pipelineCacheCreateInfo
213 vk::VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO, // VkStructureType sType;
215 vk::VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT |
216 vk::VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT, // VkPipelineCacheCreateFlags flags;
220 vk::Move<vk::VkPipelineCache> pipelineCache = createPipelineCache(vkd, device, &pipelineCacheCreateInfo);
221 vk::Move<vk::VkPipelineLayout> pipelineLayout = makePipelineLayout(vkd, device);
222 vk::Move<vk::VkPipeline> pipeline = makeComputePipeline(vkd, device, *pipelineLayout, *shaderModule);
223 const vk::VkDescriptorPoolSize descriptorPoolSize
225 vk::VK_DESCRIPTOR_TYPE_SAMPLER, // VkDescriptorType type;
228 const vk::VkDescriptorPoolCreateInfo descriptorPoolCreateInfo
230 vk::VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, // VkStructureType sType;
237 vk::Move<vk::VkDescriptorPool> descriptorPool = createDescriptorPool(vkd, device, &descriptorPoolCreateInfo);
238 const vk::VkDescriptorSetLayoutBinding descriptorSetLayoutBinding
241 vk::VK_DESCRIPTOR_TYPE_SAMPLER, // VkDescriptorType descriptorType;
243 vk::VK_SHADER_STAGE_ALL, // VkShaderStageFlags stageFlags;
246 const vk::VkDescriptorSetLayoutCreateInfo descriptorSetLayoutInfo
248 vk::VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, // VkStructureType sType;
254 vk::Move<vk::VkDescriptorSetLayout> descriptorSetLayout = createDescriptorSetLayout(vkd, device, &descriptorSetLayoutInfo);
255 vk::Move<vk::VkDescriptorSet> descriptorSet = makeDescriptorSet(vkd, device, *descriptorPool, *descriptorSetLayout);
257 std::map<vk::VkObjectType, deUint64> objectHandlesMap
259 { vk::VK_OBJECT_TYPE_INSTANCE, 0 },
260 { vk::VK_OBJECT_TYPE_PHYSICAL_DEVICE, 0 },
261 { vk::VK_OBJECT_TYPE_DEVICE, 0 },
262 { vk::VK_OBJECT_TYPE_QUEUE, 0 },
263 { vk::VK_OBJECT_TYPE_SEMAPHORE, semaphore.get().getInternal() },
264 { vk::VK_OBJECT_TYPE_COMMAND_BUFFER, 0 },
265 { vk::VK_OBJECT_TYPE_FENCE, fence.get().getInternal() },
266 { vk::VK_OBJECT_TYPE_DEVICE_MEMORY, bufferAllocation->getMemory().getInternal() },
267 { vk::VK_OBJECT_TYPE_BUFFER, buffer.get().getInternal() },
268 { vk::VK_OBJECT_TYPE_IMAGE, image.get().getInternal() },
269 { vk::VK_OBJECT_TYPE_EVENT, event.get().getInternal() },
270 { vk::VK_OBJECT_TYPE_QUERY_POOL, queryPool.get().getInternal() },
271 { vk::VK_OBJECT_TYPE_BUFFER_VIEW, bufferView.get().getInternal() },
272 { vk::VK_OBJECT_TYPE_IMAGE_VIEW, imageView.get().getInternal() },
273 { vk::VK_OBJECT_TYPE_SHADER_MODULE, shaderModule.get().getInternal() },
274 { vk::VK_OBJECT_TYPE_PIPELINE_CACHE, pipelineCache.get().getInternal() },
275 { vk::VK_OBJECT_TYPE_PIPELINE_LAYOUT, pipelineLayout.get().getInternal() },
276 { vk::VK_OBJECT_TYPE_RENDER_PASS, renderPass.get().getInternal() },
277 { vk::VK_OBJECT_TYPE_PIPELINE, pipeline.get().getInternal() },
278 { vk::VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, descriptorSetLayout.get().getInternal() },
279 { vk::VK_OBJECT_TYPE_SAMPLER, sampler.get().getInternal() },
280 { vk::VK_OBJECT_TYPE_DESCRIPTOR_POOL, descriptorPool.get().getInternal() },
281 { vk::VK_OBJECT_TYPE_DESCRIPTOR_SET, descriptorSet.get().getInternal() },
282 { vk::VK_OBJECT_TYPE_FRAMEBUFFER, framebuffer.get().getInternal() },
283 { vk::VK_OBJECT_TYPE_COMMAND_POOL, cmdPool.get().getInternal() },
284 { vk::VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, ycbcrConversion.get().getInternal() },
285 { vk::VK_OBJECT_TYPE_SURFACE_KHR, 0 },
286 { vk::VK_OBJECT_TYPE_SWAPCHAIN_KHR, 0 },
287 { vk::VK_OBJECT_TYPE_DISPLAY_KHR, 0 },
288 { vk::VK_OBJECT_TYPE_DISPLAY_MODE_KHR, 0 },
289 { vk::VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT, 0 }
292 const vk::VkMemoryBarrier objRefreshBarrier
294 vk::VK_STRUCTURE_TYPE_MEMORY_BARRIER,
296 vk::VK_ACCESS_TRANSFER_WRITE_BIT,
297 vk::VK_ACCESS_MEMORY_READ_BIT
301 vk::beginCommandBuffer(vkd, *cmdBuffer);
307 vk::VkObjectType objectType = object.first;
317 vk::VkRefreshObjectKHR refreshObject = { objectType, objectHandle, 0 };
318 vk::VkRefreshObjectListKHR refreshList = { vk::VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR, DE_NULL, 1, &refreshObject };
320 vkd.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, 0, 1, &objRefreshBarrier, 0, DE_NULL, 0, DE_NULL);
326 std::vector<vk::VkRefreshObjectKHR> objectsToRefreshList(countReported);
329 vk::VkObjectType objectType = refreshableObjectTypes[i];
343 vk::VkRefreshObjectListKHR refreshList = { vk::VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR, DE_NULL, countUsed, objectsToRefreshList.data() };
345 vkd.cmdPipelineBarrier(*cmdBuffer, vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, 0, 1, &objRefreshBarrier, 0, DE_NULL, 0, DE_NULL);
348 vk::endCommandBuffer(vkd, *cmdBuffer);
349 vk::submitCommandsAndWait(vkd, device, queue, *cmdBuffer);
354 void createComputeSource(vk::SourceCollections& dst)