Add limit verification for two fields in Vulkan SC

Missing fields in VkPhysicalDeviceVulkanSC10Properties : maxCommandPoolCommandBuffers and maxCommandBufferSize.

New tests:
dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.*
dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.*

Removed tests:
dEQP-VKSC.api.device_init.create_instance_invalid_api_version

Affects tests:
dEQP-VKSC.api.info.vulkan1p2_limits_validation.general
dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.*.size_big.*

Components:
Framework VulkanSC

VK-GL-CTS Issue: 3491

Change-Id: I62328a8b7caa6f774bc733636910050fe594defd
diff --git a/android/cts/master/vksc-master/api.txt b/android/cts/master/vksc-master/api.txt
index baf21d8..59eea9b 100644
--- a/android/cts/master/vksc-master/api.txt
+++ b/android/cts/master/vksc-master/api.txt
@@ -2616,7 +2616,6 @@
 dEQP-VKSC.api.info.android.no_unknown_extensions
 dEQP-VKSC.api.info.android.no_layers
 dEQP-VKSC.api.device_init.create_instance_name_version
-dEQP-VKSC.api.device_init.create_instance_invalid_api_version
 dEQP-VKSC.api.device_init.create_instance_null_appinfo
 dEQP-VKSC.api.device_init.create_instance_unsupported_extensions
 dEQP-VKSC.api.device_init.create_instance_extension_name_abuse
diff --git a/android/cts/master/vksc-master/sc.txt b/android/cts/master/vksc-master/sc.txt
index 0d663a6..ea5f713 100644
--- a/android/cts/master/vksc-master/sc.txt
+++ b/android/cts/master/vksc-master/sc.txt
@@ -112,6 +112,42 @@
 dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_many.size_big.multiple_recording.allocated_size_2
 dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_many.size_big.multiple_recording.allocated_size_8
 dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_many.size_big.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_16
 dEQP-VKSC.sc.object_refresh.query_refreshable_objects
 dEQP-VKSC.sc.object_refresh.refresh_individual_objects
 dEQP-VKSC.sc.object_refresh.refresh_all_objects
diff --git a/external/vulkancts/README.md b/external/vulkancts/README.md
index f4b00f1..8acc6da 100644
--- a/external/vulkancts/README.md
+++ b/external/vulkancts/README.md
@@ -826,6 +826,10 @@
     Define minimum size of the command pool (in bytes) to use (Vulkan SC only)
 	default: '0'
 
+  --deqp-command-buffer-min-size=<value>
+    Define minimum size of the command buffer (in bytes) to use (Vulkan SC only)
+	default: '0'
+
   --deqp-command-default-size=<value>
     Define default single command size (in bytes) to use (Vulkan SC only)
 	default: '256'
diff --git a/external/vulkancts/framework/vulkan/vkPlatform.cpp b/external/vulkancts/framework/vulkan/vkPlatform.cpp
index 3b56daa..b10444a 100644
--- a/external/vulkancts/framework/vulkan/vkPlatform.cpp
+++ b/external/vulkancts/framework/vulkan/vkPlatform.cpp
@@ -185,7 +185,8 @@
 	, m_resourceInterface(resourceInterface)
 	, m_physicalDeviceVulkanSC10Properties(physicalDeviceVulkanSC10Properties)
 	, m_commandDefaultSize((VkDeviceSize)cmdLine.getCommandDefaultSize())
-	, m_commandBufferMinimumSize( de::max((VkDeviceSize)cmdLine.getCommandDefaultSize(), (VkDeviceSize)cmdLine.getCommandPoolMinSize()))
+	, m_commandBufferMinimumSize( de::max((VkDeviceSize)cmdLine.getCommandDefaultSize(), (VkDeviceSize)cmdLine.getCommandBufferMinSize()))
+	, m_commandPoolMinimumSize((VkDeviceSize)cmdLine.getCommandPoolMinSize())
 {
 	if(!cmdLine.isSubProcess())
 		m_falseMemory.resize(64u * 1024u * 1024u, 0u);
@@ -706,11 +707,13 @@
 	VkCommandPoolMemoryReservationCreateInfo	cpMemReservationCI;
 	if (chainedMemoryReservation == DE_NULL)
 	{
-		cpMemReservationCI	=
+		VkDeviceSize cmdPoolSize	= de::max(memC.maxCommandPoolReservedSize, m_commandPoolMinimumSize);
+		cmdPoolSize					= de::max(cmdPoolSize, memC.commandBufferCount * m_commandBufferMinimumSize);
+		cpMemReservationCI			=
 		{
 			VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO,			// VkStructureType		sType
 			DE_NULL,																// const void*			pNext
-			de::max(memC.maxCommandPoolReservedSize, m_commandBufferMinimumSize),	// VkDeviceSize			commandPoolReservedSize
+			de::max(cmdPoolSize , m_commandBufferMinimumSize),						// VkDeviceSize			commandPoolReservedSize
 			de::max(memC.commandBufferCount, 1u)									// uint32_t				commandPoolMaxCommandBuffers
 		};
 		cpMemReservationCI.pNext									= pCreateInfoCopy.pNext;
diff --git a/external/vulkancts/framework/vulkan/vkPlatform.hpp b/external/vulkancts/framework/vulkan/vkPlatform.hpp
index 0f5934b..3620248 100644
--- a/external/vulkancts/framework/vulkan/vkPlatform.hpp
+++ b/external/vulkancts/framework/vulkan/vkPlatform.hpp
@@ -338,6 +338,7 @@
 
 	VkDeviceSize																m_commandDefaultSize;
 	VkDeviceSize																m_commandBufferMinimumSize;
+	VkDeviceSize																m_commandPoolMinimumSize;
 };
 
 class DeinitDeviceDeleter : public Deleter<DeviceDriverSC>
diff --git a/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
index a4996cc..faf4605 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
@@ -210,6 +210,7 @@
 	return tcu::TestStatus(resultCollector.getResult(), resultCollector.getMessage());
 }
 
+#ifndef CTS_USES_VULKANSC
 tcu::TestStatus createInstanceWithInvalidApiVersionTest (Context& context)
 {
 	tcu::TestLog&				log						= context.getTestContext().getLog();
@@ -295,6 +296,7 @@
 
 	return tcu::TestStatus(resultCollector.getResult(), resultCollector.getMessage());
 }
+#endif // CTS_USES_VULKANSC
 
 tcu::TestStatus createInstanceWithNullApplicationInfoTest (Context& context)
 {
@@ -2239,7 +2241,9 @@
 	de::MovePtr<tcu::TestCaseGroup>	deviceInitializationTests (new tcu::TestCaseGroup(testCtx, "device_init", "Device Initialization Tests"));
 
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_name_version",					"", createInstanceTest);
+#ifndef CTS_USES_VULKANSC
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_invalid_api_version",				"", createInstanceWithInvalidApiVersionTest);
+#endif // CTS_USES_VULKANSC
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_null_appinfo",					"", createInstanceWithNullApplicationInfoTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_unsupported_extensions",			"", createInstanceWithUnsupportedExtensionsTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_extension_name_abuse",			"", createInstanceWithExtensionNameAbuseTest);
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index ab7274b..ff33d0d 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -914,6 +914,8 @@
 		{ PN(checkVulkanSC10Limit),						PN(vulkanSC10Properties.maxDescriptorSetLayoutBindings),										LIM_MIN_UINT32(64) },
 		{ PN(checkVulkanSC10Limit),						PN(vulkanSC10Properties.maxQueryFaultCount),													LIM_MIN_UINT32(16) },
 		{ PN(checkVulkanSC10Limit),						PN(vulkanSC10Properties.maxCallbackFaultCount),													LIM_MIN_UINT32(1) },
+		{ PN(checkVulkanSC10Limit),						PN(vulkanSC10Properties.maxCommandPoolCommandBuffers),											LIM_MIN_UINT32(256) },
+		{ PN(checkVulkanSC10Limit),						PN(vulkanSC10Properties.maxCommandBufferSize),													LIM_MIN_UINT32(1048576) },
 #endif // CTS_USES_VULKANSC
 	};
 
diff --git a/external/vulkancts/modules/vulkan/sc/vktCommandPoolMemoryReservationTests.cpp b/external/vulkancts/modules/vulkan/sc/vktCommandPoolMemoryReservationTests.cpp
index 5b0aaf6..3ece972 100644
--- a/external/vulkancts/modules/vulkan/sc/vktCommandPoolMemoryReservationTests.cpp
+++ b/external/vulkancts/modules/vulkan/sc/vktCommandPoolMemoryReservationTests.cpp
@@ -84,6 +84,9 @@
 	const DeviceInterface&					vk						= context.getDeviceInterface();
 	const deUint32							queueFamilyIndex		= context.getUniversalQueueFamilyIndex();
 
+	if ( testParams.commandBufferCount >  context.getDeviceVulkanSC10Properties().maxCommandPoolCommandBuffers )
+		TCU_THROW(NotSupportedError, "commandBufferCount is greater than maxCommandPoolCommandBuffers");
+
 	VkDeviceSize							commandPoolReservedSize	= 0u;
 	switch (testParams.commandPoolReservedSize)
 	{
@@ -96,6 +99,7 @@
 		default:
 			TCU_THROW(InternalError, "Unsupported commandPoolReservedSize value");
 	}
+	commandPoolReservedSize = de::max(commandPoolReservedSize, VkDeviceSize(testParams.commandBufferCount * context.getTestContext().getCommandLine().getCommandBufferMinSize()));
 
 	// Create command pool with declared size
 	// By connecting our own VkCommandPoolMemoryReservationCreateInfo we avoid getting unknown data from DeviceDriverSC::createCommandPoolHandlerNorm()
@@ -149,12 +153,13 @@
 			eventCount				= 1u;
 			break;
 		case CPS_BIG:
-			eventCount				= 64u;
+			eventCount				= 32u;
 			break;
 		default:
 			TCU_THROW(InternalError, "Unsupported commandPoolReservedSize value");
 	}
 	VkDeviceSize							commandPoolReservedSize	= de::max(VkDeviceSize(eventCount * context.getTestContext().getCommandLine().getCommandDefaultSize()), VkDeviceSize(context.getTestContext().getCommandLine().getCommandPoolMinSize()));
+	commandPoolReservedSize											= de::max(commandPoolReservedSize, VkDeviceSize(testParams.commandBufferCount * context.getTestContext().getCommandLine().getCommandBufferMinSize()));
 
 	// Create command pool with declared size
 	// By connecting our own VkCommandPoolMemoryReservationCreateInfo we avoid getting unknown data from DeviceDriverSC::createCommandPoolHandlerNorm()
@@ -262,6 +267,9 @@
 		TCU_THROW(NotSupportedError, "commandPoolResetCommandBuffer is not supported");
 	if (testParams.multipleRecording && context.getDeviceVulkanSC10Properties().commandPoolMultipleCommandBuffersRecording == VK_FALSE)
 		TCU_THROW(NotSupportedError, "commandPoolMultipleCommandBuffersRecording is not supported");
+	if (testParams.commandBufferCount > context.getDeviceVulkanSC10Properties().maxCommandPoolCommandBuffers)
+		TCU_THROW(NotSupportedError, "commandBufferCount is greater than maxCommandPoolCommandBuffers");
+
 }
 
 } // anonymous
@@ -277,9 +285,11 @@
 		const char*					name;
 	} maxCommandBuffers[] =
 	{
-		{ 1,						"cb_single"		},
-		{ 4,						"cb_few"		},
-		{ 21,						"cb_many"		},
+		{ 1,						"cb_single"				},
+		{ 4,						"cb_few"				},
+		{ 21,						"cb_many"				},
+		{ 256,						"cb_min_limit"			},
+		{ 1024,						"cb_above_min_limit"	},
 	};
 
 	const struct
diff --git a/external/vulkancts/mustpass/master/vksc-default/api.txt b/external/vulkancts/mustpass/master/vksc-default/api.txt
index ca08c5f..574cf57 100644
--- a/external/vulkancts/mustpass/master/vksc-default/api.txt
+++ b/external/vulkancts/mustpass/master/vksc-default/api.txt
@@ -2613,7 +2613,6 @@
 dEQP-VKSC.api.info.image_format_properties2.3d.linear.astc_12x12_unorm_block
 dEQP-VKSC.api.info.image_format_properties2.3d.linear.astc_12x12_srgb_block
 dEQP-VKSC.api.device_init.create_instance_name_version
-dEQP-VKSC.api.device_init.create_instance_invalid_api_version
 dEQP-VKSC.api.device_init.create_instance_null_appinfo
 dEQP-VKSC.api.device_init.create_instance_unsupported_extensions
 dEQP-VKSC.api.device_init.create_instance_extension_name_abuse
diff --git a/external/vulkancts/mustpass/master/vksc-default/sc.txt b/external/vulkancts/mustpass/master/vksc-default/sc.txt
index 0d663a6..ea5f713 100644
--- a/external/vulkancts/mustpass/master/vksc-default/sc.txt
+++ b/external/vulkancts/mustpass/master/vksc-default/sc.txt
@@ -112,6 +112,42 @@
 dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_many.size_big.multiple_recording.allocated_size_2
 dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_many.size_big.multiple_recording.allocated_size_8
 dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_many.size_big.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_small.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_min_limit.size_big.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_small.multiple_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.reserved_size
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.single_recording.allocated_size_16
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_1
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_2
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_8
+dEQP-VKSC.sc.command_pool_memory_reservation.memory_consumption.cb_above_min_limit.size_big.multiple_recording.allocated_size_16
 dEQP-VKSC.sc.object_refresh.query_refreshable_objects
 dEQP-VKSC.sc.object_refresh.refresh_individual_objects
 dEQP-VKSC.sc.object_refresh.refresh_all_objects
diff --git a/framework/common/tcuCommandLine.cpp b/framework/common/tcuCommandLine.cpp
index 5e953b9..57f4c3e 100644
--- a/framework/common/tcuCommandLine.cpp
+++ b/framework/common/tcuCommandLine.cpp
@@ -110,6 +110,7 @@
 DE_DECLARE_COMMAND_LINE_OPT(SubprocessConfigFile,		std::string);
 DE_DECLARE_COMMAND_LINE_OPT(ServerAddress,				std::string);
 DE_DECLARE_COMMAND_LINE_OPT(CommandPoolMinSize,			int);
+DE_DECLARE_COMMAND_LINE_OPT(CommandBufferMinSize,		int);
 DE_DECLARE_COMMAND_LINE_OPT(CommandDefaultSize,			int);
 DE_DECLARE_COMMAND_LINE_OPT(PipelineDefaultSize,		int);
 DE_DECLARE_COMMAND_LINE_OPT(PipelineCompilerPath,		std::string);
@@ -235,6 +236,7 @@
 		<< Option<SubprocessConfigFile>			(DE_NULL,	"deqp-subprocess-cfg-file",					"Config file defining number of tests performed in subprocess for specific test branches (Vulkan SC only)", "")
 		<< Option<ServerAddress>				(DE_NULL,	"deqp-server-address",						"Server address (host:port) responsible for shader compilation (Vulkan SC only)", "")
 		<< Option<CommandPoolMinSize>			(DE_NULL,	"deqp-command-pool-min-size",				"Define minimum size of the command pool (in bytes) to use (Vulkan SC only)","0")
+		<< Option<CommandBufferMinSize>			(DE_NULL,	"deqp-command-buffer-min-size",				"Define minimum size of the command buffer (in bytes) to use (Vulkan SC only)", "0")
 		<< Option<CommandDefaultSize>			(DE_NULL,	"deqp-command-default-size",				"Define default single command size (in bytes) to use (Vulkan SC only)",	"256")
 		<< Option<PipelineDefaultSize>			(DE_NULL,	"deqp-pipeline-default-size",				"Define default pipeline size (in bytes) to use (Vulkan SC only)",		"16384")
 		<< Option<PipelineCompilerPath>			(DE_NULL,	"deqp-pipeline-compiler",					"Path to offline pipeline compiler (Vulkan SC only)", "")
@@ -972,6 +974,7 @@
 bool					CommandLine::isSubProcess					(void) const	{ return m_cmdLine.getOption<opt::SubProcess>();							}
 int						CommandLine::getSubprocessTestCount			(void) const	{ return m_cmdLine.getOption<opt::SubprocessTestCount>();					}
 int						CommandLine::getCommandPoolMinSize			(void) const	{ return m_cmdLine.getOption<opt::CommandPoolMinSize>();					}
+int						CommandLine::getCommandBufferMinSize		(void) const	{ return m_cmdLine.getOption<opt::CommandBufferMinSize>();					}
 int						CommandLine::getCommandDefaultSize			(void) const	{ return m_cmdLine.getOption<opt::CommandDefaultSize>();					}
 int						CommandLine::getPipelineDefaultSize			(void) const	{ return m_cmdLine.getOption<opt::PipelineDefaultSize>();					}
 
diff --git a/framework/common/tcuCommandLine.hpp b/framework/common/tcuCommandLine.hpp
index 2dd4e8f..4c8b8dd 100644
--- a/framework/common/tcuCommandLine.hpp
+++ b/framework/common/tcuCommandLine.hpp
@@ -286,9 +286,12 @@
 	//! Optional server address that will be responsible for (among other things) compiling shaders ( Vulkan SC )
 	const char*						getServerAddress			(void) const;
 
-	//! Define minimum size of a single command buffer ( Vulkan SC )
+	//! Define minimum size of a single command pool ( Vulkan SC )
 	int								getCommandPoolMinSize(void) const;
 
+	//! Define minimum size of a single command buffer ( Vulkan SC )
+	int								getCommandBufferMinSize(void) const;
+
 	//! Define default size for single command in command buffer ( Vulkan SC )
 	int								getCommandDefaultSize(void) const;