mirror of
https://github.com/PancakeTAS/lsfg-vk.git
synced 2026-04-26 12:21:43 +00:00
parent
1576edcf1a
commit
260998cbf5
8 changed files with 117 additions and 95 deletions
|
|
@ -65,7 +65,7 @@ namespace LSFG_3_1P::Shaders {
|
|||
std::array<std::array<Core::Image, 2>, 3> inImgs1;
|
||||
Core::Image inImg2;
|
||||
std::optional<Core::Image> optImg;
|
||||
std::array<Core::Image, 2> tempImgs1;
|
||||
std::array<Core::Image, 3> tempImgs1;
|
||||
std::array<Core::Image, 2> tempImgs2;
|
||||
Core::Image outImg;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,28 +14,28 @@ using namespace LSFG_3_1P::Shaders;
|
|||
Alpha::Alpha(Vulkan& vk, Core::Image inImg) : inImg(std::move(inImg)) {
|
||||
// create resources
|
||||
this->shaderModules = {{
|
||||
vk.shaders.getShader(vk.device, "alpha[0]",
|
||||
vk.shaders.getShader(vk.device, "p_alpha[0]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "alpha[1]",
|
||||
vk.shaders.getShader(vk.device, "p_alpha[1]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "alpha[2]",
|
||||
vk.shaders.getShader(vk.device, "p_alpha[2]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "alpha[3]",
|
||||
vk.shaders.getShader(vk.device, "p_alpha[3]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } })
|
||||
}};
|
||||
this->pipelines = {{
|
||||
vk.shaders.getPipeline(vk.device, "alpha[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "alpha[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "alpha[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "alpha[3]")
|
||||
vk.shaders.getPipeline(vk.device, "p_alpha[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_alpha[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_alpha[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_alpha[3]")
|
||||
}};
|
||||
this->sampler = vk.resources.getSampler(vk.device);
|
||||
for (size_t i = 0; i < 3; i++)
|
||||
|
|
|
|||
|
|
@ -16,34 +16,34 @@ Beta::Beta(Vulkan& vk, std::array<std::array<Core::Image, 2>, 3> inImgs)
|
|||
: inImgs(std::move(inImgs)) {
|
||||
// create resources
|
||||
this->shaderModules = {{
|
||||
vk.shaders.getShader(vk.device, "beta[0]",
|
||||
vk.shaders.getShader(vk.device, "p_beta[0]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 6, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "beta[1]",
|
||||
vk.shaders.getShader(vk.device, "p_beta[1]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "beta[2]",
|
||||
vk.shaders.getShader(vk.device, "p_beta[2]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "beta[3]",
|
||||
vk.shaders.getShader(vk.device, "p_beta[3]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "beta[4]",
|
||||
vk.shaders.getShader(vk.device, "p_beta[4]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 6, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } })
|
||||
}};
|
||||
this->pipelines = {{
|
||||
vk.shaders.getPipeline(vk.device, "beta[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "beta[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "beta[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "beta[3]"),
|
||||
vk.shaders.getPipeline(vk.device, "beta[4]")
|
||||
vk.shaders.getPipeline(vk.device, "p_beta[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_beta[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_beta[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_beta[3]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_beta[4]")
|
||||
}};
|
||||
this->samplers.at(0) = vk.resources.getSampler(vk.device);
|
||||
this->samplers.at(1) = vk.resources.getSampler(vk.device,
|
||||
|
|
|
|||
|
|
@ -21,62 +21,62 @@ Delta::Delta(Vulkan& vk, std::array<std::array<Core::Image, 2>, 3> inImgs1,
|
|||
optImg1(std::move(optImg1)), optImg2(std::move(optImg2)) {
|
||||
// create resources
|
||||
this->shaderModules = {{
|
||||
vk.shaders.getShader(vk.device, "delta[0]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[0]",
|
||||
{ { 1 , VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 5, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 3, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[1]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[1]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 3, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[2]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[2]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[3]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[3]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[4]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[4]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 4, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[5]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[5]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 6, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[6]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[6]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[7]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[7]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[8]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[8]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "delta[9]",
|
||||
vk.shaders.getShader(vk.device, "p_delta[9]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } })
|
||||
}};
|
||||
this->pipelines = {{
|
||||
vk.shaders.getPipeline(vk.device, "delta[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[3]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[4]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[5]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[6]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[7]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[8]"),
|
||||
vk.shaders.getPipeline(vk.device, "delta[9]")
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[3]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[4]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[5]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[6]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[7]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[8]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_delta[9]")
|
||||
}};
|
||||
this->samplers.at(0) = vk.resources.getSampler(vk.device);
|
||||
this->samplers.at(1) = vk.resources.getSampler(vk.device,
|
||||
|
|
|
|||
|
|
@ -20,35 +20,35 @@ Gamma::Gamma(Vulkan& vk, std::array<std::array<Core::Image, 2>, 3> inImgs1,
|
|||
optImg(std::move(optImg)) {
|
||||
// create resources
|
||||
this->shaderModules = {{
|
||||
vk.shaders.getShader(vk.device, "gamma[0]",
|
||||
vk.shaders.getShader(vk.device, "p_gamma[0]",
|
||||
{ { 1 , VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 5, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 3, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "gamma[1]",
|
||||
vk.shaders.getShader(vk.device, "p_gamma[1]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 3, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "gamma[2]",
|
||||
vk.shaders.getShader(vk.device, "p_gamma[2]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "gamma[3]",
|
||||
vk.shaders.getShader(vk.device, "p_gamma[3]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } }),
|
||||
vk.shaders.getShader(vk.device, "gamma[4]",
|
||||
vk.shaders.getShader(vk.device, "p_gamma[4]",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 4, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } })
|
||||
}};
|
||||
this->pipelines = {{
|
||||
vk.shaders.getPipeline(vk.device, "gamma[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "gamma[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "gamma[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "gamma[3]"),
|
||||
vk.shaders.getPipeline(vk.device, "gamma[4]")
|
||||
vk.shaders.getPipeline(vk.device, "p_gamma[0]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_gamma[1]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_gamma[2]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_gamma[3]"),
|
||||
vk.shaders.getPipeline(vk.device, "p_gamma[4]")
|
||||
}};
|
||||
this->samplers.at(0) = vk.resources.getSampler(vk.device);
|
||||
this->samplers.at(1) = vk.resources.getSampler(vk.device,
|
||||
|
|
@ -58,10 +58,10 @@ Gamma::Gamma(Vulkan& vk, std::array<std::array<Core::Image, 2>, 3> inImgs1,
|
|||
|
||||
// create internal images/outputs
|
||||
const VkExtent2D extent = this->inImgs1.at(0).at(0).getExtent();
|
||||
for (size_t i = 0; i < 2; i++) {
|
||||
for (size_t i = 0; i < 3; i++)
|
||||
this->tempImgs1.at(i) = Core::Image(vk.device, extent);
|
||||
for (size_t i = 0; i < 2; i++)
|
||||
this->tempImgs2.at(i) = Core::Image(vk.device, extent);
|
||||
}
|
||||
|
||||
this->outImg = Core::Image(vk.device,
|
||||
{ extent.width, extent.height },
|
||||
|
|
@ -83,18 +83,14 @@ Gamma::Gamma(Vulkan& vk, std::array<std::array<Core::Image, 2>, 3> inImgs1,
|
|||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->inImgs1.at((i + 2) % 3))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->inImgs1.at(i % 3))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->optImg)
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs1.at(0))
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs1.at(1))
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs1.at(2))
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs1)
|
||||
.build();
|
||||
}
|
||||
pass.descriptorSets.at(0) = Core::DescriptorSet(vk.device, vk.descriptorPool,
|
||||
this->shaderModules.at(1));
|
||||
pass.descriptorSets.at(0).update(vk.device)
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLER, this->samplers.at(0))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs1.at(0))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs1.at(1))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs1.at(2))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs1)
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs2)
|
||||
.build();
|
||||
pass.descriptorSets.at(1) = Core::DescriptorSet(vk.device, vk.descriptorPool,
|
||||
|
|
@ -102,13 +98,15 @@ Gamma::Gamma(Vulkan& vk, std::array<std::array<Core::Image, 2>, 3> inImgs1,
|
|||
pass.descriptorSets.at(1).update(vk.device)
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLER, this->samplers.at(0))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs2)
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs1)
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs1.at(0))
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs1.at(1))
|
||||
.build();
|
||||
pass.descriptorSets.at(2) = Core::DescriptorSet(vk.device, vk.descriptorPool,
|
||||
this->shaderModules.at(3));
|
||||
pass.descriptorSets.at(2).update(vk.device)
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLER, this->samplers.at(0))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs1)
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs1.at(0))
|
||||
.add(VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, this->tempImgs1.at(1))
|
||||
.add(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, this->tempImgs2)
|
||||
.build();
|
||||
pass.descriptorSets.at(3) = Core::DescriptorSet(vk.device, vk.descriptorPool,
|
||||
|
|
@ -137,9 +135,7 @@ void Gamma::Dispatch(const Core::CommandBuffer& buf, uint64_t frameCount, uint64
|
|||
.addW2R(this->inImgs1.at((frameCount + 2) % 3))
|
||||
.addW2R(this->inImgs1.at(frameCount % 3))
|
||||
.addW2R(this->optImg)
|
||||
.addR2W(this->tempImgs1.at(0))
|
||||
.addR2W(this->tempImgs1.at(1))
|
||||
.addR2W(this->tempImgs1.at(2))
|
||||
.addR2W(this->tempImgs1)
|
||||
.build();
|
||||
|
||||
this->pipelines.at(0).bind(buf);
|
||||
|
|
@ -148,9 +144,7 @@ void Gamma::Dispatch(const Core::CommandBuffer& buf, uint64_t frameCount, uint64
|
|||
|
||||
// second shader
|
||||
Utils::BarrierBuilder(buf)
|
||||
.addW2R(this->tempImgs1.at(0))
|
||||
.addW2R(this->tempImgs1.at(1))
|
||||
.addW2R(this->tempImgs1.at(2))
|
||||
.addW2R(this->tempImgs1)
|
||||
.addR2W(this->tempImgs2)
|
||||
.build();
|
||||
|
||||
|
|
@ -161,7 +155,8 @@ void Gamma::Dispatch(const Core::CommandBuffer& buf, uint64_t frameCount, uint64
|
|||
// third shader
|
||||
Utils::BarrierBuilder(buf)
|
||||
.addW2R(this->tempImgs2)
|
||||
.addR2W(this->tempImgs1)
|
||||
.addR2W(this->tempImgs1.at(0))
|
||||
.addR2W(this->tempImgs1.at(1))
|
||||
.build();
|
||||
|
||||
this->pipelines.at(2).bind(buf);
|
||||
|
|
@ -170,7 +165,8 @@ void Gamma::Dispatch(const Core::CommandBuffer& buf, uint64_t frameCount, uint64
|
|||
|
||||
// fourth shader
|
||||
Utils::BarrierBuilder(buf)
|
||||
.addW2R(this->tempImgs1)
|
||||
.addW2R(this->tempImgs1.at(0))
|
||||
.addW2R(this->tempImgs1.at(1))
|
||||
.addR2W(this->tempImgs2)
|
||||
.build();
|
||||
|
||||
|
|
|
|||
|
|
@ -20,12 +20,12 @@ Generate::Generate(Vulkan& vk,
|
|||
inImg3(std::move(inImg3)), inImg4(std::move(inImg4)),
|
||||
inImg5(std::move(inImg5)) {
|
||||
// create resources
|
||||
this->shaderModule = vk.shaders.getShader(vk.device, "generate",
|
||||
this->shaderModule = vk.shaders.getShader(vk.device, "p_generate",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 2, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 5, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } });
|
||||
this->pipeline = vk.shaders.getPipeline(vk.device, "generate");
|
||||
this->pipeline = vk.shaders.getPipeline(vk.device, "p_generate");
|
||||
this->samplers.at(0) = vk.resources.getSampler(vk.device);
|
||||
this->samplers.at(1) = vk.resources.getSampler(vk.device,
|
||||
VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, VK_COMPARE_OP_ALWAYS);
|
||||
|
|
|
|||
|
|
@ -15,12 +15,12 @@ Mipmaps::Mipmaps(Vulkan& vk,
|
|||
Core::Image inImg_0, Core::Image inImg_1)
|
||||
: inImg_0(std::move(inImg_0)), inImg_1(std::move(inImg_1)) {
|
||||
// create resources
|
||||
this->shaderModule = vk.shaders.getShader(vk.device, "mipmaps",
|
||||
this->shaderModule = vk.shaders.getShader(vk.device, "p_mipmaps",
|
||||
{ { 1, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLER },
|
||||
{ 1, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE },
|
||||
{ 7, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE } });
|
||||
this->pipeline = vk.shaders.getPipeline(vk.device, "mipmaps");
|
||||
this->pipeline = vk.shaders.getPipeline(vk.device, "p_mipmaps");
|
||||
this->buffer = vk.resources.getBuffer(vk.device);
|
||||
this->sampler = vk.resources.getSampler(vk.device);
|
||||
for (size_t i = 0; i < 2; i++)
|
||||
|
|
|
|||
|
|
@ -14,31 +14,57 @@
|
|||
using namespace Extract;
|
||||
|
||||
const std::unordered_map<std::string, uint32_t> nameHashTable = {{
|
||||
{ "p_mipmaps", 0xe365474d },
|
||||
{ "p_alpha[0]", 0x0bf6c705 },
|
||||
{ "p_alpha[1]", 0x4badbc24 },
|
||||
{ "p_alpha[2]", 0x08a0f71c },
|
||||
{ "p_alpha[3]", 0x5cc4d794 },
|
||||
{ "p_beta[0]", 0x598efc9c },
|
||||
{ "p_beta[1]", 0x17e25e8d },
|
||||
{ "p_beta[2]", 0x6b8971f7 },
|
||||
{ "p_beta[3]", 0x80a351c9 },
|
||||
{ "p_beta[4]", 0xda0fcd5a },
|
||||
{ "p_gamma[0]", 0x9dae0419 },
|
||||
{ "p_gamma[1]", 0x96285646 },
|
||||
{ "p_gamma[2]", 0xca44bb67 },
|
||||
{ "p_gamma[3]", 0xa942fb59 },
|
||||
{ "p_gamma[4]", 0x31996b8d },
|
||||
{ "p_delta[0]", 0x9dae0419 },
|
||||
{ "p_delta[1]", 0x67912aaa },
|
||||
{ "p_delta[2]", 0xec138d48 },
|
||||
{ "p_delta[3]", 0xdcb8247f },
|
||||
{ "p_delta[4]", 0xd37c9bc8 },
|
||||
{ "p_delta[5]", 0x62973dce },
|
||||
{ "p_delta[6]", 0xe2ed5f66 },
|
||||
{ "p_delta[7]", 0xc964a42a },
|
||||
{ "p_delta[8]", 0x74536ad9 },
|
||||
{ "p_delta[9]", 0xf472482a },
|
||||
{ "p_generate", 0x5c040bd5 },
|
||||
{ "mipmaps", 0xe365474d },
|
||||
{ "alpha[0]", 0x0bf6c705 },
|
||||
{ "alpha[1]", 0x4badbc24 },
|
||||
{ "alpha[2]", 0x08a0f71c },
|
||||
{ "alpha[3]", 0x5cc4d794 },
|
||||
{ "beta[0]", 0x598efc9c },
|
||||
{ "beta[1]", 0x17e25e8d },
|
||||
{ "beta[2]", 0x6b8971f7 },
|
||||
{ "beta[3]", 0x80a351c9 },
|
||||
{ "beta[4]", 0xda0fcd5a },
|
||||
{ "gamma[0]", 0x9dae0419 },
|
||||
{ "gamma[1]", 0x96285646 },
|
||||
{ "gamma[2]", 0xca44bb67 },
|
||||
{ "gamma[3]", 0xa942fb59 },
|
||||
{ "gamma[4]", 0x31996b8d },
|
||||
{ "delta[0]", 0x9dae0419 },
|
||||
{ "delta[1]", 0x67912aaa },
|
||||
{ "delta[2]", 0xec138d48 },
|
||||
{ "delta[3]", 0xdcb8247f },
|
||||
{ "delta[4]", 0xd37c9bc8 },
|
||||
{ "delta[5]", 0x62973dce },
|
||||
{ "delta[6]", 0xe2ed5f66 },
|
||||
{ "delta[7]", 0xc964a42a },
|
||||
{ "delta[8]", 0x74536ad9 },
|
||||
{ "delta[9]", 0xf472482a },
|
||||
{ "alpha[0]", 0xf37c8aa8 },
|
||||
{ "alpha[1]", 0xeb7a52d4 },
|
||||
{ "alpha[2]", 0x8901788e },
|
||||
{ "alpha[3]", 0xa06a5e36 },
|
||||
{ "beta[0]", 0x63c16b89 },
|
||||
{ "beta[1]", 0xe3967ed5 },
|
||||
{ "beta[2]", 0x570085ee },
|
||||
{ "beta[3]", 0x4f4530db },
|
||||
{ "beta[4]", 0x39727389 },
|
||||
{ "gamma[0]", 0x94c4edf6 },
|
||||
{ "gamma[1]", 0xf4e32702 },
|
||||
{ "gamma[2]", 0xa3dc56fc },
|
||||
{ "gamma[3]", 0x8b5ed8f6 },
|
||||
{ "gamma[4]", 0x1cbf3c4d },
|
||||
{ "delta[0]", 0x94c4edf6 },
|
||||
{ "delta[1]", 0xacfd805b },
|
||||
{ "delta[2]", 0x891dc48b },
|
||||
{ "delta[3]", 0x98536d9d },
|
||||
{ "delta[4]", 0x8e3f2155 },
|
||||
{ "delta[5]", 0x8f0e70a1 },
|
||||
{ "delta[6]", 0xd5eca8f1 },
|
||||
{ "delta[7]", 0xa9e54e37 },
|
||||
{ "delta[8]", 0x1dee8b84 },
|
||||
{ "delta[9]", 0x1576c3f5 },
|
||||
{ "generate", 0x5c040bd5 }
|
||||
}};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue