tests: Rework VkShaderObj guts to keep whole createinfo
This looked like a half-finished refactoring -- we had the createinfo
object, but we weren't actually using it for anything. Use its fields
instead of loose members for name, etc.
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 91a7b81..61e14cd 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -1067,14 +1067,7 @@
VkIndexType VkIndexBufferObj::GetIndexType() { return m_indexType; }
VkPipelineShaderStageCreateInfo VkShaderObj::GetStageCreateInfo() const {
- VkPipelineShaderStageCreateInfo stageInfo = {};
-
- stageInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
- stageInfo.stage = m_stage;
- stageInfo.module = handle();
- stageInfo.pName = m_name;
-
- return stageInfo;
+ return m_stage_info;
}
VkShaderObj::VkShaderObj(VkDeviceObj *device, const char *shader_code, VkShaderStageFlagBits stage, VkRenderFramework *framework,
@@ -1083,12 +1076,17 @@
std::vector<unsigned int> spv;
VkShaderModuleCreateInfo moduleCreateInfo;
- m_stage = stage;
m_device = device;
- m_name = name;
+ m_stage_info.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
+ m_stage_info.pNext = nullptr;
+ m_stage_info.flags = 0;
+ m_stage_info.stage = stage;
+ m_stage_info.module = VK_NULL_HANDLE;
+ m_stage_info.pName = name;
+ m_stage_info.pSpecializationInfo = nullptr;
moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
- moduleCreateInfo.pNext = NULL;
+ moduleCreateInfo.pNext = nullptr;
framework->GLSLtoSPV(stage, shader_code, spv);
moduleCreateInfo.pCode = spv.data();
@@ -1096,6 +1094,7 @@
moduleCreateInfo.flags = 0;
err = init_try(*m_device, moduleCreateInfo);
+ m_stage_info.module = handle();
assert(VK_SUCCESS == err);
}