const char* sourceName,
const char* entryName);
void enableTessellationStage (deUint32 patchControlPoints);
- VkPipeline buildPipeline (tcu::UVec2 renderSize,
+ Move<VkPipeline> buildPipeline (tcu::UVec2 renderSize,
VkRenderPass renderPass,
VkPipelineCache cache,
VkPipelineLayout pipelineLayout,
m_shaderStageCount++;
}
-VkPipeline SimpleGraphicsPipelineBuilder::buildPipeline (tcu::UVec2 renderSize, VkRenderPass renderPass, VkPipelineCache cache,
- VkPipelineLayout pipelineLayout, VkPipelineCreateFlags flags)
+Move<VkPipeline> SimpleGraphicsPipelineBuilder::buildPipeline (tcu::UVec2 renderSize, VkRenderPass renderPass, VkPipelineCache cache,
+ VkPipelineLayout pipelineLayout, VkPipelineCreateFlags flags)
{
const DeviceInterface& vk = m_context.getDeviceInterface();
const VkDevice vkDevice = m_context.getDevice();
DE_NULL, // VkPipeline basePipelineHandle;
0, // deInt32 basePipelineIndex;
};
- VkPipeline pipeline;
- vk.createGraphicsPipelines(vkDevice, cache, 1u, &graphicsPipelineParams, DE_NULL, &pipeline);
- return pipeline;
+
+ return createGraphicsPipeline(vk, vkDevice, cache, &graphicsPipelineParams, DE_NULL);
}
void SimpleGraphicsPipelineBuilder::enableTessellationStage (deUint32 patchControlPoints)
Move<VkPipelineCache> m_cache;
deBool m_extensions;
- VkPipeline m_pipeline[PIPELINE_CACHE_NDX_COUNT];
+ Move<VkPipeline> m_pipeline[PIPELINE_CACHE_NDX_COUNT];
};
ExecutablePropertiesTestInstance::ExecutablePropertiesTestInstance (Context& context,
{
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR, // VkStructureType sType;
DE_NULL, // const void* pNext;
- m_pipeline[ndx], // VkPipeline pipeline;
+ *m_pipeline[ndx], // VkPipeline pipeline;
executableNdx, // uint32_t executableIndex;
};
{
VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR, // VkStructureType sType;
DE_NULL, // const void* pNext;
- m_pipeline[1], // VkPipeline pipeline;
+ *m_pipeline[1], // VkPipeline pipeline;
executableNdx, // uint32_t executableIndex;
};
{
VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR, // VkStructureType sType;
DE_NULL, // const void* pNext;
- m_pipeline[ndx], // VkPipeline pipeline;
+ *m_pipeline[ndx], // VkPipeline pipeline;
};
deUint32 executableCount = 0;
void buildPipeline (deUint32 ndx);
protected:
Move<VkBuffer> m_inputBuf;
- de::MovePtr<Allocation> m_inputBufferAlloc;
+ de::MovePtr<Allocation> m_inputBufferAlloc;
Move<VkShaderModule> m_computeShaderModule[PIPELINE_CACHE_NDX_COUNT];
Move<VkBuffer> m_outputBuf[PIPELINE_CACHE_NDX_COUNT];
- de::MovePtr<Allocation> m_outputBufferAlloc[PIPELINE_CACHE_NDX_COUNT];
+ de::MovePtr<Allocation> m_outputBufferAlloc[PIPELINE_CACHE_NDX_COUNT];
Move<VkDescriptorPool> m_descriptorPool[PIPELINE_CACHE_NDX_COUNT];
- Move<VkDescriptorSetLayout> m_descriptorSetLayout[PIPELINE_CACHE_NDX_COUNT];
+ Move<VkDescriptorSetLayout> m_descriptorSetLayout[PIPELINE_CACHE_NDX_COUNT];
Move<VkDescriptorSet> m_descriptorSet[PIPELINE_CACHE_NDX_COUNT];
Move<VkPipelineLayout> m_pipelineLayout[PIPELINE_CACHE_NDX_COUNT];
0u, // deInt32 basePipelineIndex;
};
- vk.createComputePipelines(vkDevice, *m_cache, 1u, &pipelineCreateInfo, DE_NULL, &m_pipeline[ndx]);
+ m_pipeline[ndx] = createComputePipeline(vk, vkDevice, *m_cache, &pipelineCreateInfo, DE_NULL);
}
ComputeExecutablePropertiesTestInstance::ComputeExecutablePropertiesTestInstance (Context& context,