@@ -127,7 +127,7 @@ class MeshLoadersApp : public ApplicationBase
127127{
128128 static constexpr uint32_t WIN_W = 1280 ;
129129 static constexpr uint32_t WIN_H = 720 ;
130- static constexpr uint32_t FBO_COUNT = 1u ;
130+ static constexpr uint32_t FBO_COUNT = 2u ;
131131 static constexpr size_t NBL_FRAMES_TO_AVERAGE = 100ull ;
132132
133133public:
@@ -236,7 +236,7 @@ APP_CONSTRUCTOR(MeshLoadersApp)
236236 const auto swapchainImageUsage = static_cast <asset::IImage::E_USAGE_FLAGS>(asset::IImage::EUF_COLOR_ATTACHMENT_BIT);
237237 const video::ISurface::SFormat surfaceFormat (asset::EF_R8G8B8A8_SRGB, asset::ECP_COUNT, asset::EOTF_UNKNOWN);
238238
239- CommonAPI::InitWithDefaultExt (initOutput, video::EAT_OPENGL_ES , " MeshLoaders" , WIN_W, WIN_H, FBO_COUNT, swapchainImageUsage, surfaceFormat, nbl::asset::EF_D32_SFLOAT);
239+ CommonAPI::InitWithDefaultExt (initOutput, video::EAT_VULKAN , " MeshLoaders" , WIN_W, WIN_H, FBO_COUNT, swapchainImageUsage, surfaceFormat, nbl::asset::EF_D32_SFLOAT);
240240 window = std::move (initOutput.window );
241241 gl = std::move (initOutput.apiConnection );
242242 surface = std::move (initOutput.surface );
@@ -288,12 +288,17 @@ APP_CONSTRUCTOR(MeshLoadersApp)
288288 }
289289
290290 auto cpuSSBOBuffer = core::make_smart_refctd_ptr<ICPUBuffer>(sizeof (SShaderStorageBufferObject));
291+ cpuSSBOBuffer->addUsageFlags (asset::IBuffer::EUF_STORAGE_BUFFER_BIT);
291292 triggerRandomSetup (reinterpret_cast <SShaderStorageBufferObject*>(cpuSSBOBuffer->getPointer ()));
292293 core::smart_refctd_ptr<video::IGPUBuffer> gpuSSBOBuffer;
293294 {
295+ cpu2gpuParams.beginCommandBuffers ();
296+
294297 auto gpu_array = cpu2gpu.getGPUObjectsFromAssets (&cpuSSBOBuffer, &cpuSSBOBuffer + 1 , cpu2gpuParams);
295298 if (!gpu_array || gpu_array->size () < 1u || !(*gpu_array)[0 ])
296299 assert (false );
300+
301+ cpu2gpuParams.waitForCreationToComplete (false );
297302
298303 auto gpuSSBOOffsetBufferPair = (*gpu_array)[0 ];
299304 gpuSSBOBuffer = core::smart_refctd_ptr<video::IGPUBuffer>(gpuSSBOOffsetBufferPair->getBuffer ());
@@ -370,7 +375,7 @@ APP_CONSTRUCTOR(MeshLoadersApp)
370375 primitiveAssemblyParams.primitiveType = EPT_POINT_LIST;
371376 asset::SRasterizationParams rasterizationParams;
372377
373- video::IGPUDescriptorSetLayout::SBinding gpuUboBinding;
378+ video::IGPUDescriptorSetLayout::SBinding gpuUboBinding = {} ;
374379 gpuUboBinding.count = 1u ;
375380 gpuUboBinding.binding = 0 ;
376381 gpuUboBinding.stageFlags = static_cast <asset::ICPUShader::E_SHADER_STAGE>(asset::ICPUShader::ESS_VERTEX | asset::ICPUShader::ESS_FRAGMENT);
@@ -384,7 +389,7 @@ APP_CONSTRUCTOR(MeshLoadersApp)
384389 video::IGPUBuffer::SCreationParams gpuUBOCreationParams;
385390 // gpuUBOCreationParams.size = sizeof(SBasicViewParameters);
386391 gpuUBOCreationParams.usage = asset::IBuffer::E_USAGE_FLAGS::EUF_UNIFORM_BUFFER_BIT;
387- gpuUBOCreationParams.sharingMode = asset::E_SHARING_MODE::ESM_CONCURRENT ;
392+ gpuUBOCreationParams.sharingMode = asset::E_SHARING_MODE::ESM_EXCLUSIVE ;
388393 gpuUBOCreationParams.queueFamilyIndexCount = 0u ;
389394 gpuUBOCreationParams.queueFamilyIndices = nullptr ;
390395
0 commit comments