static VkImage *images;
static VkImageView *iviews;
static uint32_t num_images;
-//renderpass
-static VkRenderPass rpass;
static VkFramebuffer fbs[2];
//semaphores-drawing-presentation
static uint32_t curr_img; // current sc image
static VkSemaphore psema;
-
/* static variables */
static Vec4 clear_color(1, 0.1, 0.1, 1.0);
static bool create_zbuffer();
static bool create_renderpass();
static bool create_framebuffers();
-static bool create_pipelines();
static bool begin_init_command_buffer(VkCommandBuffer *cb);
static bool end_init_command_buffer(VkCommandBuffer *cb);
static bool allocate_rendering_command_buffers(VkCommandBuffer *bufs);
return false;
}
- if(!glfwGetPhysicalDevicePresentationSupport(vkinst, vk_physical, vkqfamily)) {
+ if(!glfwGetPhysicalDevicePresentationSupport(vk_instance, vk_physical, vk_qfamily)) {
fprintf(stderr, "Presentation support not found.\n");
return false;
}
return false;
}
- VkResult res = glfwCreateWindowSurface(vkinst, win, 0, &vk_surface);
+ VkResult res = glfwCreateWindowSurface(vk_instance, win, 0, &vk_surface);
if(res != VK_SUCCESS) {
fprintf(stderr, "Failed to create KHR surface: %s\n", vku_get_vulkan_error_str(res));
return false;
return false;
}
- if(!create_pipelines()) {
- fprintf(stderr, "Failed to create the pipelines.\n");
- return false;
- }
-
if(!end_init_command_buffer(&init_buf)) {
fprintf(stderr, "Failed to end the command buffer.\n");
return false;
rinf.subpassCount = 1;
rinf.pSubpasses = &sd;
- if(vkCreateRenderPass(vk_device, &rinf, 0, &rpass) != VK_SUCCESS) {
- fprintf(stderr, "Failed to create rpass.\n");
+ if(vkCreateRenderPass(vk_device, &rinf, 0, &vk_renderpass) != VK_SUCCESS) {
+ fprintf(stderr, "Failed to create render pass.\n");
return false;
}
VkFramebufferCreateInfo fbinf;
memset(&fbinf, 0, sizeof fbinf);
fbinf.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
- fbinf.renderPass = rpass;
+ fbinf.renderPass = vk_renderpass;
fbinf.attachmentCount = 2;
fbinf.pAttachments = fb_att;
fbinf.width = win_w;
return true;
}
-static bool create_pipelines()
-{
- VkDescriptorSetLayoutBinding dslb[1];
- memset(&dslb[0], 0, sizeof dslb[0]);
- dslb[0].binding = 0;
- dslb[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
- dslb[0].descriptorCount = 1;
- dslb[0].stageFlags = VK_SHADER_STAGE_VERTEX_BIT;
-
- VkDescriptorSetLayoutCreateInfo dslinf;
- memset(&dslinf, 0, sizeof dslinf);
- dslinf.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
- dslinf.bindingCount = 1; //dslb.size();
- dslinf.pBindings = dslb;
-
- VkDescriptorSetLayout dsl;
- if(vkCreateDescriptorSetLayout(vk_device, &dslinf, 0, &dsl) != VK_SUCCESS) {
- fprintf(stderr, "Failed to create descriptor set layout.\n");
- return false;
- }
-
- VkPipelineLayoutCreateInfo pinf;
- memset(&pinf, 0, sizeof pinf);
- pinf.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
- pinf.setLayoutCount = 1;
- pinf.pSetLayouts = &dsl;
-
- VkPipelineLayout pl;
- if(vkCreatePipelineLayout(vk_device, &pinf, 0, &pl) != VK_SUCCESS) {
- fprintf(stderr, "Failed to create pipeline layout.\n");
- return false;
- }
-
- VkPipelineCacheCreateInfo pcinf;
- memset(&pcinf, 0, sizeof pcinf);
- pcinf.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO;
-
- VkPipelineCache pcache;
- if(vkCreatePipelineCache(vk_device, &pcinf, 0, &pcache) != VK_SUCCESS) {
- fprintf(stderr, "Failed to create pipeline cache.\n");
- return false;
- }
-
- VkGraphicsPipelineCreateInfo ginf;
- memset(&ginf, 0, sizeof ginf);
- ginf.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
- ginf.stageCount = 2;
-
- return true;
-}
-
static bool end_init_command_buffer(VkCommandBuffer *cb)
{
if(vkEndCommandBuffer(*cb) != VK_SUCCESS) {
VkRenderPassBeginInfo rbinf;
memset(&rbinf, 0, sizeof rbinf);
rbinf.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
- rbinf.renderPass = rpass;
+ rbinf.renderPass = vk_renderpass;
rbinf.framebuffer = fbs[i];
rbinf.renderArea.extent.width = win_w;
rbinf.renderArea.extent.height = win_h;