1// Copyright 2021 NVIDIA Corporation 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_EXT_application_parameters.adoc[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2021-12-14 11*Contributors*:: 12 - Daniel Koch, NVIDIA 13 - Jonathan Mccaffrey, NVIDIA 14 - Aidan Fabius, CoreAVI 15 16=== Description 17 18This instance extension enables an application to pass application 19parameters to the implementation at instance or device creation time. 20 21The application parameters consist of a set of vendor-specific keys and 22values. 23Each key is a 32-bit enum, and each value is a 64-bit integer. 24The valid keys, range of values, and default values are documented external 25to this specification in implementation-specific documentation. 26 27This extension is an instance extension rather than a device extension so 28that the implementation can modify reported sname:VkPhysicalDevice 29properties or features as needed. 30 31include::{generated}/interfaces/VK_EXT_application_parameters.adoc[] 32 33=== Issues 34 35. How should the pname:key enumerants be assigned? 36+ 37-- 38*RESOLVED*: The pname:key enumerants are completely implementation-specific 39and do not need to be centrally reserved. 40They should be documented in the implementation-specific documentation. 41The vendor ID and optionally the device ID are provided to disambiguate 42between multiple ICDs or devices. 43-- 44 45. How does an application know what application parameters are valid on a 46particular implementation? 47+ 48-- 49*DISCUSSION*: There is no ability to enumerate device or system properties 50before an instance is created, however pname:key and pname:values must: be 51recognized by an implementation in order for instance or device creation to 52succeed. 53The vendor and optionally the device ID are provided to identify which ICD 54or device the application parameters are targeted at. 55-- 56 57. Is it OK if the "valid value" for specified keys is not from static 58documented values, but must be consistent-with/interdependent-on other 59sname:VkApplicationParametersEXT? 60+ 61-- 62*DISCUSSION*: Yes this is fine. 63Examples for how this could be used include: 64 65 * a checksum pname:key where the pname:value is computed based on other 66 slink:VkApplicationParametersEXT structures in the pname:pNext chain. 67 * an "application key" which either implies or explicitly lists a set of 68 prevalidated key/value pairs. 69-- 70 71=== Version History 72 73 * Revision 1, 2021-12-14 (Daniel Koch) 74 ** Initial revision 75