layers: Fixes to get them building and working with descriptor changes
diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp
index 5c44f9d..6bd2b77 100644
--- a/layers/mem_tracker.cpp
+++ b/layers/mem_tracker.cpp
@@ -1406,11 +1406,18 @@
nextTable.CmdBindDynamicStateObject(cmdBuffer, stateBindPoint, state);
}
-XGL_LAYER_EXPORT void XGLAPI xglCmdBindDescriptorSet(XGL_CMD_BUFFER cmdBuffer, XGL_PIPELINE_BIND_POINT pipelineBindPoint,
- XGL_DESCRIPTOR_SET descriptorSet, const uint32_t* pUserData)
+XGL_LAYER_EXPORT void XGLAPI xglCmdBindDescriptorSets(
+ XGL_CMD_BUFFER cmdBuffer,
+ XGL_PIPELINE_BIND_POINT pipelineBindPoint,
+ XGL_DESCRIPTOR_SET_LAYOUT_CHAIN layoutChain,
+ uint32_t layoutChainSlot,
+ uint32_t count,
+ const XGL_DESCRIPTOR_SET* pDescriptorSets,
+ const uint32_t* pUserData)
{
+
// TODO : Somewhere need to verify that all textures referenced by shaders in DS are in some type of *SHADER_READ* state
- nextTable.CmdBindDescriptorSet(cmdBuffer, pipelineBindPoint, descriptorSet, pUserData);
+ nextTable.CmdBindDescriptorSets(cmdBuffer, pipelineBindPoint, layoutChain, layoutChainSlot, count, pDescriptorSets, pUserData);
}
XGL_LAYER_EXPORT void XGLAPI xglCmdBindVertexBuffer(XGL_CMD_BUFFER cmdBuffer, XGL_BUFFER buffer, XGL_GPU_SIZE offset, uint32_t binding)
@@ -1870,8 +1877,8 @@
return (void*) xglCmdBindPipeline;
if (!strcmp(funcName, "xglCmdBindDynamicStateObject"))
return (void*) xglCmdBindDynamicStateObject;
- if (!strcmp(funcName, "xglCmdBindDescriptorSet"))
- return (void*) xglCmdBindDescriptorSet;
+ if (!strcmp(funcName, "xglCmdBindDescriptorSets"))
+ return (void*) xglCmdBindDescriptorSets;
if (!strcmp(funcName, "xglCmdBindVertexBuffer"))
return (void*) xglCmdBindVertexBuffer;
if (!strcmp(funcName, "xglCmdBindIndexBuffer"))
diff --git a/layers/object_track.h b/layers/object_track.h
index af6be9b..65e1fef 100644
--- a/layers/object_track.h
+++ b/layers/object_track.h
@@ -61,12 +61,13 @@
XGL_OBJECT_TYPE_SAMPLER,
XGL_OBJECT_TYPE_DYNAMIC_DS_STATE_OBJECT,
XGL_OBJECT_TYPE_DESCRIPTOR_SET,
- XGL_OBJECT_TYPE_DESCRIPTOR_REGION,
+ XGL_OBJECT_TYPE_DESCRIPTOR_POOL,
XGL_OBJECT_TYPE_DYNAMIC_CB_STATE_OBJECT,
XGL_OBJECT_TYPE_IMAGE_VIEW,
XGL_OBJECT_TYPE_SEMAPHORE,
XGL_OBJECT_TYPE_SHADER,
XGL_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,
+ XGL_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_CHAIN,
XGL_OBJECT_TYPE_BUFFER,
XGL_OBJECT_TYPE_PIPELINE,
XGL_OBJECT_TYPE_DEVICE,
@@ -105,6 +106,8 @@
return "FENCE";
case XGL_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:
return "DESCRIPTOR_SET_LAYOUT";
+ case XGL_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_CHAIN:
+ return "DESCRIPTOR_SET_LAYOUT_CHAIN";
case XGL_OBJECT_TYPE_GPU_MEMORY:
return "GPU_MEMORY";
case XGL_OBJECT_TYPE_QUEUE:
@@ -153,8 +156,8 @@
return "RENDER_PASS";
case XGL_OBJECT_TYPE_QUERY_POOL:
return "QUERY_POOL";
- case XGL_OBJECT_TYPE_DESCRIPTOR_REGION:
- return "DESCRIPTOR_REGION";
+ case XGL_OBJECT_TYPE_DESCRIPTOR_POOL:
+ return "DESCRIPTOR_POOL";
case XGL_OBJECT_TYPE_PRESENTABLE_IMAGE_MEMORY:
return "PRESENTABLE_IMAGE_MEMORY";
default:
diff --git a/xgl_helper.py b/xgl_helper.py
index 9a52e33..397d43c 100755
--- a/xgl_helper.py
+++ b/xgl_helper.py
@@ -642,7 +642,7 @@
else:
if stp_list[index]['name'] in ['pImageViews', 'pBufferViews']:
# TODO : This is a quick hack to handle these arrays of ptrs
- sh_funcs.append(' tmpStr = %s(pStruct->%s[0], extra_indent);' % (self._get_sh_func_name(stp_list[index]['type']), stp_list[index]['name']))
+ sh_funcs.append(' tmpStr = %s(&pStruct->%s[0], extra_indent);' % (self._get_sh_func_name(stp_list[index]['type']), stp_list[index]['name']))
else:
sh_funcs.append(' tmpStr = %s(pStruct->%s, extra_indent);' % (self._get_sh_func_name(stp_list[index]['type']), stp_list[index]['name']))
sh_funcs.append(' len = 256+strlen(tmpStr)+strlen(prefix);')
@@ -782,7 +782,7 @@
else:
if stp_list[index]['name'] in ['pImageViews', 'pBufferViews']:
# TODO : This is a quick hack to handle these arrays of ptrs
- sh_funcs.append(' tmp_str = %s(pStruct->%s[0], extra_indent);' % (self._get_sh_func_name(stp_list[index]['type']), stp_list[index]['name']))
+ sh_funcs.append(' tmp_str = %s(&pStruct->%s[0], extra_indent);' % (self._get_sh_func_name(stp_list[index]['type']), stp_list[index]['name']))
else:
sh_funcs.append(' tmp_str = %s(pStruct->%s, extra_indent);' % (self._get_sh_func_name(stp_list[index]['type']), stp_list[index]['name']))
sh_funcs.append(' ss[%u] << %spStruct->%s;' % (index, addr_char, stp_list[index]['name']))