don't override the previous shaders..

fixes #41
This commit is contained in:
PancakeTAS 2025-07-12 20:15:22 +02:00
parent 1576edcf1a
commit 260998cbf5
No known key found for this signature in database
8 changed files with 117 additions and 95 deletions

View file

@ -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;
};

View file

@ -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++)

View file

@ -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,

View file

@ -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,

View file

@ -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();

View file

@ -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);

View file

@ -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++)

View file

@ -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 }
}};