@@ -1253,28 +1253,27 @@ VkResult VKAPI_CALL vkAcquireNextImage2KHR(VkDevice device, const VkAcquireNextI
1253
1253
1254
1254
VkResult VKAPI_CALL vkQueueSubmit (VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, VkFence fence)
1255
1255
{
1256
+ assert (pSubmits != nullptr || submitCount == 0 );
1257
+
1256
1258
reshade::vulkan::device_impl *const device_impl = g_vulkan_devices.at (dispatch_key_from_handle (queue));
1257
1259
1258
1260
#if RESHADE_ADDON
1259
- if (submitCount != 0 )
1260
- {
1261
- assert (pSubmits != nullptr );
1261
+ reshade::vulkan::command_queue_impl *const queue_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_QUEUE>(queue);
1262
1262
1263
- reshade::vulkan::command_queue_impl *const queue_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_QUEUE>(queue);
1263
+ for (uint32_t i = 0 ; i < submitCount; ++i)
1264
+ {
1265
+ const VkSubmitInfo &submit_info = pSubmits[i];
1264
1266
1265
- for (uint32_t i = 0 ; i < submitCount ; ++i )
1267
+ for (uint32_t k = 0 ; k < submit_info. commandBufferCount ; ++k )
1266
1268
{
1267
- for (uint32_t k = 0 ; k < pSubmits[i].commandBufferCount ; ++k)
1268
- {
1269
- assert (pSubmits[i].pCommandBuffers [k] != VK_NULL_HANDLE);
1269
+ assert (submit_info.pCommandBuffers [k] != VK_NULL_HANDLE);
1270
1270
1271
- reshade::vulkan::command_list_impl *const cmd_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_COMMAND_BUFFER>(pSubmits[i] .pCommandBuffers [k]);
1271
+ reshade::vulkan::command_list_impl *const cmd_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_COMMAND_BUFFER>(submit_info .pCommandBuffers [k]);
1272
1272
1273
- reshade::invoke_addon_event<reshade::addon_event::execute_command_list>(queue_impl, cmd_impl);
1274
- }
1273
+ reshade::invoke_addon_event<reshade::addon_event::execute_command_list>(queue_impl, cmd_impl);
1275
1274
}
1276
1275
1277
- queue_impl->flush_immediate_command_list ();
1276
+ queue_impl->flush_immediate_command_list (const_cast <VkSubmitInfo &>(submit_info) );
1278
1277
}
1279
1278
#endif
1280
1279
@@ -1283,25 +1282,24 @@ VkResult VKAPI_CALL vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkS
1283
1282
}
1284
1283
VkResult VKAPI_CALL vkQueueSubmit2 (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 *pSubmits, VkFence fence)
1285
1284
{
1285
+ assert (pSubmits != nullptr || submitCount == 0 );
1286
+
1286
1287
reshade::vulkan::device_impl *const device_impl = g_vulkan_devices.at (dispatch_key_from_handle (queue));
1287
1288
1288
1289
#if RESHADE_ADDON
1289
- if (submitCount != 0 )
1290
- {
1291
- assert (pSubmits != nullptr );
1290
+ reshade::vulkan::command_queue_impl *const queue_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_QUEUE>(queue);
1292
1291
1293
- reshade::vulkan::command_queue_impl *const queue_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_QUEUE>(queue);
1292
+ for (uint32_t i = 0 ; i < submitCount; ++i)
1293
+ {
1294
+ const VkSubmitInfo2 &submit_info = pSubmits[i];
1294
1295
1295
- for (uint32_t i = 0 ; i < submitCount ; ++i )
1296
+ for (uint32_t k = 0 ; k < submit_info. commandBufferInfoCount ; ++k )
1296
1297
{
1297
- for (uint32_t k = 0 ; k < pSubmits[i].commandBufferInfoCount ; ++k)
1298
- {
1299
- assert (pSubmits[i].pCommandBufferInfos [k].commandBuffer != VK_NULL_HANDLE);
1298
+ assert (submit_info.pCommandBufferInfos [k].commandBuffer != VK_NULL_HANDLE);
1300
1299
1301
- reshade::vulkan::command_list_impl *const cmd_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_COMMAND_BUFFER>(pSubmits[i] .pCommandBufferInfos [k].commandBuffer );
1300
+ reshade::vulkan::command_list_impl *const cmd_impl = device_impl->get_private_data_for_object <VK_OBJECT_TYPE_COMMAND_BUFFER>(submit_info .pCommandBufferInfos [k].commandBuffer );
1302
1301
1303
- reshade::invoke_addon_event<reshade::addon_event::execute_command_list>(queue_impl, cmd_impl);
1304
- }
1302
+ reshade::invoke_addon_event<reshade::addon_event::execute_command_list>(queue_impl, cmd_impl);
1305
1303
}
1306
1304
1307
1305
queue_impl->flush_immediate_command_list ();
0 commit comments