glave: remap sampler object in xglCreateDescriptorSetLayout()
diff --git a/glave-generate.py b/glave-generate.py
index a80c05c..3483cf1 100755
--- a/glave-generate.py
+++ b/glave-generate.py
@@ -2785,14 +2785,22 @@
def _gen_replay_create_descriptor_set_layout(self):
cdsl_body = []
- cdsl_body.append(' XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO createInfo;')
- cdsl_body.append(' memcpy(&createInfo, pPacket->pSetLayoutInfoList, sizeof(XGL_DESCRIPTOR_SET_LAYOUT_CREATE_INFO));')
+ cdsl_body.append(' XGL_SAMPLER saveSampler;')
+ cdsl_body.append(' if (pPacket->pSetLayoutInfoList != NULL) {')
+ cdsl_body.append(' XGL_SAMPLER *pSampler = (XGL_SAMPLER *) &pPacket->pSetLayoutInfoList->immutableSampler;')
+ cdsl_body.append(' saveSampler = pPacket->pSetLayoutInfoList->immutableSampler;')
+ cdsl_body.append(' *pSampler = remap(saveSampler);')
+ cdsl_body.append(' }')
cdsl_body.append(' XGL_DESCRIPTOR_SET_LAYOUT setLayout;')
- cdsl_body.append(' replayResult = m_xglFuncs.real_xglCreateDescriptorSetLayout(remap(pPacket->device), pPacket->stageFlags, pPacket->pSetBindPoints, remap(pPacket->priorSetLayout), &createInfo, &setLayout);')
+ cdsl_body.append(' replayResult = m_xglFuncs.real_xglCreateDescriptorSetLayout(remap(pPacket->device), pPacket->stageFlags, pPacket->pSetBindPoints, remap(pPacket->priorSetLayout), pPacket->pSetLayoutInfoList, &setLayout);')
cdsl_body.append(' if (replayResult == XGL_SUCCESS)')
cdsl_body.append(' {')
cdsl_body.append(' add_to_map(pPacket->pSetLayout, &setLayout);')
cdsl_body.append(' }')
+ cdsl_body.append(' if (pPacket->pSetLayoutInfoList != NULL) {')
+ cdsl_body.append(' XGL_SAMPLER *pSampler = (XGL_SAMPLER *) &pPacket->pSetLayoutInfoList->immutableSampler;')
+ cdsl_body.append(' *pSampler = saveSampler;')
+ cdsl_body.append(' }')
return "\n".join(cdsl_body)
def _gen_replay_create_graphics_pipeline(self):