moduleCreateInfo.pCode = code;
moduleCreateInfo.flags = 0;
err = vkCreateShaderModule(demo->device, &moduleCreateInfo, pShaderModule);
- if (err) {
- free((void *) moduleCreateInfo.pCode);
- }
+ assert(!err);
shaderCreateInfo.flags = 0;
shaderCreateInfo.module = *pShaderModule;
shaderCreateInfo.pName = "main";
shaderCreateInfo.stage = stage;
err = vkCreateShader(demo->device, &shaderCreateInfo, &shader);
+ free((void *) moduleCreateInfo.pCode);
}
return shader;
}
static VkShader demo_prepare_vs(struct demo *demo)
{
if (!demo->use_glsl) {
+ VkShader shader;
void *vertShaderCode;
size_t size;
vertShaderCode = demo_read_spv("cube-vert.spv", &size);
- return demo_prepare_shader(demo, VK_SHADER_STAGE_VERTEX, &demo->vert_shader_module,
- vertShaderCode, size);
+ shader = demo_prepare_shader(demo, VK_SHADER_STAGE_VERTEX, &demo->vert_shader_module,
+ vertShaderCode, size);
+ free(vertShaderCode);
+ return shader;
} else {
static const char *vertShaderText =
"#version 140\n"
static VkShader demo_prepare_fs(struct demo *demo)
{
if (!demo->use_glsl) {
+ VkShader shader;
void *fragShaderCode;
size_t size;
fragShaderCode = demo_read_spv("cube-frag.spv", &size);
- return demo_prepare_shader(demo, VK_SHADER_STAGE_FRAGMENT, &demo->frag_shader_module,
- fragShaderCode, size);
+ shader = demo_prepare_shader(demo, VK_SHADER_STAGE_FRAGMENT, &demo->frag_shader_module,
+ fragShaderCode, size);
+ free(fragShaderCode);
+ return shader;
} else {
static const char *fragShaderText =
"#version 140\n"
}
free(demo->buffers);
+ free(demo->queue_props);
+
vkDestroyCommandPool(demo->device, demo->cmd_pool);
vkDestroyDevice(demo->device);
if (demo->validate) {
#ifndef _WIN32
xcb_destroy_window(demo->connection, demo->window);
xcb_disconnect(demo->connection);
+ free(demo->atom_wm_delete_window);
#endif // _WIN32
}