diff options
| author | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-06-28 13:01:17 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-07-01 21:08:13 -0600 |
| commit | 0a35dcdff977a6665e1ea0d38ab11a4fa4a46cfd (patch) | |
| tree | 8db19045b34e06af1a7692dd32ede8ff4c6bcb65 /layers/param_checker.cpp | |
| parent | a80a1a97b8f26dd035fabb2c6762447c71b73ba7 (diff) | |
| download | usermoji-0a35dcdff977a6665e1ea0d38ab11a4fa4a46cfd.tar.xz | |
bug 14014: Fill out support for VkShaderModule
Updated tests and demos to properly use VkShaderModule.
Add support to shader_checker for shader module.
Doesn't do anything with the pName parameter.
Diffstat (limited to 'layers/param_checker.cpp')
| -rw-r--r-- | layers/param_checker.cpp | 92 |
1 files changed, 85 insertions, 7 deletions
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp index 22ca3e08..8fa33ceb 100644 --- a/layers/param_checker.cpp +++ b/layers/param_checker.cpp @@ -4538,6 +4538,90 @@ VK_LAYER_EXPORT VkResult VKAPI vkCreateDepthStencilView( return result; } +void PreCreateShaderModule( + VkDevice device, + const VkShaderModuleCreateInfo* pCreateInfo) +{ + if(device == nullptr) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, VkDevice device, is null pointer"); + return; + } + + if(pCreateInfo == nullptr) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, const VkShaderCreateInfo* pCreateInfo, is null pointer"); + return; + } + if(pCreateInfo->sType < VK_STRUCTURE_TYPE_BEGIN_RANGE || + pCreateInfo->sType > VK_STRUCTURE_TYPE_END_RANGE) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, VkStructureType pCreateInfo->sType, is unrecognized enumerator"); + return; + } + if(pCreateInfo->pCode == nullptr) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, const void* pCreateInfo->pCode, is null pointer"); + return; + } + if(pCreateInfo->codeSize == 0) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, size_t pCreateInfo->codeSize, is zero"); + return; + } +} + +void PostCreateShaderModule( + VkDevice device, + VkShaderModule* pShaderModule, + VkResult result) +{ + if(device == nullptr) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, VkDevice device, is null pointer"); + return; + } + + if(pShaderModule == nullptr) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, VkShader* pShader, is null pointer"); + return; + } + if((*pShaderModule) == nullptr) + { + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", + "vkCreateShaderModule parameter, VkShader* pShader, is null pointer"); + return; + } + + if(result != VK_SUCCESS) + { + std::string reason = "vkCreateShaderModule parameter, VkResult result, is " + EnumeratorString(result); + log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", reason.c_str()); + return; + } +} + +VK_LAYER_EXPORT VkResult VKAPI vkCreateShaderModule( + VkDevice device, + const VkShaderModuleCreateInfo* pCreateInfo, + VkShaderModule* pShaderModule) +{ + PreCreateShaderModule(device, pCreateInfo); + VkResult result = get_dispatch_table(pc_device_table_map, device)->CreateShaderModule(device, pCreateInfo, pShaderModule); + + PostCreateShaderModule(device, pShaderModule, result); + + return result; +} + void PreCreateShader( VkDevice device, const VkShaderCreateInfo* pCreateInfo) @@ -4568,18 +4652,12 @@ void PreCreateShader( "vkCreateShader parameter, VkShaderModule pCreateInfo->module, is null pointer"); return; } - if(pCreateInfo->name == nullptr) + if(pCreateInfo->pName == nullptr) { log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", "vkCreateShader parameter, const char* pCreateInfo->name, is null pointer"); return; } - if(pCreateInfo->pCode == nullptr) - { - log_msg(mdd(device), VK_DBG_REPORT_WARN_BIT, (VkObjectType)0, NULL, 0, 1, "PARAMCHECK", - "vkCreateShader parameter, const void* pCreateInfo->pCode, is null pointer"); - return; - } } void PostCreateShader( |
