Skip to content

Commit 81e59d9

Browse files
more dumb stuff I forgot
1 parent 739c88e commit 81e59d9

File tree

1 file changed

+16
-8
lines changed
  • examples_tests/41.VisibilityBuffer

1 file changed

+16
-8
lines changed

examples_tests/41.VisibilityBuffer/main.cpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,12 @@ int main()
244244
params.subresourceRange.layerCount = 1u;
245245
return driver->createGPUImageView(std::move(params));
246246
};
247-
auto visbufferView = createImageView(createScreenSizedImage(EF_R32G32B32A32_UINT));
247+
auto depthBufferView = createImageView(createScreenSizedImage(EF_D32_SFLOAT));
248+
auto visBufferView = createImageView(createScreenSizedImage(EF_R32G32B32A32_UINT));
248249

249-
auto visbuffer = driver->addFrameBuffer();
250-
visbuffer->attach(EFAP_COLOR_ATTACHMENT0,smart_refctd_ptr(visbufferView));
250+
auto visBuffer = driver->addFrameBuffer();
251+
visBuffer->attach(EFAP_DEPTH_ATTACHMENT,smart_refctd_ptr(depthBufferView));
252+
visBuffer->attach(EFAP_COLOR_ATTACHMENT0,smart_refctd_ptr(visBufferView));
251253
auto fb = driver->addFrameBuffer();
252254
fb->attach(EFAP_COLOR_ATTACHMENT0,createImageView(smart_refctd_ptr(framebuffer)));
253255

@@ -314,7 +316,7 @@ int main()
314316
}
315317
{
316318
IGPUDescriptorSet::SDescriptorInfo infos[2];
317-
infos[0].desc = core::smart_refctd_ptr(visbufferView);
319+
infos[0].desc = core::smart_refctd_ptr(visBufferView);
318320
//infos[0].image.imageLayout = ?;
319321
infos[0].image.sampler = nullptr; // used immutable in the layout
320322
infos[1].desc = createImageView(std::move(framebuffer),EF_R8G8B8A8_UNORM);
@@ -598,6 +600,7 @@ int main()
598600
driver->updateDescriptorSets(writesVT.size(),writesVT.data(),0u,nullptr);
599601
}
600602
smart_refctd_ptr<IGPUDescriptorSetLayout> vgDSLayout;
603+
std::string extraCode;
601604
// msvc is incredibly dumb and complains about type mismatches in code sections guarded by if constexpr
602605
std::conditional_t<useSSBO,GPUMeshPacker::DSLayoutParamsSSBO,GPUMeshPacker::DSLayoutParamsUTB> tmp;
603606
[&](auto& layoutParams) -> void
@@ -657,15 +660,20 @@ int main()
657660
infos->buffer.size = batchDataSSBO->getSize();
658661
infos->desc = std::move(batchDataSSBO);
659662
infos++;
663+
664+
constexpr uint32_t vgDescriptorSetIx = 1u;
660665
if constexpr (useSSBO)
666+
{
667+
extraCode = gpump->getGLSLForSSBO(vgDescriptorSetIx,layoutParams);
661668
gpump->getDescriptorSetWritesForSSBO(writes,infos,sceneData.vgDS.get(),layoutParams);
669+
}
662670
else
671+
{
672+
extraCode = gpump->getGLSLForUTB(vgDescriptorSetIx, layoutParams);
663673
gpump->getDescriptorSetWritesForUTB(writes,infos,sceneData.vgDS.get(),layoutParams);
674+
}
664675
driver->updateDescriptorSets(writeCount,writesVG.data(),0u,nullptr);
665676
}(tmp);
666-
667-
//
668-
std::string extraCode = useSSBO ? gpump->getGLSLForSSBO():gpump->getGLSLForUTB();
669677
// TODO: sprintf(fragPrelude.data(), FRAGMENT_SHADER_OVERRIDES, sceneData.vt->getFloatViews().size(), sceneData.vt->getGLSLFunctionsIncludePath().c_str());
670678
auto overrideShaderJustAfterVersionDirective = [am,driver,extraCode](const char* path)
671679
{
@@ -757,7 +765,7 @@ int main()
757765

758766
// TODO: Cull MDIs
759767

760-
driver->setRenderTarget(visbuffer);
768+
driver->setRenderTarget(visBuffer);
761769
driver->clearZBuffer();
762770
const uint32_t invalidObjectCode[4] = {~0u,0u,0u,0u};
763771
driver->clearColorBuffer(EFAP_COLOR_ATTACHMENT0,invalidObjectCode);

0 commit comments

Comments
 (0)