summaryrefslogtreecommitdiff
path: root/src/loader
diff options
context:
space:
mode:
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>2019-09-08 12:59:32 +0300
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>2019-09-15 15:37:02 +0300
commit04dc6074cf7f651b720868e0ba24362b585d1b31 (patch)
treea4d6f4ec7a4ce32b397fbca1a0e6510539da14dc /src/loader
parent6d5f11ab345b05759c22acbcd2f79928311689e3 (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 <lionel.g.landwerlin@intel.com> Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Cc: 19.2 <mesa-stable@lists.freedesktop.org>
Diffstat (limited to 'src/loader')
-rw-r--r--src/loader/loader.c5
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);