Home | History | Annotate | Download | only in protected_memory

Lines Matching refs:vk

76 void					initBufferValidatorPrograms		(vk::SourceCollections&	programCollection, TestType testType, BufferType bufferType);
77 vk::VkDescriptorType getDescriptorType (BufferType bufferType);
98 void initPrograms (vk::SourceCollections& programCollection) const;
101 const vk::VkBuffer buffer) const;
114 inline void BufferValidator<tcu::UVec4>::initPrograms (vk::SourceCollections& programCollection) const
120 inline void BufferValidator<tcu::IVec4>::initPrograms (vk::SourceCollections& programCollection) const
126 inline void BufferValidator<tcu::Vec4>::initPrograms (vk::SourceCollections& programCollection) const
172 const vk::VkBuffer buffer) const
179 const vk::DeviceInterface& vk = ctx.getDeviceInterface();
180 const vk::VkDevice device = ctx.getDevice();
181 const vk::VkQueue queue = ctx.getQueue();
184 vk::Move<vk::VkBufferView> bufferView;
187 de::UniquePtr<vk::BufferWithMemory> refUniform (makeBuffer(ctx,
191 vk::VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
192 vk::MemoryRequirement::HostVisible));
197 vk::flushMappedMemoryRange(vk, device, refUniform->getAllocation().getMemory(), refUniform->getAllocation().getOffset(), refDataSize);
201 de::MovePtr<vk::BufferWithMemory> helperBuffer (makeBuffer(ctx,
205 vk::VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
206 vk::MemoryRequirement::Any));
207 vk::Unique<vk::VkShaderModule> resetSSBOShader (vk::createShaderModule(vk, device, ctx.getBinaryCollection().get("ResetSSBO"), 0));
208 vk::Unique<vk::VkShaderModule> validatorShader (vk::createShaderModule(vk, device, ctx.getBinaryCollection().get("BufferValidator"), 0));
211 vk::Unique<vk::VkDescriptorSetLayout> descriptorSetLayout (vk::DescriptorSetLayoutBuilder()
212 .addSingleBinding(getDescriptorType(m_bufferType), vk::VK_SHADER_STAGE_COMPUTE_BIT)
213 .addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vk::VK_SHADER_STAGE_COMPUTE_BIT)
214 .addSingleBinding(vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, vk::VK_SHADER_STAGE_COMPUTE_BIT)
215 .build(vk, device));
216 vk::Unique<vk::VkDescriptorPool> descriptorPool (vk::DescriptorPoolBuilder()
218 .addType(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1u)
219 .addType(vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1u)
220 .build(vk, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u));
221 vk::Unique<vk::VkDescriptorSet> descriptorSet (makeDescriptorSet(vk, device, *descriptorPool, *descriptorSetLayout));
226 vk::VkDescriptorBufferInfo descRefUniform = makeDescriptorBufferInfo(**refUniform, 0, refDataSize);
227 vk::VkDescriptorBufferInfo descBuffer = makeDescriptorBufferInfo(**helperBuffer, 0, helperBufferSize);
229 vk::DescriptorSetUpdateBuilder descriptorSetUpdateBuilder;
234 const vk::VkBufferViewCreateInfo viewParams =
236 vk::VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO, // VkStructureType sType
240 vk::VK_FORMAT_R32G32B32A32_UINT, // VkFormat format
244 bufferView = vk::Move<vk::VkBufferView> (vk::createBufferView(vk, device, &viewParams));
246 .writeSingle(*descriptorSet, vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, &bufferView.get());
252 vk::VkDescriptorBufferInfo descTestBuffer = makeDescriptorBufferInfo(buffer, 0, testBufferSize);
254 .writeSingle(*descriptorSet, vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &descTestBuffer);
259 .writeSingle(*descriptorSet, vk::DescriptorSetUpdateBuilder::Location::binding(1u), vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &descBuffer)
260 .writeSingle(*descriptorSet, vk::DescriptorSetUpdateBuilder::Location::binding(2u), vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, &descRefUniform)
261 .update(vk, device);
265 vk::Unique<vk::VkPipelineLayout> pipelineLayout (makePipelineLayout(vk, device, *descriptorSetLayout));
267 vk::Unique<vk::VkCommandPool> cmdPool (makeCommandPool(vk, device, PROTECTION_ENABLED, queueFamilyIndex));
271 const vk::Unique<vk::VkFence> fence (vk::createFence(vk, device));
272 vk::Unique<vk::VkPipeline> resetSSBOPipeline (makeComputePipeline(vk, device, *pipelineLayout, *resetSSBOShader, DE_NULL));
273 vk::Unique<vk::VkCommandBuffer> resetCmdBuffer (vk::allocateCommandBuffer(vk, device, *cmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
274 beginCommandBuffer(vk, *resetCmdBuffer);
276 vk.cmdBindPipeline(*resetCmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, *resetSSBOPipeline);
277 vk.cmdBindDescriptorSets(*resetCmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, *pipelineLayout, 0u, 1u, &*descriptorSet, 0u, DE_NULL);
278 vk.cmdDispatch(*resetCmdBuffer, 1u, 1u, 1u);
280 VK_CHECK(vk.endCommandBuffer(*resetCmdBuffer));
285 vk::VkResult queueSubmitResult;
287 const vk::Unique<vk::VkFence> fence (vk::createFence(vk, device));
288 vk::Unique<vk::VkPipeline> validationPipeline (makeComputePipeline(vk, device, *pipelineLayout, *validatorShader, DE_NULL));
289 vk::Unique<vk::VkCommandBuffer> cmdBuffer (vk::allocateCommandBuffer(vk, device, *cmdPool, vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY));
291 beginCommandBuffer(vk, *cmdBuffer);
293 vk.cmdBindPipeline(*cmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, *validationPipeline);
294 vk.cmdBindDescriptorSets(*cmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, *pipelineLayout, 0u, 1u, &*descriptorSet, 0u, DE_NULL);
295 vk.cmdDispatch(*cmdBuffer, 1u, 1u, 1u);
297 VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
303 if (queueSubmitResult == vk::VK_TIMEOUT)