Skip to content

Commit cb46ef6

Browse files
committed
Some Fixes for Example 53
1 parent 04a156d commit cb46ef6

File tree

1 file changed

+9
-4
lines changed
  • examples_tests/53.ComputeShaders

1 file changed

+9
-4
lines changed

examples_tests/53.ComputeShaders/main.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

133133
public:
@@ -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

Comments
 (0)