bug 14462: endianness of code for shader modules (WIP)
Change the type of pCode to uint32_t*.
https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14462
diff --git a/tests/init.cpp b/tests/init.cpp
index 77e22d2..804efdd 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -522,13 +522,13 @@
void VkTest::CreateShader(VkShader *pshader, VkShaderStageFlagBits stage)
{
- void *code;
+ uint32_t *code;
uint32_t codeSize;
struct icd_spv_header *pSPV;
VkResult err;
- codeSize = sizeof(struct icd_spv_header) + 100;
- code = malloc(codeSize);
+ codeSize = sizeof(struct icd_spv_header) + sizeof(uint32_t) * 25;
+ code = (uint32_t *) malloc(codeSize);
ASSERT_TRUE(NULL != code) << "malloc failed!";
memset(code, 0, codeSize);
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index ca2aa9f..c9fb02c 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -3943,7 +3943,7 @@
moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
moduleCreateInfo.pNext = NULL;
- moduleCreateInfo.pCode = &spv;
+ moduleCreateInfo.pCode = (const uint32_t *) &spv;
moduleCreateInfo.codeSize = 4;
moduleCreateInfo.flags = 0;
vkCreateShaderModule(m_device->device(), &moduleCreateInfo, &module);
@@ -3975,7 +3975,7 @@
moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
moduleCreateInfo.pNext = NULL;
- moduleCreateInfo.pCode = &spv;
+ moduleCreateInfo.pCode = (const uint32_t *) &spv;
moduleCreateInfo.codeSize = sizeof(spv) + 10;
moduleCreateInfo.flags = 0;
vkCreateShaderModule(m_device->device(), &moduleCreateInfo, &module);
@@ -4008,7 +4008,7 @@
moduleCreateInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
moduleCreateInfo.pNext = NULL;
- moduleCreateInfo.pCode = &spv;
+ moduleCreateInfo.pCode = (const uint32_t *) &spv;
moduleCreateInfo.codeSize = sizeof(spv) + 10;
moduleCreateInfo.flags = 0;
vkCreateShaderModule(m_device->device(), &moduleCreateInfo, &module);
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 480a3a4..0c759d9 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -1080,7 +1080,7 @@
shader_len = strlen(shader_code);
moduleCreateInfo.codeSize = 3 * sizeof(uint32_t) + shader_len + 1;
- moduleCreateInfo.pCode = malloc(moduleCreateInfo.codeSize);
+ moduleCreateInfo.pCode = (uint32_t *) malloc(moduleCreateInfo.codeSize);
moduleCreateInfo.flags = 0;
/* try version 0 first: VkShaderStage followed by GLSL */
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 3c56ea1..fc30888 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -465,7 +465,7 @@
void init(const Device &dev, const VkShaderModuleCreateInfo &info);
VkResult init_try(const Device &dev, const VkShaderModuleCreateInfo &info);
- static VkShaderModuleCreateInfo create_info(size_t code_size, const void *code, VkFlags flags);
+ static VkShaderModuleCreateInfo create_info(size_t code_size, const uint32_t *code, VkFlags flags);
};
class Shader : public internal::NonDispHandle<VkShader> {
@@ -792,7 +792,7 @@
return Image::extent(width, height, depth);
}
-inline VkShaderModuleCreateInfo ShaderModule::create_info(size_t code_size, const void *code, VkFlags flags)
+inline VkShaderModuleCreateInfo ShaderModule::create_info(size_t code_size, const uint32_t *code, VkFlags flags)
{
VkShaderModuleCreateInfo info = {};
info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;