Make vkEnumerate*ExtensionProperties conform to the Vulkan spec

Vulkan specifies that "on return the [pPropertyCount] is overwritten
with the number of structures actually written to pProperties," but this
wasn't happening.

Bug: 150953274
Test: presubmit
Merged-In: I9c576e05fa66eb2a1210c2b432d3ed20adf2cdd0
Change-Id: Iff26b63d77da0389ecf3b59fde72c1cac8d75472
Signed-off-by: Roman Kiryanov <rkir@google.com>
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 809732c..e7ad451 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -883,9 +883,11 @@
             return VK_SUCCESS;
         } else {
             auto actualExtensionCount = (uint32_t)filteredExts.size();
-            auto toWrite = actualExtensionCount < *pPropertyCount ? actualExtensionCount : *pPropertyCount;
+            if (*pPropertyCount > actualExtensionCount) {
+              *pPropertyCount = actualExtensionCount;
+            }
 
-            for (uint32_t i = 0; i < toWrite; ++i) {
+            for (uint32_t i = 0; i < *pPropertyCount; ++i) {
                 pProperties[i] = filteredExts[i];
             }
 
@@ -1051,9 +1053,11 @@
             return VK_SUCCESS;
         } else {
             auto actualExtensionCount = (uint32_t)filteredExts.size();
-            auto toWrite = actualExtensionCount < *pPropertyCount ? actualExtensionCount : *pPropertyCount;
+            if (*pPropertyCount > actualExtensionCount) {
+              *pPropertyCount = actualExtensionCount;
+            }
 
-            for (uint32_t i = 0; i < toWrite; ++i) {
+            for (uint32_t i = 0; i < *pPropertyCount; ++i) {
                 pProperties[i] = filteredExts[i];
             }