Clean out references to 'sky' in the load_shader.

This commit is contained in:
Zed A. Shaw 2025-12-09 13:47:39 -05:00
parent 61931083c6
commit b5c6774412

View file

@ -73,6 +73,7 @@ void VulkanEngine::cleanup()
void VulkanEngine::draw()
{
// ZED: begin command transaction
// wait until the gpu has finished rendering the last frame. Timeout of 1 second
VK_CHECK(vkWaitForFences(_device, 1, &get_current_frame()._renderFence, true, 1000000000));
get_current_frame()._deletionQueue.flush();
@ -87,38 +88,60 @@ void VulkanEngine::draw()
VkCommandBufferBeginInfo cmdBeginInfo = vkinit::command_buffer_begin_info(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
VK_CHECK(vkBeginCommandBuffer(cmd, &cmdBeginInfo));
// ZED: draw the things
_drawExtent.width = _drawImage.imageExtent.width;
_drawExtent.height = _drawImage.imageExtent.height;
VK_CHECK(vkBeginCommandBuffer(cmd, &cmdBeginInfo));
// transition our main draw image into general layout so we can write into it
// we will overwrite it all so we dont care about what was the older layout
vkutil::transition_image(cmd, _drawImage.image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL);
draw_background(cmd);
// ZED: ?
vkutil::transition_image(cmd, _drawImage.image, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
// ZED: ?
vkutil::transition_image(cmd, _swapchainImages[swapchainImageIndex], VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
vkutil::copy_image_to_image(cmd, _drawImage.image,
_swapchainImages[swapchainImageIndex],
_drawExtent, _swapchainExtent);
// ZED: ?
vkutil::transition_image(cmd, _swapchainImages[swapchainImageIndex], VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL);
_gui.draw_imgui(_swapchainExtent, cmd, _swapchainImageViews[swapchainImageIndex]);
// ZED: end drawing the things
// ZED: finalize image and commit command buffer
vkutil::transition_image(cmd, _swapchainImages[swapchainImageIndex], VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR);
VK_CHECK(vkEndCommandBuffer(cmd));
// ZED: submit command to queue
//prepare the submission to the queue.
//we want to wait on the _presentSemaphore, as that semaphore is signaled when the swapchain is ready
//we will signal the _renderSemaphore, to signal that rendering has finished
VkCommandBufferSubmitInfo cmdinfo = vkinit::command_buffer_submit_info(cmd);
VkSemaphoreSubmitInfo waitInfo = vkinit::semaphore_submit_info(VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR,get_current_frame()._swapchainSemaphore);
@ -413,15 +436,15 @@ void VulkanEngine::init_pipelines()
init_shaders();
}
void VulkanEngine::load_shader(const char *file_name, const char *entry_point, ComputeEffect sky) {
VkShaderModule skyShader;
bool good = vkutil::load_shader_module(file_name, _device, &skyShader);
void VulkanEngine::load_shader(const char *file_name, const char *entry_point, ComputeEffect effect) {
VkShaderModule shader;
bool good = vkutil::load_shader_module(file_name, _device, &shader);
assert(good && "failed to load shader");
VkPipelineShaderStageCreateInfo stageinfo{
.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
.stage = VK_SHADER_STAGE_COMPUTE_BIT,
.module = skyShader,
.module = shader,
.pName = entry_point,
};
@ -431,16 +454,16 @@ void VulkanEngine::load_shader(const char *file_name, const char *entry_point, C
.layout = _gradientPipelineLayout,
};
sky.layout = _gradientPipelineLayout;
effect.layout = _gradientPipelineLayout;
VK_CHECK(vkCreateComputePipelines(_device, VK_NULL_HANDLE, 1, &computePipelineCreateInfo, nullptr, &sky.pipeline));
VK_CHECK(vkCreateComputePipelines(_device, VK_NULL_HANDLE, 1, &computePipelineCreateInfo, nullptr, &effect.pipeline));
backgroundEffects.push_back(sky);
backgroundEffects.push_back(effect);
vkDestroyShaderModule(_device, skyShader, nullptr);
vkDestroyShaderModule(_device, shader, nullptr);
_mainDeletionQueue.push_function([=,this]() {
vkDestroyPipeline(_device, sky.pipeline, nullptr);
vkDestroyPipeline(_device, effect.pipeline, nullptr);
});
}