@@ -451,47 +451,51 @@ int run_test_with_two_queue(
451451 ROUND_UP (vkImage2D.getSize (),
452452 vkImage2D.getAlignment ());
453453 }
454- VulkanImage2DList vkImage2DList (
455- num2DImages, vkDevice, vkFormat, width, height,
456- *vulkanImageTiling, numMipLevels,
457- vkExternalMemoryHandleType);
454+ std::unique_ptr<VulkanImage2DList> vkImage2DList{
455+ new VulkanImage2DList (
456+ num2DImages, vkDevice, vkFormat, width,
457+ height, *vulkanImageTiling, numMipLevels,
458+ vkExternalMemoryHandleType)
459+ };
458460 for (size_t bIdx = 0 ; bIdx < num2DImages; bIdx++)
459461 {
460462 vkImage2DListDeviceMemory1.push_back (
461463 new VulkanDeviceMemory (
462- vkDevice, vkImage2DList[bIdx],
464+ vkDevice, (* vkImage2DList) [bIdx],
463465 memoryType,
464466 vkExternalMemoryHandleType));
465467 vkImage2DListDeviceMemory1[bIdx]->bindImage (
466- vkImage2DList[bIdx], 0 );
468+ (* vkImage2DList) [bIdx], 0 );
467469 externalMemory1.push_back (
468470 new clExternalMemoryImage (
469471 *vkImage2DListDeviceMemory1[bIdx],
470472 vkExternalMemoryHandleType, context,
471473 totalImageMemSize, width, height, 0 ,
472- vkImage2DList[bIdx], deviceId));
474+ (* vkImage2DList) [bIdx], deviceId));
473475 }
474476 VulkanImageViewList vkImage2DViewList (
475- vkDevice, vkImage2DList);
476- VulkanImage2DList vkImage2DList2 (
477- num2DImages, vkDevice, vkFormat, width, height,
478- *vulkanImageTiling, numMipLevels,
479- vkExternalMemoryHandleType);
477+ vkDevice, (*vkImage2DList));
478+ std::unique_ptr<VulkanImage2DList> vkImage2DList2{
479+ new VulkanImage2DList (
480+ num2DImages, vkDevice, vkFormat, width,
481+ height, *vulkanImageTiling, numMipLevels,
482+ vkExternalMemoryHandleType)
483+ };
480484 for (size_t bIdx = 0 ; bIdx < num2DImages; bIdx++)
481485 {
482486 vkImage2DListDeviceMemory2.push_back (
483487 new VulkanDeviceMemory (
484- vkDevice, vkImage2DList2[bIdx],
488+ vkDevice, (* vkImage2DList2) [bIdx],
485489 memoryType,
486490 vkExternalMemoryHandleType));
487491 vkImage2DListDeviceMemory2[bIdx]->bindImage (
488- vkImage2DList2[bIdx], 0 );
492+ (* vkImage2DList2) [bIdx], 0 );
489493 externalMemory2.push_back (
490494 new clExternalMemoryImage (
491495 *vkImage2DListDeviceMemory2[bIdx],
492496 vkExternalMemoryHandleType, context,
493497 totalImageMemSize, width, height, 0 ,
494- vkImage2DList2[bIdx], deviceId));
498+ (* vkImage2DList2) [bIdx], deviceId));
495499 }
496500
497501 cl_mem external_mem_image1[5 ];
@@ -517,18 +521,18 @@ int run_test_with_two_queue(
517521 vkImage2DViewList);
518522 vkCopyCommandBuffer.begin ();
519523 vkCopyCommandBuffer.pipelineBarrier (
520- vkImage2DList,
524+ (* vkImage2DList) ,
521525 VULKAN_IMAGE_LAYOUT_UNDEFINED,
522526 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
523527 for (size_t i2DIdx = 0 ;
524- i2DIdx < vkImage2DList. size (); i2DIdx++)
528+ i2DIdx < vkImage2DList-> size (); i2DIdx++)
525529 {
526530 vkCopyCommandBuffer.copyBufferToImage (
527- vkSrcBuffer, vkImage2DList[i2DIdx],
531+ vkSrcBuffer, (* vkImage2DList) [i2DIdx],
528532 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
529533 }
530534 vkCopyCommandBuffer.pipelineBarrier (
531- vkImage2DList,
535+ (* vkImage2DList) ,
532536 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
533537 VULKAN_IMAGE_LAYOUT_GENERAL);
534538 vkCopyCommandBuffer.end ();
@@ -554,22 +558,23 @@ int run_test_with_two_queue(
554558 if (useSingleImageKernel)
555559 {
556560 for (size_t i2DIdx = 0 ;
557- i2DIdx < vkImage2DList. size ();
561+ i2DIdx < vkImage2DList-> size ();
558562 i2DIdx++)
559563 {
560564 vkDescriptorSet.update (
561565 1 , vkImage2DViewList[i2DIdx]);
562566 vkCopyCommandBuffer.begin ();
563567 vkCopyCommandBuffer.pipelineBarrier (
564- vkImage2DList,
568+ (* vkImage2DList) ,
565569 VULKAN_IMAGE_LAYOUT_UNDEFINED,
566570 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
567571
568572 vkCopyCommandBuffer.copyBufferToImage (
569- vkSrcBuffer, vkImage2DList[i2DIdx],
573+ vkSrcBuffer,
574+ (*vkImage2DList)[i2DIdx],
570575 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
571576 vkCopyCommandBuffer.pipelineBarrier (
572- vkImage2DList,
577+ (* vkImage2DList) ,
573578 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
574579 VULKAN_IMAGE_LAYOUT_GENERAL);
575580 vkCopyCommandBuffer.end ();
@@ -591,7 +596,7 @@ int run_test_with_two_queue(
591596 / 2 ),
592597 1 );
593598 vkShaderCommandBuffer.end ();
594- if (i2DIdx < vkImage2DList. size () - 1 )
599+ if (i2DIdx < vkImage2DList-> size () - 1 )
595600 {
596601 vkQueue.submit (
597602 vkShaderCommandBuffer);
@@ -807,6 +812,8 @@ int run_test_with_two_queue(
807812 break ;
808813 }
809814 }
815+ vkImage2DList.reset (nullptr );
816+ vkImage2DList2.reset (nullptr );
810817 for (uint32_t i = 0 ; i < num2DImages; i++)
811818 {
812819 delete vkImage2DListDeviceMemory1[i];
@@ -1068,52 +1075,56 @@ int run_test_with_one_queue(
10681075 ROUND_UP (vkImage2D.getSize (),
10691076 vkImage2D.getAlignment ());
10701077 }
1071- VulkanImage2DList vkImage2DList (
1072- num2DImages, vkDevice, vkFormat, width, height,
1073- *vulkanImageTiling, numMipLevels,
1074- vkExternalMemoryHandleType);
1075- for (size_t bIdx = 0 ; bIdx < vkImage2DList.size ();
1078+ std::unique_ptr<VulkanImage2DList> vkImage2DList{
1079+ new VulkanImage2DList (
1080+ num2DImages, vkDevice, vkFormat, width,
1081+ height, *vulkanImageTiling, numMipLevels,
1082+ vkExternalMemoryHandleType)
1083+ };
1084+ for (size_t bIdx = 0 ; bIdx < vkImage2DList->size ();
10761085 bIdx++)
10771086 {
10781087 // Create list of Vulkan device memories and
10791088 // bind the list of Vulkan images.
10801089 vkImage2DListDeviceMemory1.push_back (
10811090 new VulkanDeviceMemory (
1082- vkDevice, vkImage2DList[bIdx],
1091+ vkDevice, (* vkImage2DList) [bIdx],
10831092 memoryType,
10841093 vkExternalMemoryHandleType));
10851094 vkImage2DListDeviceMemory1[bIdx]->bindImage (
1086- vkImage2DList[bIdx], 0 );
1095+ (* vkImage2DList) [bIdx], 0 );
10871096 externalMemory1.push_back (
10881097 new clExternalMemoryImage (
10891098 *vkImage2DListDeviceMemory1[bIdx],
10901099 vkExternalMemoryHandleType, context,
10911100 totalImageMemSize, width, height, 0 ,
1092- vkImage2DList[bIdx], deviceId));
1101+ (* vkImage2DList) [bIdx], deviceId));
10931102 }
10941103 VulkanImageViewList vkImage2DViewList (
1095- vkDevice, vkImage2DList);
1096-
1097- VulkanImage2DList vkImage2DList2 (
1098- num2DImages, vkDevice, vkFormat, width, height,
1099- *vulkanImageTiling, numMipLevels,
1100- vkExternalMemoryHandleType);
1101- for (size_t bIdx = 0 ; bIdx < vkImage2DList2.size ();
1104+ vkDevice, *vkImage2DList);
1105+
1106+ std::unique_ptr<VulkanImage2DList> vkImage2DList2{
1107+ new VulkanImage2DList (
1108+ num2DImages, vkDevice, vkFormat, width,
1109+ height, *vulkanImageTiling, numMipLevels,
1110+ vkExternalMemoryHandleType)
1111+ };
1112+ for (size_t bIdx = 0 ; bIdx < vkImage2DList2->size ();
11021113 bIdx++)
11031114 {
11041115 vkImage2DListDeviceMemory2.push_back (
11051116 new VulkanDeviceMemory (
1106- vkDevice, vkImage2DList2[bIdx],
1117+ vkDevice, (* vkImage2DList2) [bIdx],
11071118 memoryType,
11081119 vkExternalMemoryHandleType));
11091120 vkImage2DListDeviceMemory2[bIdx]->bindImage (
1110- vkImage2DList2[bIdx], 0 );
1121+ (* vkImage2DList2) [bIdx], 0 );
11111122 externalMemory2.push_back (
11121123 new clExternalMemoryImage (
11131124 *vkImage2DListDeviceMemory2[bIdx],
11141125 vkExternalMemoryHandleType, context,
11151126 totalImageMemSize, width, height, 0 ,
1116- vkImage2DList2[bIdx], deviceId));
1127+ (* vkImage2DList2) [bIdx], deviceId));
11171128 }
11181129
11191130 cl_mem external_mem_image1[4 ];
@@ -1139,18 +1150,18 @@ int run_test_with_one_queue(
11391150 vkImage2DViewList);
11401151 vkCopyCommandBuffer.begin ();
11411152 vkCopyCommandBuffer.pipelineBarrier (
1142- vkImage2DList,
1153+ * vkImage2DList,
11431154 VULKAN_IMAGE_LAYOUT_UNDEFINED,
11441155 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
11451156 for (size_t i2DIdx = 0 ;
1146- i2DIdx < vkImage2DList. size (); i2DIdx++)
1157+ i2DIdx < vkImage2DList-> size (); i2DIdx++)
11471158 {
11481159 vkCopyCommandBuffer.copyBufferToImage (
1149- vkSrcBuffer, vkImage2DList[i2DIdx],
1160+ vkSrcBuffer, (* vkImage2DList) [i2DIdx],
11501161 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
11511162 }
11521163 vkCopyCommandBuffer.pipelineBarrier (
1153- vkImage2DList,
1164+ (* vkImage2DList) ,
11541165 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
11551166 VULKAN_IMAGE_LAYOUT_GENERAL);
11561167 vkCopyCommandBuffer.end ();
@@ -1176,22 +1187,23 @@ int run_test_with_one_queue(
11761187 if (useSingleImageKernel)
11771188 {
11781189 for (size_t i2DIdx = 0 ;
1179- i2DIdx < vkImage2DList. size ();
1190+ i2DIdx < vkImage2DList-> size ();
11801191 i2DIdx++)
11811192 {
11821193 vkDescriptorSet.update (
11831194 1 , vkImage2DViewList[i2DIdx]);
11841195 vkCopyCommandBuffer.begin ();
11851196 vkCopyCommandBuffer.pipelineBarrier (
1186- vkImage2DList,
1197+ (* vkImage2DList) ,
11871198 VULKAN_IMAGE_LAYOUT_UNDEFINED,
11881199 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
11891200
11901201 vkCopyCommandBuffer.copyBufferToImage (
1191- vkSrcBuffer, vkImage2DList[i2DIdx],
1202+ vkSrcBuffer,
1203+ (*vkImage2DList)[i2DIdx],
11921204 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
11931205 vkCopyCommandBuffer.pipelineBarrier (
1194- vkImage2DList,
1206+ (* vkImage2DList) ,
11951207 VULKAN_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
11961208 VULKAN_IMAGE_LAYOUT_GENERAL);
11971209 vkCopyCommandBuffer.end ();
@@ -1213,7 +1225,7 @@ int run_test_with_one_queue(
12131225 / 2 ),
12141226 1 );
12151227 vkShaderCommandBuffer.end ();
1216- if (i2DIdx < vkImage2DList. size () - 1 )
1228+ if (i2DIdx < vkImage2DList-> size () - 1 )
12171229 {
12181230 vkQueue.submit (
12191231 vkShaderCommandBuffer);
@@ -1360,6 +1372,8 @@ int run_test_with_one_queue(
13601372 break ;
13611373 }
13621374 }
1375+ vkImage2DList.reset (nullptr );
1376+ vkImage2DList2.reset (nullptr );
13631377 for (uint32_t i = 0 ; i < num2DImages; i++)
13641378 {
13651379 delete vkImage2DListDeviceMemory1[i];
0 commit comments