diff options
author | Lionel Landwerlin <[email protected]> | 2019-09-08 12:59:32 +0300 |
---|---|---|
committer | Lionel Landwerlin <[email protected]> | 2019-09-15 15:37:02 +0300 |
commit | 04dc6074cf7f651b720868e0ba24362b585d1b31 (patch) | |
tree | a4d6f4ec7a4ce32b397fbca1a0e6510539da14dc /src/loader | |
parent | 6d5f11ab345b05759c22acbcd2f79928311689e3 (diff) |
driconfig: add a new engine name/version parameter
Vulkan applications can register with the following structure :
typedef struct VkApplicationInfo {
VkStructureType sType;
const void* pNext;
const char* pApplicationName;
uint32_t applicationVersion;
const char* pEngineName;
uint32_t engineVersion;
uint32_t apiVersion;
} VkApplicationInfo;
This enables the Vulkan implementations to apply workarounds based off
matching this description.
Here we add a new parameter for matching the driconfig options with
the following :
<device driver="anv">
<application engine_name_match="MyOwnEngine.*" engine_versions="10:12,40:42">
<option name="blaaah" value="true" />
</application>
</device>
v2: switch engine name match to use regexps
v3: Verify that the regexec returns REG_NOMATCH for match failure (Eric)
v4: Add missing bit that went to the following commit (Eric)
Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Eric Engestrom <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Cc: 19.2 <[email protected]>
Diffstat (limited to 'src/loader')
-rw-r--r-- | src/loader/loader.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/loader/loader.c b/src/loader/loader.c index 7f29d19cfdf..6894c65114f 100644 --- a/src/loader/loader.c +++ b/src/loader/loader.c @@ -185,7 +185,7 @@ static char *loader_get_dri_config_driver(int fd) driParseOptionInfo(&defaultInitOptions, __driConfigOptionsLoader); driParseConfigFiles(&userInitOptions, &defaultInitOptions, 0, - "loader", kernel_driver); + "loader", kernel_driver, NULL, 0); if (driCheckOption(&userInitOptions, "dri_driver", DRI_STRING)) { char *opt = driQueryOptionstr(&userInitOptions, "dri_driver"); /* not an empty string */ @@ -206,7 +206,8 @@ static char *loader_get_dri_config_device_id(void) char *prime = NULL; driParseOptionInfo(&defaultInitOptions, __driConfigOptionsLoader); - driParseConfigFiles(&userInitOptions, &defaultInitOptions, 0, "loader", NULL); + driParseConfigFiles(&userInitOptions, &defaultInitOptions, 0, + "loader", NULL, NULL, 0); if (driCheckOption(&userInitOptions, "device_id", DRI_STRING)) prime = strdup(driQueryOptionstr(&userInitOptions, "device_id")); driDestroyOptionCache(&userInitOptions); |