Skip to content

Commit e740765

Browse files
committed
Fixes
1 parent 1579c34 commit e740765

File tree

1 file changed

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

1 file changed

+8
-7
lines changed

examples_tests/41.VisibilityBuffer/main.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ struct DrawIndexedIndirectInput
308308

309309
static constexpr asset::E_PRIMITIVE_TOPOLOGY mode = asset::EPT_TRIANGLE_LIST;
310310
static constexpr asset::E_INDEX_TYPE indexType = asset::EIT_16BIT;
311-
static constexpr size_t stride = sizeof(DrawElementsIndirectCommand_t);
311+
static constexpr size_t stride = 0ull;
312312
};
313313

314314
using Range_t = SRange<void, core::vector<ICPUMeshBuffer*>::iterator>;
@@ -373,7 +373,7 @@ void packMeshBuffers(video::IVideoDriver* driver, DrawData& drawData)
373373
MeshPacker::AllocationParams allocParams;
374374
allocParams.indexBuffSupportedCnt = 20000000u;
375375
allocParams.indexBufferMinAllocSize = 5000u;
376-
allocParams.vertexBuffSupportedSize = 200000000u;
376+
allocParams.vertexBuffSupportedSize = 80000000u;
377377
allocParams.vertexBufferMinAllocSize = 5000u;
378378
allocParams.MDIDataBuffSupportedCnt = 20000u;
379379
allocParams.MDIDataBuffMinAllocSize = 1u; //so structs are adjacent in memory
@@ -424,7 +424,7 @@ void packMeshBuffers(video::IVideoDriver* driver, DrawData& drawData)
424424

425425
core::vector<IMeshPackerBase::PackedMeshBufferData> pmbd(mdiCnt);
426426

427-
core::vector<MeshPacker::CombinedDataOffsetTable> cdot(offsetTableSz);
427+
core::vector<MeshPacker::CombinedDataOffsetTable> cdot(mdiCnt);
428428

429429
bool commitSuccessfull = mp.commit(pmbd.data(), cdot.data(), allocData->data() + drawData.pushConstantsData[i], mbRangeBegin, mbRangeEnd);
430430
if (!commitSuccessfull)
@@ -436,15 +436,16 @@ void packMeshBuffers(video::IVideoDriver* driver, DrawData& drawData)
436436
DrawIndexedIndirectInput mdiCallInput;
437437

438438
mdiCallInput.maxCount = mdiCnt;
439+
mdiCallInput.offset = pmbd[0].mdiParameterOffset * sizeof(DrawElementsIndirectCommand_t);
439440

440-
drawData.drawIndirectInput.push_back(std::move(mdiCallInput));
441+
drawData.drawIndirectInput.push_back(mdiCallInput);
441442

442443
//auto glsl = mp.generateGLSLBufferDefinitions(0u);
443444

444445
//setOffsetTables
445-
for (uint32_t i = 0u; i < mdiCnt; i++)
446+
for (uint32_t j = 0u; j < mdiCnt; j++)
446447
{
447-
MeshPacker::CombinedDataOffsetTable& virtualAttribTable = cdot[i];
448+
MeshPacker::CombinedDataOffsetTable& virtualAttribTable = cdot[j];
448449

449450
offsetTableLocal.push_back(virtualAttribTable.attribInfo[0]);
450451
offsetTableLocal.push_back(virtualAttribTable.attribInfo[2]);
@@ -851,7 +852,7 @@ int main()
851852

852853
//TODO: change it to vector of smart pointers
853854
core::vector<ICPUMeshBuffer*> meshBuffers;
854-
for (uint32_t i = 0u; i < 100; i++)
855+
for (uint32_t i = 0u; i < mesh_raw->getMeshBufferVector().size(); i++)
855856
meshBuffers.push_back(mesh_raw->getMeshBufferVector()[i].get());
856857

857858
DrawData drawData;

0 commit comments

Comments
 (0)