turnip: add support for dirconf
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13367>
This commit is contained in:
parent
5b797bd485
commit
fd31989ecb
|
@ -38,6 +38,7 @@
|
|||
|
||||
#include "util/debug.h"
|
||||
#include "util/disk_cache.h"
|
||||
#include "util/driconf.h"
|
||||
#include "util/u_atomic.h"
|
||||
#include "vk_format.h"
|
||||
#include "vk_util.h"
|
||||
|
@ -328,6 +329,29 @@ tu_get_debug_option_name(int id)
|
|||
return tu_debug_options[id].string;
|
||||
}
|
||||
|
||||
static const driOptionDescription tu_dri_options[] = {
|
||||
DRI_CONF_SECTION_PERFORMANCE
|
||||
DRI_CONF_VK_X11_OVERRIDE_MIN_IMAGE_COUNT(0)
|
||||
DRI_CONF_VK_X11_STRICT_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_X11_ENSURE_MIN_IMAGE_COUNT(false)
|
||||
DRI_CONF_VK_XWAYLAND_WAIT_READY(true)
|
||||
DRI_CONF_SECTION_END
|
||||
|
||||
DRI_CONF_SECTION_DEBUG
|
||||
DRI_CONF_VK_WSI_FORCE_BGRA8_UNORM_FIRST(false)
|
||||
DRI_CONF_SECTION_END
|
||||
};
|
||||
|
||||
static void
|
||||
tu_init_dri_options(struct tu_instance *instance)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL
|
||||
tu_CreateInstance(const VkInstanceCreateInfo *pCreateInfo,
|
||||
const VkAllocationCallbacks *pAllocator,
|
||||
|
@ -380,6 +404,8 @@ tu_CreateInstance(const VkInstanceCreateInfo *pCreateInfo,
|
|||
|
||||
VG(VALGRIND_CREATE_MEMPOOL(instance, 0, false));
|
||||
|
||||
tu_init_dri_options(instance);
|
||||
|
||||
*pInstance = tu_instance_to_handle(instance);
|
||||
|
||||
#ifdef HAVE_PERFETTO
|
||||
|
@ -404,6 +430,9 @@ tu_DestroyInstance(VkInstance _instance,
|
|||
|
||||
VG(VALGRIND_DESTROY_MEMPOOL(instance));
|
||||
|
||||
driDestroyOptionCache(&instance->dri_options);
|
||||
driDestroyOptionInfo(&instance->available_dri_options);
|
||||
|
||||
vk_instance_finish(&instance->vk);
|
||||
vk_free(&instance->vk.alloc, instance);
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
#include "util/macros.h"
|
||||
#include "util/u_atomic.h"
|
||||
#include "util/u_dynarray.h"
|
||||
#include "util/xmlconfig.h"
|
||||
#include "util/perf/u_trace.h"
|
||||
#include "vk_alloc.h"
|
||||
#include "vk_debug_report.h"
|
||||
|
@ -248,6 +249,9 @@ struct tu_instance
|
|||
int physical_device_count;
|
||||
struct tu_physical_device physical_devices[TU_MAX_DRM_DEVICES];
|
||||
|
||||
struct driOptionCache dri_options;
|
||||
struct driOptionCache available_dri_options;
|
||||
|
||||
enum tu_debug_flags debug_flags;
|
||||
};
|
||||
|
||||
|
|
|
@ -45,7 +45,8 @@ tu_wsi_init(struct tu_physical_device *physical_device)
|
|||
tu_physical_device_to_handle(physical_device),
|
||||
tu_wsi_proc_addr,
|
||||
&physical_device->instance->vk.alloc,
|
||||
physical_device->master_fd, NULL,
|
||||
physical_device->master_fd,
|
||||
&physical_device->instance->dri_options,
|
||||
false);
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
|
|
Loading…
Reference in New Issue