tests:Add CreatePipeline that doesn't bind cmdbuffer
diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index c54dd87..c5f477a 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -927,6 +927,43 @@
m_cb_state.attachment[binding] = *att;
}
+void XglPipelineObj::CreateXGLPipeline(XglDescriptorSetObj *descriptorSet)
+{
+ XGL_RESULT err;
+ XGL_VOID* head_ptr = &m_db_state;
+ XGL_GRAPHICS_PIPELINE_CREATE_INFO info = {};
+
+ XGL_PIPELINE_SHADER_STAGE_CREATE_INFO* shaderCreateInfo;
+
+ for (int i=0; i<m_shaderObjs.size(); i++)
+ {
+ shaderCreateInfo = m_shaderObjs[i]->GetStageCreateInfo(descriptorSet);
+ shaderCreateInfo->pNext = head_ptr;
+ head_ptr = shaderCreateInfo;
+ }
+
+ if (m_vi_state.attributeCount && m_vi_state.bindingCount)
+ {
+ m_vi_state.sType = XGL_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO;
+ m_vi_state.pNext = head_ptr;
+ head_ptr = &m_vi_state;
+ }
+
+ info.sType = XGL_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
+ info.pNext = head_ptr;
+ info.flags = 0;
+
+ err = xglCreateGraphicsPipeline(m_device->device(), &info, &m_pipeline);
+ assert(!err);
+
+ err = m_device->AllocAndBindGpuMemory(m_pipeline, "Pipeline", &m_pipe_mem);
+ assert(!err);
+}
+XGL_PIPELINE XglPipelineObj::GetPipelineHandle()
+{
+ return m_pipeline;
+}
+
void XglPipelineObj::BindPipelineCommandBuffer(XGL_CMD_BUFFER m_cmdBuffer, XglDescriptorSetObj *descriptorSet)
{
XGL_RESULT err;