Skip to content

Commit

Permalink
fix: fix vulkan validation errors
Browse files Browse the repository at this point in the history
  • Loading branch information
Silverlan committed Nov 17, 2023
1 parent c2b4b75 commit bdb9925
Show file tree
Hide file tree
Showing 15 changed files with 118 additions and 86 deletions.
4 changes: 2 additions & 2 deletions build_scripts/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -641,7 +641,7 @@ def execbuildscript(filepath):
if with_essential_client_modules:
add_pragma_module(
name="pr_prosper_vulkan",
commitSha="0b8ba03",
commitSha="a9b4bc9809e744cedbdcea88cb676d2ddc74f520",
repositoryUrl="https://github.com/Silverlan/pr_prosper_vulkan.git"
)

Expand Down Expand Up @@ -902,7 +902,7 @@ def download_addon(name,addonName,url,commitId=None):

curDir = os.getcwd()
if with_pfm:
download_addon("PFM","filmmaker","https://github.com/Silverlan/pfm.git","064294df36d459ce6bc6be2190a2aa9f87eb3c6b")
download_addon("PFM","filmmaker","https://github.com/Silverlan/pfm.git","39214f05720f2d76bc3e56e92ad79e3bffd60a4a")
download_addon("model editor","tool_model_editor","https://github.com/Silverlan/pragma_model_editor.git","362981334d7b2f023dbcb1a2d1972fdc843b15e7")

if with_vr:
Expand Down
4 changes: 2 additions & 2 deletions build_scripts/scripts/external_libs.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
get_submodule("mathutil","https://github.com/Silverlan/mathutil.git","24823c71714aebe103c784c5933ef467dd320b1f")
get_submodule("networkmanager","https://github.com/Silverlan/networkmanager.git","68d2f5c")
get_submodule("panima","https://github.com/Silverlan/panima.git","bef720d8a8b001b8f8b6df9c6151eece6926c516")
get_submodule("prosper","https://github.com/Silverlan/prosper.git","18fffa94a21dd3d83f0cea727b8b06108993ac1b")
get_submodule("prosper","https://github.com/Silverlan/prosper.git","302bf0ce3c0a230e81fbc5357f113c2d181e2a20")
get_submodule("sharedutils","https://github.com/Silverlan/sharedutils.git","b308d6261cce0ebb9b8f44be17e72ab917992b3f")
get_submodule("util_bsp","https://github.com/Silverlan/util_bsp.git","3c11053")
get_submodule("util_formatted_text","https://github.com/Silverlan/util_formatted_text.git","3bd9e2de37d0cb14bf8228fde5e25c97698e927b")
Expand All @@ -33,6 +33,6 @@
get_submodule("util_vmf","https://github.com/Silverlan/util_vmf.git","cdba99d")
get_submodule("util_zip","https://github.com/Silverlan/util_zip.git","63b2609")
get_submodule("vfilesystem","https://github.com/Silverlan/vfilesystem.git","f32d72c8869aa7db4b64d4e3fe04ddeeb15e89e1")
get_submodule("wgui","https://github.com/Silverlan/wgui.git","72487effcba714883170af3251ebb5c6531bf2d6")
get_submodule("wgui","https://github.com/Silverlan/wgui.git","d56e504ea44f13c0c32a95a2dfa75b251310b1b6")

os.chdir(curDir)
2 changes: 1 addition & 1 deletion build_scripts/scripts/modules.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
get_submodule("pr_audio_dummy","https://github.com/Silverlan/pr_audio_dummy.git","282dd1a")
get_submodule("pr_curl","https://github.com/Silverlan/pr_curl.git","150e9d0c3d5116745fb83a7da28eb32666125347")
get_submodule("pr_prosper_opengl","https://github.com/Silverlan/pr_prosper_opengl.git","a268347")
get_submodule("pr_prosper_vulkan","https://github.com/Silverlan/pr_prosper_vulkan.git","e67dbaa220c3a858de04dc3ec53e161311d87fa6")
get_submodule("pr_prosper_vulkan","https://github.com/Silverlan/pr_prosper_vulkan.git","a9b4bc9809e744cedbdcea88cb676d2ddc74f520")

os.chdir(curDir)
7 changes: 5 additions & 2 deletions core/client/src/c_engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1620,10 +1620,12 @@ void CEngine::Tick()
// If the window is being resized by the user, we don't want to update the resolution constantly,
// so we add a small delay
if(dt > std::chrono::milliseconds {250}) {
umath::set_flag(m_stateFlags, StateFlags::WindowSizeChanged, false);
auto &window = GetWindow();
auto size = window.GetGlfwWindow().GetSize();
OnResolutionChanged(size.x, size.y);
if(size.x > 0 && size.y > 0) { // If either size is 0, the window is probably minimized and we don't need to update.
umath::set_flag(m_stateFlags, StateFlags::WindowSizeChanged, false);
OnResolutionChanged(size.x, size.y);
}
}
}

Expand Down Expand Up @@ -1664,6 +1666,7 @@ void CEngine::OnResolutionChanged(uint32_t width, uint32_t height)
void CEngine::OnRenderResolutionChanged(uint32_t width, uint32_t height)
{
GetRenderContext().GetWindow().ReloadStagingRenderTarget();
umath::set_flag(m_stateFlags, StateFlags::FirstFrame, true);

auto &wgui = WGUI::GetInstance();
auto *baseEl = wgui.GetBaseElement();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ void CRendererPpGlowComponent::InitializeRenderTarget()
createInfo.width = cRenderer->GetPrepass().textureDepth->GetImage().GetWidth();
createInfo.height = cRenderer->GetPrepass().textureDepth->GetImage().GetHeight();
createInfo.format = prosper::Format::R16G16B16A16_SFloat;
createInfo.usage = prosper::ImageUsageFlags::SampledBit | prosper::ImageUsageFlags::ColorAttachmentBit | prosper::ImageUsageFlags::TransferDstBit;
createInfo.usage = prosper::ImageUsageFlags::SampledBit | prosper::ImageUsageFlags::ColorAttachmentBit | prosper::ImageUsageFlags::TransferSrcBit | prosper::ImageUsageFlags::TransferDstBit;
createInfo.postCreateLayout = prosper::ImageLayout::ShaderReadOnlyOptimal;

auto img = context.CreateImage(createInfo);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ void CRendererPpToneMappingComponent::DoRenderEffect(const util::DrawSceneInfo &
if(m_renderer->IsMultiSampled() == false) // The resolved images already have the correct layout
{
drawCmd->RecordImageBarrier(*srcImg, prosper::ImageLayout::ColorAttachmentOptimal, prosper::ImageLayout::ShaderReadOnlyOptimal);
drawCmd->RecordImageBarrier(*srcImgBloom, prosper::ImageLayout::ColorAttachmentOptimal, prosper::ImageLayout::ShaderReadOnlyOptimal);
// drawCmd->RecordImageBarrier(*srcImgBloom, prosper::ImageLayout::ColorAttachmentOptimal, prosper::ImageLayout::ShaderReadOnlyOptimal);
//.RecordImageBarrier(*(*drawCmd),**srcImgBloom,prosper::ImageLayout::ColorAttachmentOptimal,prosper::ImageLayout::ShaderReadOnlyOptimal);
// drawCmd->RecordImageBarrier(*srcImgGlow,prosper::ImageLayout::ColorAttachmentOptimal,prosper::ImageLayout::ShaderReadOnlyOptimal);
}
Expand Down Expand Up @@ -93,7 +93,7 @@ void CRendererPpToneMappingComponent::DoRenderEffect(const util::DrawSceneInfo &
}
if(m_renderer->IsMultiSampled() == false) {
drawCmd->RecordImageBarrier(*srcImg, prosper::ImageLayout::ShaderReadOnlyOptimal, prosper::ImageLayout::ColorAttachmentOptimal);
drawCmd->RecordImageBarrier(*srcImgBloom, prosper::ImageLayout::ShaderReadOnlyOptimal, prosper::ImageLayout::ColorAttachmentOptimal);
// drawCmd->RecordImageBarrier(*srcImgBloom, prosper::ImageLayout::ShaderReadOnlyOptimal, prosper::ImageLayout::ColorAttachmentOptimal);
//.RecordImageBarrier(*(*drawCmd),srcImgBloom,prosper::ImageLayout::ShaderReadOnlyOptimal,prosper::ImageLayout::ColorAttachmentOptimal);
// drawCmd->RecordImageBarrier(*srcImgGlow,prosper::ImageLayout::ShaderReadOnlyOptimal,prosper::ImageLayout::ColorAttachmentOptimal);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ std::shared_ptr<prosper::IImage> ShaderCubemap::CreateCubeMap(uint32_t width, ui
createInfo.memoryFeatures = prosper::MemoryFeatureFlags::GPUBulk;
createInfo.tiling = prosper::ImageTiling::Optimal;
createInfo.flags |= flags | prosper::util::ImageCreateInfo::Flags::Cubemap;
createInfo.usage = prosper::ImageUsageFlags::ColorAttachmentBit | prosper::ImageUsageFlags::SampledBit | prosper::ImageUsageFlags::TransferSrcBit;
createInfo.usage = prosper::ImageUsageFlags::ColorAttachmentBit | prosper::ImageUsageFlags::SampledBit | prosper::ImageUsageFlags::TransferSrcBit | prosper::ImageUsageFlags::TransferDstBit;
createInfo.postCreateLayout = prosper::ImageLayout::ShaderReadOnlyOptimal;

return c_engine->GetRenderContext().CreateImage(createInfo);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,15 +147,19 @@ void ShaderParticle2DBase::InitializeRenderPass(std::shared_ptr<prosper::IRender
{
auto sampleCount = GetSampleCount(GetBasePipelineIndex(pipelineIdx));
if(pipelineIdx != GetDepthPipelineIndex()) {
CreateCachedRenderPass<ShaderParticle2DBase>({{{RENDER_PASS_FORMAT, prosper::ImageLayout::ColorAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::ColorAttachmentOptimal},
{// Bloom Attachment
RENDER_PASS_FORMAT, prosper::ImageLayout::ColorAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::ColorAttachmentOptimal},
{RENDER_PASS_DEPTH_FORMAT, prosper::ImageLayout::DepthStencilAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::DepthStencilAttachmentOptimal}}},
outRenderPass, pipelineIdx);
prosper::util::RenderPassCreateInfo rpCreateInfo {
{{RENDER_PASS_FORMAT, prosper::ImageLayout::ColorAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::ColorAttachmentOptimal},
{RENDER_PASS_FORMAT, prosper::ImageLayout::ColorAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::ColorAttachmentOptimal}, // Bloom Attachment
{RENDER_PASS_DEPTH_FORMAT, prosper::ImageLayout::DepthStencilAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::DepthStencilAttachmentOptimal}},
};
rpCreateInfo.subPasses.push_back(prosper::util::RenderPassCreateInfo::SubPass {std::vector<std::size_t> {0ull, 1ull}, true});
CreateCachedRenderPass<ShaderParticle2DBase>(rpCreateInfo, outRenderPass, pipelineIdx);
}
else {
auto sampleCount = GetSampleCount(pipelineIdx);
prosper::util::RenderPassCreateInfo rpInfo {{pragma::ShaderPrepass::get_normal_render_pass_attachment_info(sampleCount), pragma::ShaderPrepass::get_depth_render_pass_attachment_info(sampleCount)}};
prosper::util::RenderPassCreateInfo rpInfo {
{pragma::ShaderPrepass::get_normal_render_pass_attachment_info(sampleCount), pragma::ShaderPrepass::get_depth_render_pass_attachment_info(sampleCount)},
};
CreateCachedRenderPass<ShaderPrepass>({rpInfo}, outRenderPass, pipelineIdx);
// Depth only
/*CreateCachedRenderPass<ShaderParticle2DBase>({{
Expand Down
32 changes: 19 additions & 13 deletions core/client/src/rendering/shaders/world/c_shader_glow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ extern DLLCLIENT CEngine *c_engine;
using namespace pragma;

decltype(ShaderGlow::DESCRIPTOR_SET_MATERIAL) ShaderGlow::DESCRIPTOR_SET_MATERIAL = {{prosper::DescriptorSetInfo::Binding {// Material settings
prosper::DescriptorType::UniformBuffer, prosper::ShaderStageFlags::VertexBit | prosper::ShaderStageFlags::FragmentBit | prosper::ShaderStageFlags::GeometryBit},
prosper::DescriptorType::UniformBuffer, prosper::ShaderStageFlags::VertexBit | prosper::ShaderStageFlags::FragmentBit | prosper::ShaderStageFlags::GeometryBit},
prosper::DescriptorSetInfo::Binding {// Albedo Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit},
prosper::DescriptorSetInfo::Binding {// Normal Map
Expand All @@ -52,21 +52,26 @@ decltype(ShaderGlow::DESCRIPTOR_SET_MATERIAL) ShaderGlow::DESCRIPTOR_SET_MATERIA
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}}};
static_assert(umath::to_integral(ShaderGlow::MaterialBinding::Count) == 10, "Number of bindings in material descriptor set does not match MaterialBinding enum count!");

decltype(ShaderGlow::DESCRIPTOR_SET_PBR) ShaderGlow::DESCRIPTOR_SET_PBR = {{prosper::DescriptorSetInfo::Binding {// Irradiance Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit},
prosper::DescriptorSetInfo::Binding {// Prefilter Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit},
prosper::DescriptorSetInfo::Binding {// BRDF Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}}};
decltype(ShaderGlow::DESCRIPTOR_SET_PBR) ShaderGlow::DESCRIPTOR_SET_PBR = {
{prosper::DescriptorSetInfo::Binding {// Irradiance Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit, prosper::PrDescriptorSetBindingFlags::Cubemap},
prosper::DescriptorSetInfo::Binding {// Prefilter Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit, prosper::PrDescriptorSetBindingFlags::Cubemap},
prosper::DescriptorSetInfo::Binding {// BRDF Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}},
};
ShaderGlow::ShaderGlow(prosper::IPrContext &context, const std::string &identifier, const std::string &vsShader, const std::string &fsShader, const std::string &gsShader) : ShaderGameWorldLightingPass {context, identifier, vsShader, fsShader, gsShader} {}
ShaderGlow::ShaderGlow(prosper::IPrContext &context, const std::string &identifier) : ShaderGlow {context, identifier, "world/vs_textured", "world/pbr/fs_glow"} {}

void ShaderGlow::InitializeRenderPass(std::shared_ptr<prosper::IRenderPass> &outRenderPass, uint32_t pipelineIdx)
{
auto sampleCount = GetSampleCount(pipelineIdx);
prosper::util::RenderPassCreateInfo rpCreateInfo {{{RENDER_PASS_FORMAT, prosper::ImageLayout::ColorAttachmentOptimal, prosper::AttachmentLoadOp::DontCare, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::ColorAttachmentOptimal},
{RENDER_PASS_DEPTH_FORMAT, prosper::ImageLayout::DepthStencilAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store /* depth values have already been written by prepass */, sampleCount, prosper::ImageLayout::DepthStencilAttachmentOptimal}}};
rpCreateInfo.subPasses.push_back(prosper::util::RenderPassCreateInfo::SubPass {std::vector<std::size_t> {0ull}, true});
prosper::util::RenderPassCreateInfo rpCreateInfo {
{{RENDER_PASS_FORMAT, prosper::ImageLayout::ColorAttachmentOptimal, prosper::AttachmentLoadOp::DontCare, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::ColorAttachmentOptimal},
{RENDER_PASS_FORMAT, prosper::ImageLayout::ColorAttachmentOptimal, prosper::AttachmentLoadOp::Clear, prosper::AttachmentStoreOp::Store, sampleCount, prosper::ImageLayout::ColorAttachmentOptimal}, // Bloom Attachment
{RENDER_PASS_DEPTH_FORMAT, prosper::ImageLayout::DepthStencilAttachmentOptimal, prosper::AttachmentLoadOp::Load, prosper::AttachmentStoreOp::Store /* depth values have already been written by prepass */, sampleCount, prosper::ImageLayout::DepthStencilAttachmentOptimal}},
};
rpCreateInfo.subPasses.push_back(prosper::util::RenderPassCreateInfo::SubPass {std::vector<std::size_t> {0ull, 1ull}, true});

CreateCachedRenderPass<ShaderScene>(rpCreateInfo, outRenderPass, pipelineIdx);
}
Expand Down Expand Up @@ -202,10 +207,11 @@ void ShaderGlow::OnPipelinesInitialized()
ShaderGameWorldLightingPass::OnPipelinesInitialized();
auto &context = c_engine->GetRenderContext();
m_defaultPbrDsg = context.CreateDescriptorSetGroup(pragma::ShaderGlow::DESCRIPTOR_SET_PBR);
auto &dummyTex = context.GetDummyCubemapTexture();
auto &dummyTex = context.GetDummyTexture();
auto &dummyCubemapTex = context.GetDummyCubemapTexture();
auto &ds = *m_defaultPbrDsg->GetDescriptorSet(0);
ds.SetBindingTexture(*dummyTex, umath::to_integral(PBRBinding::IrradianceMap));
ds.SetBindingTexture(*dummyTex, umath::to_integral(PBRBinding::PrefilterMap));
ds.SetBindingTexture(*dummyCubemapTex, umath::to_integral(PBRBinding::IrradianceMap));
ds.SetBindingTexture(*dummyCubemapTex, umath::to_integral(PBRBinding::PrefilterMap));
ds.SetBindingTexture(*dummyTex, umath::to_integral(PBRBinding::BRDFMap));
}
prosper::IDescriptorSet &ShaderGlow::GetDefaultPbrDescriptorSet() const { return *m_defaultPbrDsg->GetDescriptorSet(); }
Expand Down
21 changes: 12 additions & 9 deletions core/client/src/rendering/shaders/world/c_shader_pbr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,14 @@ decltype(ShaderPBR::DESCRIPTOR_SET_MATERIAL) ShaderPBR::DESCRIPTOR_SET_MATERIAL
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}}};
static_assert(umath::to_integral(ShaderPBR::MaterialBinding::Count) == 9, "Number of bindings in material descriptor set does not match MaterialBinding enum count!");

decltype(ShaderPBR::DESCRIPTOR_SET_PBR) ShaderPBR::DESCRIPTOR_SET_PBR = {{prosper::DescriptorSetInfo::Binding {// Irradiance Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit},
prosper::DescriptorSetInfo::Binding {// Prefilter Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit},
prosper::DescriptorSetInfo::Binding {// BRDF Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}}};
decltype(ShaderPBR::DESCRIPTOR_SET_PBR) ShaderPBR::DESCRIPTOR_SET_PBR = {
{prosper::DescriptorSetInfo::Binding {// Irradiance Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit, prosper::PrDescriptorSetBindingFlags::Cubemap},
prosper::DescriptorSetInfo::Binding {// Prefilter Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit, prosper::PrDescriptorSetBindingFlags::Cubemap},
prosper::DescriptorSetInfo::Binding {// BRDF Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}},
};
ShaderPBR::ShaderPBR(prosper::IPrContext &context, const std::string &identifier, const std::string &vsShader, const std::string &fsShader, const std::string &gsShader) : ShaderGameWorldLightingPass {context, identifier, vsShader, fsShader, gsShader} {}
ShaderPBR::ShaderPBR(prosper::IPrContext &context, const std::string &identifier) : ShaderPBR {context, identifier, "world/vs_textured", "world/pbr/fs_pbr"} {}

Expand Down Expand Up @@ -187,10 +189,11 @@ void ShaderPBR::OnPipelinesInitialized()
ShaderGameWorldLightingPass::OnPipelinesInitialized();
auto &context = c_engine->GetRenderContext();
m_defaultPbrDsg = context.CreateDescriptorSetGroup(pragma::ShaderPBR::DESCRIPTOR_SET_PBR);
auto &dummyTex = context.GetDummyCubemapTexture();
auto &dummyTex = context.GetDummyTexture();
auto &dummyCubemapTex = context.GetDummyCubemapTexture();
auto &ds = *m_defaultPbrDsg->GetDescriptorSet(0);
ds.SetBindingTexture(*dummyTex, umath::to_integral(PBRBinding::IrradianceMap));
ds.SetBindingTexture(*dummyTex, umath::to_integral(PBRBinding::PrefilterMap));
ds.SetBindingTexture(*dummyCubemapTex, umath::to_integral(PBRBinding::IrradianceMap));
ds.SetBindingTexture(*dummyCubemapTex, umath::to_integral(PBRBinding::PrefilterMap));
ds.SetBindingTexture(*dummyTex, umath::to_integral(PBRBinding::BRDFMap));
}
prosper::IDescriptorSet &ShaderPBR::GetDefaultPbrDescriptorSet() const { return *m_defaultPbrDsg->GetDescriptorSet(); }
Expand Down
5 changes: 3 additions & 2 deletions core/client/src/rendering/shaders/world/c_shader_prepass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ decltype(ShaderPrepassBase::VERTEX_ATTRIBUTE_UV) ShaderPrepassBase::VERTEX_ATTRI

decltype(ShaderPrepassBase::DESCRIPTOR_SET_INSTANCE) ShaderPrepassBase::DESCRIPTOR_SET_INSTANCE = {&ShaderEntity::DESCRIPTOR_SET_INSTANCE};
decltype(ShaderPrepassBase::DESCRIPTOR_SET_SCENE) ShaderPrepassBase::DESCRIPTOR_SET_SCENE = {&ShaderScene::DESCRIPTOR_SET_SCENE};
decltype(ShaderPrepassBase::DESCRIPTOR_SET_MATERIAL) ShaderPrepassBase::DESCRIPTOR_SET_MATERIAL = {{prosper::DescriptorSetInfo::Binding {// Skybox Map
prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}}};
decltype(ShaderPrepassBase::DESCRIPTOR_SET_MATERIAL) ShaderPrepassBase::DESCRIPTOR_SET_MATERIAL = {
{prosper::DescriptorSetInfo::Binding {prosper::DescriptorType::CombinedImageSampler, prosper::ShaderStageFlags::FragmentBit}},
};
decltype(ShaderPrepassBase::DESCRIPTOR_SET_RENDER_SETTINGS) ShaderPrepassBase::DESCRIPTOR_SET_RENDER_SETTINGS = {&ShaderScene::DESCRIPTOR_SET_RENDER_SETTINGS};

prosper::util::RenderPassCreateInfo::AttachmentInfo ShaderPrepassBase::get_depth_render_pass_attachment_info(prosper::SampleCountFlags sampleCount)
Expand Down
Loading

0 comments on commit bdb9925

Please sign in to comment.