@@ -89,7 +89,7 @@ namespace nbl::video
89
89
90
90
// Add Refs of BuildInfo to CmdPool
91
91
auto tmp = getBuildGeometryInfoReferences (infos[i]);
92
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
92
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
93
93
vulkanCommandPool->emplace_n (m_argListTail, tmp.data (), tmp.data () + tmp.size ());
94
94
}
95
95
@@ -149,7 +149,7 @@ namespace nbl::video
149
149
150
150
// Add Refs of BuildInfo to CmdPool
151
151
auto tmp = getBuildGeometryInfoReferences (infos[i]);
152
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
152
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
153
153
vulkanCommandPool->emplace_n (m_argListTail, tmp.data (), tmp.data () + tmp.size ());
154
154
}
155
155
@@ -182,7 +182,7 @@ namespace nbl::video
182
182
core::smart_refctd_ptr<const IGPUAccelerationStructure>(copyInfo.src ),
183
183
core::smart_refctd_ptr<const IGPUAccelerationStructure>(copyInfo.dst ),
184
184
};
185
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
185
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
186
186
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 2 );
187
187
188
188
@@ -215,7 +215,7 @@ namespace nbl::video
215
215
copyInfo.dst .buffer ,
216
216
core::smart_refctd_ptr<const IGPUAccelerationStructure>(copyInfo.src ),
217
217
};
218
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
218
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
219
219
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 2 );
220
220
221
221
VkCopyAccelerationStructureToMemoryInfoKHR info = CVulkanAccelerationStructure::getVkASCopyToMemoryInfo (vk_device, vk, copyInfo);
@@ -247,7 +247,7 @@ namespace nbl::video
247
247
copyInfo.src .buffer ,
248
248
core::smart_refctd_ptr<const IGPUAccelerationStructure>(copyInfo.dst ),
249
249
};
250
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
250
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
251
251
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 2 );
252
252
253
253
VkCopyMemoryToAccelerationStructureInfoKHR info = CVulkanAccelerationStructure::getVkASCopyFromMemoryInfo (vk_device, vk, copyInfo);
@@ -266,10 +266,10 @@ namespace nbl::video
266
266
267
267
// Add Ref to CmdPool
268
268
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[1 ] = { core::smart_refctd_ptr<const IQueryPool>(queryPool) };
269
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
269
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
270
270
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 1 );
271
271
272
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
272
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
273
273
vk->vk .vkCmdResetQueryPool (m_cmdbuf, vk_queryPool, firstQuery, queryCount);
274
274
ret = true ;
275
275
}
@@ -285,10 +285,10 @@ namespace nbl::video
285
285
286
286
// Add Ref to CmdPool
287
287
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[1 ] = { core::smart_refctd_ptr<const IQueryPool>(queryPool) };
288
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
288
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
289
289
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 1 );
290
290
291
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
291
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
292
292
auto vk_flags = CVulkanQueryPool::getVkQueryControlFlagsFromQueryControlFlags (flags);
293
293
vk->vk .vkCmdBeginQuery (m_cmdbuf, vk_queryPool, query, vk_flags);
294
294
ret = true ;
@@ -305,10 +305,10 @@ namespace nbl::video
305
305
306
306
// Add Ref to CmdPool
307
307
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[1 ] = { core::smart_refctd_ptr<const IQueryPool>(queryPool) };
308
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
308
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
309
309
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 1 );
310
310
311
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
311
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
312
312
vk->vk .vkCmdEndQuery (m_cmdbuf, vk_queryPool, query);
313
313
ret = true ;
314
314
}
@@ -328,11 +328,11 @@ namespace nbl::video
328
328
core::smart_refctd_ptr<const IQueryPool>(queryPool),
329
329
core::smart_refctd_ptr<const buffer_t >(dstBuffer),
330
330
};
331
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
331
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
332
332
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 2 );
333
333
334
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
335
- auto vk_dstBuffer = static_cast <CVulkanBuffer*>(dstBuffer)->getInternalObject ();
334
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
335
+ auto vk_dstBuffer = IBackendObject::compatibility_cast <CVulkanBuffer*>(dstBuffer, this )->getInternalObject ();
336
336
auto vk_queryResultsFlags = CVulkanQueryPool::getVkQueryResultsFlagsFromQueryResultsFlags (flags);
337
337
vk->vk .vkCmdCopyQueryPoolResults (m_cmdbuf, vk_queryPool, firstQuery, queryCount, vk_dstBuffer, dstOffset, static_cast <VkDeviceSize>(stride), vk_queryResultsFlags);
338
338
ret = true ;
@@ -349,10 +349,10 @@ namespace nbl::video
349
349
350
350
// Add Ref to CmdPool
351
351
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[1 ] = { core::smart_refctd_ptr<const IQueryPool>(queryPool) };
352
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
352
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
353
353
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 1 );
354
354
355
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
355
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
356
356
auto vk_pipelineStage = static_cast <VkPipelineStageFlagBits>(pipelineStage); // am I doing this right?
357
357
358
358
vk->vk .vkCmdWriteTimestamp (m_cmdbuf, vk_pipelineStage, vk_queryPool, query);
@@ -372,10 +372,10 @@ namespace nbl::video
372
372
373
373
// Add Ref to CmdPool
374
374
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[1 ] = { core::smart_refctd_ptr<const IQueryPool>(queryPool) };
375
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
375
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
376
376
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 1 );
377
377
378
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
378
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
379
379
auto vk_flags = CVulkanQueryPool::getVkQueryControlFlagsFromQueryControlFlags (flags);
380
380
vk->vk .vkCmdBeginQueryIndexedEXT (m_cmdbuf, vk_queryPool, query, vk_flags, index);
381
381
ret = true ;
@@ -393,10 +393,10 @@ namespace nbl::video
393
393
394
394
// Add Ref to CmdPool
395
395
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[1 ] = { core::smart_refctd_ptr<const IQueryPool>(queryPool) };
396
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
396
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
397
397
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 1 );
398
398
399
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
399
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
400
400
vk->vk .vkCmdEndQueryIndexedEXT (m_cmdbuf, vk_queryPool, query, index);
401
401
ret = true ;
402
402
}
@@ -409,11 +409,10 @@ namespace nbl::video
409
409
bool ret = false ;
410
410
if (queryPool != nullptr && pAccelerationStructures.empty () == false )
411
411
{
412
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
412
+ CVulkanCommandPool* vulkanCommandPool = IBackendObject::compatibility_cast <CVulkanCommandPool*>(m_cmdpool.get (), this );
413
413
{
414
414
// Add Ref to CmdPool
415
415
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[1 ] = { core::smart_refctd_ptr<const IQueryPool>(queryPool) };
416
- CVulkanCommandPool* vulkanCommandPool = static_cast <CVulkanCommandPool*>(m_cmdpool.get ());
417
416
vulkanCommandPool->emplace_n (m_argListTail, tmpRefCntd, tmpRefCntd + 1 );
418
417
}
419
418
@@ -427,7 +426,7 @@ namespace nbl::video
427
426
core::smart_refctd_ptr<const core::IReferenceCounted> tmpRefCntd[MaxAccelerationStructureCount];
428
427
for (size_t i = 0 ; i < asCount; ++i)
429
428
{
430
- vk_accelerationStructures[i] = static_cast <CVulkanAccelerationStructure*>(&accelerationStructures[i])->getInternalObject ();
429
+ vk_accelerationStructures[i] = IBackendObject::compatibility_cast <CVulkanAccelerationStructure*>(&accelerationStructures[i], this )->getInternalObject ();
431
430
// Add Refs to CmdPool
432
431
tmpRefCntd[i] = core::smart_refctd_ptr<const IGPUAccelerationStructure>(&accelerationStructures[i]);
433
432
}
@@ -436,7 +435,7 @@ namespace nbl::video
436
435
437
436
const auto * vk = static_cast <const CVulkanLogicalDevice*>(getOriginDevice ())->getFunctionTable ();
438
437
439
- auto vk_queryPool = static_cast <CVulkanQueryPool*>(queryPool)->getInternalObject ();
438
+ auto vk_queryPool = IBackendObject::compatibility_cast <CVulkanQueryPool*>(queryPool, this )->getInternalObject ();
440
439
auto vk_queryType = CVulkanQueryPool::getVkQueryTypeFromQueryType (queryType);
441
440
vk->vk .vkCmdWriteAccelerationStructuresPropertiesKHR (m_cmdbuf, asCount, vk_accelerationStructures, vk_queryType, vk_queryPool, firstQuery);
442
441
ret = true ;
0 commit comments