mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-23 21:38:18 +02:00
util: pass a struct to driParseConfigFiles()
It would be easier to add more functionalities like shader hashes etc. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41657>
This commit is contained in:
parent
180d8cb544
commit
54b71e9e77
29 changed files with 171 additions and 110 deletions
|
|
@ -329,9 +329,14 @@ radv_init_dri_options(struct radv_instance *instance)
|
|||
struct radv_drirc *drirc = &instance->drirc;
|
||||
|
||||
driParseOptionInfo(&drirc->available_options, radv_dri_options, ARRAY_SIZE(radv_dri_options));
|
||||
driParseConfigFiles(&drirc->options, &drirc->available_options, 0, "radv", NULL, NULL,
|
||||
instance->vk.app_info.app_name, instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&drirc->options, &drirc->available_options,
|
||||
&(driConfigFileParseParams){
|
||||
.driverName = "radv",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
radv_init_dri_debug_options(instance);
|
||||
radv_init_dri_performance_options(instance);
|
||||
|
|
|
|||
|
|
@ -107,10 +107,14 @@ hk_init_dri_options(struct hk_instance *instance)
|
|||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, hk_dri_options,
|
||||
ARRAY_SIZE(hk_dri_options));
|
||||
driParseConfigFiles(
|
||||
&instance->dri_options, &instance->available_dri_options, 0, "hk", NULL,
|
||||
NULL, instance->vk.app_info.app_name, instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "hk",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->force_vk_vendor =
|
||||
driQueryOptioni(&instance->dri_options, "force_vk_vendor");
|
||||
|
|
|
|||
|
|
@ -598,9 +598,14 @@ v3dv_init_dri_options(struct v3dv_instance *instance)
|
|||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, v3dv_dri_options,
|
||||
ARRAY_SIZE(v3dv_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options, 0, "v3dv", NULL, NULL,
|
||||
instance->vk.app_info.app_name, instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "v3dv",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL
|
||||
|
|
|
|||
|
|
@ -1869,11 +1869,18 @@ static const driOptionDescription tu_dri_options[] = {
|
|||
static void
|
||||
tu_init_dri_options(struct tu_instance *instance)
|
||||
{
|
||||
driConfigFileParseParams params = {
|
||||
.driverName = "turnip",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
};
|
||||
|
||||
driParseOptionInfo(&instance->available_dri_options, tu_dri_options,
|
||||
ARRAY_SIZE(tu_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options, 0, "turnip", NULL, NULL,
|
||||
instance->vk.app_info.app_name, instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
¶ms);
|
||||
|
||||
instance->force_vk_vendor =
|
||||
driQueryOptioni(&instance->dri_options, "force_vk_vendor");
|
||||
|
|
|
|||
|
|
@ -137,8 +137,10 @@ void
|
|||
pipe_loader_config_options(struct pipe_loader_device *dev)
|
||||
{
|
||||
if (!dev->option_cache.info) {
|
||||
driParseConfigFiles(&dev->option_cache, &dev->option_info, 0,
|
||||
dev->driver_name, NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(&dev->option_cache, &dev->option_info,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = dev->driver_name,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2429,8 +2429,8 @@ agx_screen_create(int fd, struct renderonly *ro,
|
|||
screen = &agx_screen->pscreen;
|
||||
|
||||
/* parse driconf configuration now for device specific overrides */
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "asahi", NULL,
|
||||
NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "asahi" });
|
||||
|
||||
agx_screen->dev.fd = fd;
|
||||
agx_screen->dev.ro = ro;
|
||||
|
|
|
|||
|
|
@ -572,8 +572,8 @@ crocus_screen_create(int fd, const struct pipe_screen_config *config)
|
|||
screen->aperture_bytes = get_aperture_size(fd);
|
||||
screen->aperture_threshold = screen->aperture_bytes * 3 / 4;
|
||||
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "crocus",
|
||||
NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "crocus" });
|
||||
|
||||
bool bo_reuse = false;
|
||||
int bo_reuse_mode = driQueryOptioni(config->options, "bo_reuse");
|
||||
|
|
|
|||
|
|
@ -1024,8 +1024,11 @@ fd_screen_create(int fd,
|
|||
screen->has_syncobj = fd_has_syncobj(screen->dev);
|
||||
|
||||
/* parse driconf configuration now for device specific overrides: */
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "msm",
|
||||
NULL, fd_dev_name(screen->dev_id), NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "msm",
|
||||
.deviceName = fd_dev_name(screen->dev_id),
|
||||
});
|
||||
|
||||
screen->driconf.conservative_lrz =
|
||||
!driQueryOptionb(config->options, "disable_conservative_lrz");
|
||||
|
|
|
|||
|
|
@ -665,8 +665,8 @@ iris_screen_create(int fd, const struct pipe_screen_config *config)
|
|||
if (!screen)
|
||||
return NULL;
|
||||
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "iris",
|
||||
NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "iris" });
|
||||
|
||||
bool bo_reuse = false;
|
||||
int bo_reuse_mode = driQueryOptioni(config->options, "bo_reuse");
|
||||
|
|
|
|||
|
|
@ -581,8 +581,8 @@ lima_screen_create(int fd, const struct pipe_screen_config *config,
|
|||
lima_plb_pp_stream_cache_size = MAX2(128 * 1024 * lima_ctx_num_plb,
|
||||
lima_plb_pp_stream_cache_size);
|
||||
|
||||
driParseConfigFiles(config->options, config->options_info, 0,
|
||||
"lima", NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "lima" });
|
||||
|
||||
if (!lima_screen_query_info(screen))
|
||||
goto err_out0;
|
||||
|
|
|
|||
|
|
@ -1025,8 +1025,8 @@ panfrost_create_screen(int fd, const struct pipe_screen_config *config,
|
|||
|
||||
struct panfrost_device *dev = pan_device(&screen->base);
|
||||
|
||||
driParseConfigFiles(config->options, config->options_info, 0,
|
||||
"panfrost", NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "panfrost" });
|
||||
|
||||
/* Debug must be set first for pandecode to work correctly */
|
||||
dev->debug =
|
||||
|
|
|
|||
|
|
@ -657,8 +657,8 @@ struct pipe_screen* r300_screen_create(struct radeon_winsys *rws,
|
|||
r300_init_debug(r300screen);
|
||||
r300_parse_chipset(r300screen->info.pci_id, &r300screen->caps);
|
||||
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "r300", NULL,
|
||||
NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "r300" });
|
||||
|
||||
#define OPT_BOOL(name, dflt, description) \
|
||||
r300screen->options.name = driQueryOptionb(config->options, "r300_" #name);
|
||||
|
|
|
|||
|
|
@ -276,8 +276,8 @@ struct pipe_screen *radeonsi_screen_create(int fd, const struct pipe_screen_conf
|
|||
ac_init_llvm_once();
|
||||
#endif
|
||||
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "radeonsi",
|
||||
NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "radeonsi" });
|
||||
|
||||
#ifdef HAVE_AMDGPU_VIRTIO
|
||||
if (strcmp(version->name, "virtio_gpu") == 0) {
|
||||
|
|
|
|||
|
|
@ -803,8 +803,8 @@ v3d_screen_create(int fd, const struct pipe_screen_config *config,
|
|||
if (!screen->perfcnt)
|
||||
goto fail;
|
||||
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "v3d",
|
||||
NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "v3d" });
|
||||
|
||||
/* We have to driCheckOption for the simulator mode to not assertion
|
||||
* fail on not having our XML config.
|
||||
|
|
|
|||
|
|
@ -990,8 +990,8 @@ virgl_create_screen(struct virgl_winsys *vws, const struct pipe_screen_config *c
|
|||
virgl_debug = debug_get_option_virgl_debug();
|
||||
|
||||
if (config && config->options) {
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "virtio_gpu",
|
||||
NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "virtio_gpu" });
|
||||
|
||||
screen->tweak_gles_emulate_bgra =
|
||||
driQueryOptionb(config->options, VIRGL_GLES_EMULATE_BGRA);
|
||||
|
|
|
|||
|
|
@ -3412,8 +3412,8 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev
|
|||
}
|
||||
|
||||
if (config) {
|
||||
driParseConfigFiles(config->options, config->options_info, 0, "zink",
|
||||
NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(config->options, config->options_info,
|
||||
&(driConfigFileParseParams) { .driverName = "zink" });
|
||||
screen->driconf.dual_color_blend_by_location = driQueryOptionb(config->options, "dual_color_blend_by_location");
|
||||
//screen->driconf.inline_uniforms = driQueryOptionb(config->options, "radeonsi_inline_uniforms");
|
||||
screen->driconf.emulate_point_smooth = driQueryOptionb(config->options, "zink_emulate_point_smooth");
|
||||
|
|
|
|||
|
|
@ -119,8 +119,11 @@ driCreateNewScreen3(int scrn, int fd,
|
|||
/* Option parsing before ->InitScreen(), as some options apply there. */
|
||||
driParseOptionInfo(&screen->optionInfo,
|
||||
__dri2ConfigOptions, ARRAY_SIZE(__dri2ConfigOptions));
|
||||
driParseConfigFiles(&screen->optionCache, &screen->optionInfo, screen->myNum,
|
||||
"dri2", NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(&screen->optionCache, &screen->optionInfo,
|
||||
&(driConfigFileParseParams) {
|
||||
.screenNum = screen->myNum,
|
||||
.driverName = "dri2",
|
||||
});
|
||||
|
||||
(void) mtx_init(&screen->opencl_func_mutex, mtx_plain);
|
||||
|
||||
|
|
|
|||
|
|
@ -122,8 +122,10 @@ init_options()
|
|||
{
|
||||
const char *driver_name = stw_dev->stw_winsys->get_name ? stw_dev->stw_winsys->get_name() : NULL;
|
||||
driParseOptionInfo(&stw_dev->option_info, gallium_driconf, ARRAY_SIZE(gallium_driconf));
|
||||
driParseConfigFiles(&stw_dev->option_cache, &stw_dev->option_info, 0,
|
||||
driver_name ? driver_name : "", NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(&stw_dev->option_cache, &stw_dev->option_info,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = driver_name ? driver_name : "",
|
||||
});
|
||||
|
||||
u_driconf_fill_st_options(&stw_dev->st_options, &stw_dev->option_cache);
|
||||
|
||||
|
|
|
|||
|
|
@ -346,16 +346,14 @@ static void pvr_init_dri_options(struct pvr_instance *instance)
|
|||
driParseOptionInfo(&instance->available_dri_options,
|
||||
pvr_dri_options,
|
||||
ARRAY_SIZE(pvr_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options,
|
||||
&instance->available_dri_options,
|
||||
0,
|
||||
"pvr",
|
||||
NULL,
|
||||
NULL,
|
||||
instance->vk.app_info.app_name,
|
||||
instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name,
|
||||
instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "pvr",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->force_vk_vendor =
|
||||
driQueryOptioni(&instance->dri_options, "force_vk_vendor");
|
||||
|
|
|
|||
|
|
@ -209,12 +209,14 @@ anv_init_dri_options(struct anv_instance *instance)
|
|||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, anv_dri_options,
|
||||
ARRAY_SIZE(anv_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options,
|
||||
&instance->available_dri_options, 0, "anv", NULL, NULL,
|
||||
instance->vk.app_info.app_name,
|
||||
instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name,
|
||||
instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "anv",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->assume_full_subgroups =
|
||||
driQueryOptioni(&instance->dri_options, "anv_assume_full_subgroups");
|
||||
|
|
|
|||
|
|
@ -1930,12 +1930,14 @@ anv_init_dri_options(struct anv_instance *instance)
|
|||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, anv_dri_options,
|
||||
ARRAY_SIZE(anv_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options,
|
||||
&instance->available_dri_options, 0, "anv", NULL, NULL,
|
||||
instance->vk.app_info.app_name,
|
||||
instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name,
|
||||
instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "anv",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->assume_full_subgroups =
|
||||
driQueryOptioni(&instance->dri_options, "anv_assume_full_subgroups");
|
||||
|
|
|
|||
|
|
@ -343,8 +343,11 @@ static char *loader_get_dri_config_driver(int fd)
|
|||
|
||||
driParseOptionInfo(&defaultInitOptions, __driConfigOptionsLoader,
|
||||
ARRAY_SIZE(__driConfigOptionsLoader));
|
||||
driParseConfigFiles(&userInitOptions, &defaultInitOptions, 0,
|
||||
"loader", kernel_driver, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(&userInitOptions, &defaultInitOptions,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "loader",
|
||||
.kernelDriverName = kernel_driver,
|
||||
});
|
||||
if (driCheckOption(&userInitOptions, "dri_driver", DRI_STRING)) {
|
||||
char *opt = driQueryOptionstr(&userInitOptions, "dri_driver");
|
||||
/* not an empty string */
|
||||
|
|
@ -366,8 +369,10 @@ static char *loader_get_dri_config_device_id(void)
|
|||
|
||||
driParseOptionInfo(&defaultInitOptions, __driConfigOptionsLoader,
|
||||
ARRAY_SIZE(__driConfigOptionsLoader));
|
||||
driParseConfigFiles(&userInitOptions, &defaultInitOptions, 0,
|
||||
"loader", NULL, NULL, NULL, 0, NULL, 0);
|
||||
driParseConfigFiles(&userInitOptions, &defaultInitOptions,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "loader",
|
||||
});
|
||||
if (driCheckOption(&userInitOptions, "device_id", DRI_STRING)) {
|
||||
char *opt = driQueryOptionstr(&userInitOptions, "device_id");
|
||||
if (*opt)
|
||||
|
|
|
|||
|
|
@ -1776,9 +1776,14 @@ dzn_init_dri_config(struct dzn_instance *instance)
|
|||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, dzn_dri_options,
|
||||
ARRAY_SIZE(dzn_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options, 0, "dzn", NULL, NULL,
|
||||
instance->vk.app_info.app_name, instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "dzn",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
}
|
||||
|
||||
static VkResult
|
||||
|
|
|
|||
|
|
@ -119,9 +119,14 @@ static void
|
|||
nvk_init_dri_options(struct nvk_instance *instance)
|
||||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, nvk_dri_options, ARRAY_SIZE(nvk_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options, 0, "nvk", NULL, NULL,
|
||||
instance->vk.app_info.app_name, instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "nvk",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->force_vk_vendor =
|
||||
driQueryOptioni(&instance->dri_options, "force_vk_vendor");
|
||||
|
|
|
|||
|
|
@ -215,9 +215,14 @@ static void
|
|||
panvk_init_dri_options(struct panvk_instance *instance)
|
||||
{
|
||||
driParseOptionInfo(&instance->available_dri_options, panvk_dri_options, ARRAY_SIZE(panvk_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options, 0, "panvk", NULL, NULL,
|
||||
instance->vk.app_info.app_name, instance->vk.app_info.app_version,
|
||||
instance->vk.app_info.engine_name, instance->vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "panvk",
|
||||
.applicationName = instance->vk.app_info.app_name,
|
||||
.applicationVersion = instance->vk.app_info.app_version,
|
||||
.engineName = instance->vk.app_info.engine_name,
|
||||
.engineVersion = instance->vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->force_vk_vendor =
|
||||
driQueryOptioni(&instance->dri_options, "force_vk_vendor");
|
||||
|
|
|
|||
|
|
@ -170,10 +170,8 @@ TEST_F(xmlconfig_test, copy_cache)
|
|||
* "mesa_test_option" so the test shouldn't end up with something from the
|
||||
* user's homedir/environment that would override us.
|
||||
*/
|
||||
driParseConfigFiles(&cache, &options,
|
||||
0, "driver", "drm", NULL,
|
||||
NULL, 0,
|
||||
NULL, 0);
|
||||
driConfigFileParseParams params = { .driverName = "driver", .kernelDriverName = "drm" };
|
||||
driParseConfigFiles(&cache, &options, ¶ms);
|
||||
|
||||
/* Can we inspect the cache? */
|
||||
EXPECT_EQ(driCheckOption(&cache, "mesa_b_option", DRI_BOOL), true);
|
||||
|
|
@ -206,10 +204,15 @@ xmlconfig_test::drirc_init(const char *driver, const char *drm,
|
|||
/* This should parse the "user" drirc files under ./tests/drirc_test/,
|
||||
* based on the setting of $HOME by meson.build.
|
||||
*/
|
||||
driParseConfigFiles(&cache, &options,
|
||||
0, driver, drm, NULL,
|
||||
app, appver,
|
||||
engine, enginever);
|
||||
driConfigFileParseParams params = {
|
||||
.driverName = driver,
|
||||
.kernelDriverName = drm,
|
||||
.applicationName = app,
|
||||
.applicationVersion = (uint32_t)appver,
|
||||
.engineName = engine,
|
||||
.engineVersion = (uint32_t)enginever,
|
||||
};
|
||||
driParseConfigFiles(&cache, &options, ¶ms);
|
||||
|
||||
return cache;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1230,11 +1230,7 @@ driInjectExecName(const char *exec)
|
|||
|
||||
void
|
||||
driParseConfigFiles(driOptionCache *cache, const driOptionCache *info,
|
||||
int screenNum, const char *driverName,
|
||||
const char *kernelDriverName,
|
||||
const char *deviceName,
|
||||
const char *applicationName, uint32_t applicationVersion,
|
||||
const char *engineName, uint32_t engineVersion)
|
||||
const driConfigFileParseParams *params)
|
||||
{
|
||||
initOptionCache(cache, info);
|
||||
struct OptConfData userData = {0};
|
||||
|
|
@ -1245,14 +1241,14 @@ driParseConfigFiles(driOptionCache *cache, const driOptionCache *info,
|
|||
execname = util_get_process_name();
|
||||
|
||||
userData.cache = cache;
|
||||
userData.screenNum = screenNum;
|
||||
userData.driverName = driverName;
|
||||
userData.kernelDriverName = kernelDriverName;
|
||||
userData.deviceName = deviceName;
|
||||
userData.applicationName = applicationName ? applicationName : "";
|
||||
userData.applicationVersion = applicationVersion;
|
||||
userData.engineName = engineName ? engineName : "";
|
||||
userData.engineVersion = engineVersion;
|
||||
userData.screenNum = params->screenNum;
|
||||
userData.driverName = params->driverName;
|
||||
userData.kernelDriverName = params->kernelDriverName;
|
||||
userData.deviceName = params->deviceName;
|
||||
userData.applicationName = params->applicationName ? params->applicationName : "";
|
||||
userData.applicationVersion = params->applicationVersion;
|
||||
userData.engineName = params->engineName ? params->engineName : "";
|
||||
userData.engineVersion = params->engineVersion;
|
||||
userData.execName = execname;
|
||||
|
||||
#if WITH_XMLCONFIG
|
||||
|
|
|
|||
|
|
@ -128,16 +128,23 @@ driGetOptionsXml(const driOptionDescription *configOptions, unsigned numOptions)
|
|||
void driParseOptionInfo(driOptionCache *info,
|
||||
const driOptionDescription *configOptions,
|
||||
unsigned numOptions);
|
||||
typedef struct {
|
||||
int screenNum;
|
||||
const char *driverName;
|
||||
const char *kernelDriverName;
|
||||
const char *deviceName;
|
||||
const char *applicationName;
|
||||
uint32_t applicationVersion;
|
||||
const char *engineName;
|
||||
uint32_t engineVersion;
|
||||
} driConfigFileParseParams;
|
||||
|
||||
/** \brief Initialize option cache from info and parse configuration files
|
||||
*
|
||||
* To be called in <driver>CreateContext. screenNum, driverName,
|
||||
* kernelDriverName, applicationName and engineName select device sections. */
|
||||
* To be called in <driver>CreateContext. Fields in driConfigFileParseParams
|
||||
* select which device/application/engine sections apply. */
|
||||
void driParseConfigFiles(driOptionCache *cache, const driOptionCache *info,
|
||||
int screenNum, const char *driverName,
|
||||
const char *kernelDriverName,
|
||||
const char *deviceName,
|
||||
const char *applicationName, uint32_t applicationVersion,
|
||||
const char *engineName, uint32_t engineVersion);
|
||||
const driConfigFileParseParams *params);
|
||||
/** \brief Destroy option info
|
||||
*
|
||||
* To be called in <driver>DestroyScreen */
|
||||
|
|
|
|||
|
|
@ -366,12 +366,14 @@ vn_CreateInstance(const VkInstanceCreateInfo *pCreateInfo,
|
|||
|
||||
driParseOptionInfo(&instance->available_dri_options, vn_dri_options,
|
||||
ARRAY_SIZE(vn_dri_options));
|
||||
driParseConfigFiles(&instance->dri_options,
|
||||
&instance->available_dri_options, 0, "venus", NULL,
|
||||
NULL, instance->base.vk.app_info.app_name,
|
||||
instance->base.vk.app_info.app_version,
|
||||
instance->base.vk.app_info.engine_name,
|
||||
instance->base.vk.app_info.engine_version);
|
||||
driParseConfigFiles(&instance->dri_options, &instance->available_dri_options,
|
||||
&(driConfigFileParseParams) {
|
||||
.driverName = "venus",
|
||||
.applicationName = instance->base.vk.app_info.app_name,
|
||||
.applicationVersion = instance->base.vk.app_info.app_version,
|
||||
.engineName = instance->base.vk.app_info.engine_name,
|
||||
.engineVersion = instance->base.vk.app_info.engine_version,
|
||||
});
|
||||
|
||||
instance->renderer->info.has_implicit_fencing =
|
||||
driQueryOptionb(&instance->dri_options, "venus_implicit_fencing");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue