@@ -127,7 +127,7 @@ class MeshLoadersApp : public ApplicationBase
127
127
{
128
128
static constexpr uint32_t WIN_W = 1280 ;
129
129
static constexpr uint32_t WIN_H = 720 ;
130
- static constexpr uint32_t FBO_COUNT = 1u ;
130
+ static constexpr uint32_t FBO_COUNT = 2u ;
131
131
static constexpr size_t NBL_FRAMES_TO_AVERAGE = 100ull ;
132
132
133
133
public:
@@ -236,7 +236,7 @@ APP_CONSTRUCTOR(MeshLoadersApp)
236
236
const auto swapchainImageUsage = static_cast <asset::IImage::E_USAGE_FLAGS>(asset::IImage::EUF_COLOR_ATTACHMENT_BIT);
237
237
const video::ISurface::SFormat surfaceFormat (asset::EF_R8G8B8A8_SRGB, asset::ECP_COUNT, asset::EOTF_UNKNOWN);
238
238
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);
240
240
window = std::move (initOutput.window );
241
241
gl = std::move (initOutput.apiConnection );
242
242
surface = std::move (initOutput.surface );
@@ -288,12 +288,17 @@ APP_CONSTRUCTOR(MeshLoadersApp)
288
288
}
289
289
290
290
auto cpuSSBOBuffer = core::make_smart_refctd_ptr<ICPUBuffer>(sizeof (SShaderStorageBufferObject));
291
+ cpuSSBOBuffer->addUsageFlags (asset::IBuffer::EUF_STORAGE_BUFFER_BIT);
291
292
triggerRandomSetup (reinterpret_cast <SShaderStorageBufferObject*>(cpuSSBOBuffer->getPointer ()));
292
293
core::smart_refctd_ptr<video::IGPUBuffer> gpuSSBOBuffer;
293
294
{
295
+ cpu2gpuParams.beginCommandBuffers ();
296
+
294
297
auto gpu_array = cpu2gpu.getGPUObjectsFromAssets (&cpuSSBOBuffer, &cpuSSBOBuffer + 1 , cpu2gpuParams);
295
298
if (!gpu_array || gpu_array->size () < 1u || !(*gpu_array)[0 ])
296
299
assert (false );
300
+
301
+ cpu2gpuParams.waitForCreationToComplete (false );
297
302
298
303
auto gpuSSBOOffsetBufferPair = (*gpu_array)[0 ];
299
304
gpuSSBOBuffer = core::smart_refctd_ptr<video::IGPUBuffer>(gpuSSBOOffsetBufferPair->getBuffer ());
@@ -370,7 +375,7 @@ APP_CONSTRUCTOR(MeshLoadersApp)
370
375
primitiveAssemblyParams.primitiveType = EPT_POINT_LIST;
371
376
asset::SRasterizationParams rasterizationParams;
372
377
373
- video::IGPUDescriptorSetLayout::SBinding gpuUboBinding;
378
+ video::IGPUDescriptorSetLayout::SBinding gpuUboBinding = {} ;
374
379
gpuUboBinding.count = 1u ;
375
380
gpuUboBinding.binding = 0 ;
376
381
gpuUboBinding.stageFlags = static_cast <asset::ICPUShader::E_SHADER_STAGE>(asset::ICPUShader::ESS_VERTEX | asset::ICPUShader::ESS_FRAGMENT);
@@ -384,7 +389,7 @@ APP_CONSTRUCTOR(MeshLoadersApp)
384
389
video::IGPUBuffer::SCreationParams gpuUBOCreationParams;
385
390
// gpuUBOCreationParams.size = sizeof(SBasicViewParameters);
386
391
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 ;
388
393
gpuUBOCreationParams.queueFamilyIndexCount = 0u ;
389
394
gpuUBOCreationParams.queueFamilyIndices = nullptr ;
390
395
0 commit comments