Refactor: Move shader loading code to inner scope
This prevents the loaded shader data from persisting on the stack even when it is no longer needed.
This commit is contained in:
parent
d29d2434ab
commit
020993fb19
1 changed files with 17 additions and 17 deletions
|
@ -436,29 +436,29 @@ image::Bl dither::blue_noise(int width, int height, int threads,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load shader.
|
|
||||||
std::vector<char> shader;
|
|
||||||
{
|
|
||||||
std::ifstream ifs("compute.spv");
|
|
||||||
if (!ifs.good()) {
|
|
||||||
std::clog << "WARNING: Failed to find compute.spv!\n";
|
|
||||||
goto ENDOF_VULKAN;
|
|
||||||
}
|
|
||||||
ifs.seekg(0, std::ios_base::end);
|
|
||||||
auto size = ifs.tellg();
|
|
||||||
shader.resize(size);
|
|
||||||
|
|
||||||
ifs.seekg(0);
|
|
||||||
ifs.read(shader.data(), size);
|
|
||||||
ifs.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
// create compute pipeline.
|
// create compute pipeline.
|
||||||
VkPipelineLayout compute_pipeline_layout;
|
VkPipelineLayout compute_pipeline_layout;
|
||||||
VkPipeline compute_pipeline;
|
VkPipeline compute_pipeline;
|
||||||
utility::Cleanup cleanup_pipeline_layout{};
|
utility::Cleanup cleanup_pipeline_layout{};
|
||||||
utility::Cleanup cleanup_pipeline{};
|
utility::Cleanup cleanup_pipeline{};
|
||||||
{
|
{
|
||||||
|
// Load shader.
|
||||||
|
std::vector<char> shader;
|
||||||
|
{
|
||||||
|
std::ifstream ifs("compute.spv");
|
||||||
|
if (!ifs.good()) {
|
||||||
|
std::clog << "WARNING: Failed to find compute.spv!\n";
|
||||||
|
goto ENDOF_VULKAN;
|
||||||
|
}
|
||||||
|
ifs.seekg(0, std::ios_base::end);
|
||||||
|
auto size = ifs.tellg();
|
||||||
|
shader.resize(size);
|
||||||
|
|
||||||
|
ifs.seekg(0);
|
||||||
|
ifs.read(shader.data(), size);
|
||||||
|
ifs.close();
|
||||||
|
}
|
||||||
|
|
||||||
VkShaderModuleCreateInfo shader_module_create_info{};
|
VkShaderModuleCreateInfo shader_module_create_info{};
|
||||||
shader_module_create_info.sType =
|
shader_module_create_info.sType =
|
||||||
VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
|
VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
|
||||||
|
|
Loading…
Reference in a new issue