Drop GDK_VULKAN_DEVICE support
We don't need our own mechanism for device selection; mesa has a Vulkan layer that works perfectly fine for this purpose; just set MESA_VK_DEVICE_SELECT.
This commit is contained in:
@@ -380,13 +380,6 @@ does not support them.
|
|||||||
`base-instance`
|
`base-instance`
|
||||||
:GL_EXT_base_instance
|
:GL_EXT_base_instance
|
||||||
|
|
||||||
### `GDK_VULKAN_DEVICE`
|
|
||||||
|
|
||||||
This variable can be set to the index of a Vulkan device to override
|
|
||||||
the default selection of the device that is used for Vulkan rendering.
|
|
||||||
The special value `list` can be used to obtain a list of all Vulkan
|
|
||||||
devices.
|
|
||||||
|
|
||||||
### `GDK_VULKAN_DISABLE`
|
### `GDK_VULKAN_DISABLE`
|
||||||
|
|
||||||
This variable can be set to a list of values, which cause GDK to
|
This variable can be set to a list of values, which cause GDK to
|
||||||
|
|||||||
@@ -1405,10 +1405,6 @@ gdk_display_create_vulkan_device (GdkDisplay *display,
|
|||||||
{
|
{
|
||||||
G_GNUC_UNUSED gint64 start_time = GDK_PROFILER_CURRENT_TIME;
|
G_GNUC_UNUSED gint64 start_time = GDK_PROFILER_CURRENT_TIME;
|
||||||
uint32_t i, j, k;
|
uint32_t i, j, k;
|
||||||
const char *env_var = "GDK_VULKAN_DEVICE";
|
|
||||||
const char *override;
|
|
||||||
gboolean list_devices;
|
|
||||||
int first, last;
|
|
||||||
GdkVulkanFeatures skip_features;
|
GdkVulkanFeatures skip_features;
|
||||||
|
|
||||||
uint32_t n_devices = 0;
|
uint32_t n_devices = 0;
|
||||||
@@ -1426,9 +1422,6 @@ gdk_display_create_vulkan_device (GdkDisplay *display,
|
|||||||
devices = g_newa (VkPhysicalDevice, n_devices);
|
devices = g_newa (VkPhysicalDevice, n_devices);
|
||||||
GDK_VK_CHECK(vkEnumeratePhysicalDevices, display->vk_instance, &n_devices, devices);
|
GDK_VK_CHECK(vkEnumeratePhysicalDevices, display->vk_instance, &n_devices, devices);
|
||||||
|
|
||||||
first = 0;
|
|
||||||
last = n_devices;
|
|
||||||
|
|
||||||
skip_features = gdk_parse_debug_var ("GDK_VULKAN_DISABLE",
|
skip_features = gdk_parse_debug_var ("GDK_VULKAN_DISABLE",
|
||||||
"GDK_VULKAN_DISABLE can be set to a list of Vulkan features to disable.\n",
|
"GDK_VULKAN_DISABLE can be set to a list of Vulkan features to disable.\n",
|
||||||
gsk_vulkan_feature_keys,
|
gsk_vulkan_feature_keys,
|
||||||
@@ -1436,44 +1429,7 @@ gdk_display_create_vulkan_device (GdkDisplay *display,
|
|||||||
if (skip_features & GDK_VULKAN_FEATURE_YCBCR)
|
if (skip_features & GDK_VULKAN_FEATURE_YCBCR)
|
||||||
skip_features |= GDK_VULKAN_FEATURE_DMABUF;
|
skip_features |= GDK_VULKAN_FEATURE_DMABUF;
|
||||||
|
|
||||||
override = g_getenv (env_var);
|
if (GDK_DISPLAY_DEBUG_CHECK (display, VULKAN))
|
||||||
list_devices = FALSE;
|
|
||||||
if (override)
|
|
||||||
{
|
|
||||||
if (g_strcmp0 (override, "help") == 0)
|
|
||||||
{
|
|
||||||
fprintf (stderr,
|
|
||||||
"%s overrides the choice of Vulkan device.\n\n", env_var);
|
|
||||||
fprintf (stderr, "Supported %s values:\n", env_var);
|
|
||||||
fprintf (stderr, " N Use the N-th device\n");
|
|
||||||
fprintf (stderr, " list List available devices\n");
|
|
||||||
fprintf (stderr, " help Print this help\n");
|
|
||||||
}
|
|
||||||
else if (g_strcmp0 (override, "list") == 0)
|
|
||||||
list_devices = TRUE;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
guint64 device_idx;
|
|
||||||
GError *error2 = NULL;
|
|
||||||
|
|
||||||
if (!g_ascii_string_to_unsigned (override, 10, 0, G_MAXINT, &device_idx, &error2))
|
|
||||||
{
|
|
||||||
fprintf (stderr, "Failed to parse %s: %s\n", env_var, error2->message);
|
|
||||||
fprintf (stderr, "Try %s=help\n", env_var);
|
|
||||||
g_error_free (error2);
|
|
||||||
device_idx = -1;
|
|
||||||
}
|
|
||||||
else if (device_idx < 0 || device_idx >= n_devices)
|
|
||||||
fprintf (stderr, "%s value out of range, ignoring\n", env_var);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
first = device_idx;
|
|
||||||
last = first + 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (list_devices || GDK_DISPLAY_DEBUG_CHECK (display, VULKAN))
|
|
||||||
{
|
{
|
||||||
for (i = 0; i < n_devices; i++)
|
for (i = 0; i < n_devices; i++)
|
||||||
{
|
{
|
||||||
@@ -1524,7 +1480,7 @@ gdk_display_create_vulkan_device (GdkDisplay *display,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = first; i < last; i++)
|
for (i = 0; i < n_devices; i++)
|
||||||
{
|
{
|
||||||
GdkVulkanFeatures features, device_features;
|
GdkVulkanFeatures features, device_features;
|
||||||
uint32_t n_queue_props;
|
uint32_t n_queue_props;
|
||||||
@@ -1540,7 +1496,7 @@ gdk_display_create_vulkan_device (GdkDisplay *display,
|
|||||||
{
|
{
|
||||||
if (queue_props[j].queueFlags & VK_QUEUE_GRAPHICS_BIT)
|
if (queue_props[j].queueFlags & VK_QUEUE_GRAPHICS_BIT)
|
||||||
{
|
{
|
||||||
VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT swapchain_maintenance1_features = {
|
VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT swapchain_maintenance1_features = {
|
||||||
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
|
.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT,
|
||||||
.swapchainMaintenance1 = VK_TRUE,
|
.swapchainMaintenance1 = VK_TRUE,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
export LIBGL_ALWAYS_SOFTWARE=1
|
export LIBGL_ALWAYS_SOFTWARE=1
|
||||||
export GDK_VULKAN_DEVICE=1
|
|
||||||
|
|
||||||
version=$(head -5 meson.build | grep version | sed -e "s/[^']*'//" -e "s/'.*$//")
|
version=$(head -5 meson.build | grep version | sed -e "s/[^']*'//" -e "s/'.*$//")
|
||||||
release_build_dir="release_build"
|
release_build_dir="release_build"
|
||||||
|
|||||||
Reference in New Issue
Block a user