scripts: Save enabled dev ext info in ext helper
For proper GetDeviceProcAddr operation, will need original list
of enabled extensions passed via DeviceCreateInfo. Saving them in the
enabled device extension structure.
diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py
index fb7d1d2..8c5f709 100644
--- a/scripts/helper_file_generator.py
+++ b/scripts/helper_file_generator.py
@@ -492,6 +492,7 @@
'',
'#ifndef VK_EXTENSION_HELPER_H_',
'#define VK_EXTENSION_HELPER_H_',
+ '#include <unordered_set>',
'#include <string>',
'#include <unordered_map>',
'#include <utility>',
@@ -533,6 +534,11 @@
struct = [struct_decl]
struct.extend([ ' bool %s{false};' % field_name[ext_name] for ext_name, info in extension_items])
+ # Create struct entries for saving extension count and extension list from DeviceCreateInfo
+ struct.extend([
+ '',
+ ' std::unordered_set<std::string> device_extension_set;'])
+
# Construct the extension information map -- mapping name to data member (field), and required extensions
# The map is contained within a static function member for portability reasons.
info_type = '%sInfo' % type
@@ -595,7 +601,12 @@
' const VkDeviceCreateInfo *pCreateInfo) {',
' // Initialize: this to defaults, base class fields to input.',
' assert(instance_extensions);',
- ' *this = %s(*instance_extensions);' % struct_type])
+ ' *this = %s(*instance_extensions);' % struct_type,
+ '',
+ ' // Save pCreateInfo device extension list',
+ ' for (uint32_t extn = 0; extn < pCreateInfo->enabledExtensionCount; extn++) {',
+ ' device_extension_set.insert(pCreateInfo->ppEnabledExtensionNames[extn]);',
+ ' }']),
struct.extend([
'',