mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 18:21:04 +00:00
vulkan: log extension/layers available/enabled on instance/device creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341>
This commit is contained in:
parent
09613696a6
commit
c21aefbfb0
3 changed files with 64 additions and 9 deletions
|
@ -294,6 +294,17 @@ gst_vulkan_device_open (GstVulkanDevice * device, GError ** error)
|
||||||
priv->queue_family_id = i;
|
priv->queue_family_id = i;
|
||||||
priv->n_queues = 1;
|
priv->n_queues = 1;
|
||||||
|
|
||||||
|
GST_INFO_OBJECT (device, "Creating a device from physical %" GST_PTR_FORMAT
|
||||||
|
" with %u layers and %u extensions", device->physical_device,
|
||||||
|
priv->enabled_layers->len, priv->enabled_extensions->len);
|
||||||
|
|
||||||
|
for (i = 0; i < priv->enabled_layers->len; i++)
|
||||||
|
GST_DEBUG_OBJECT (device, "layer %u: %s", i,
|
||||||
|
(gchar *) g_ptr_array_index (priv->enabled_layers, i));
|
||||||
|
for (i = 0; i < priv->enabled_extensions->len; i++)
|
||||||
|
GST_DEBUG_OBJECT (device, "extension %u: %s", i,
|
||||||
|
(gchar *) g_ptr_array_index (priv->enabled_extensions, i));
|
||||||
|
|
||||||
{
|
{
|
||||||
VkDeviceQueueCreateInfo queue_info = { 0, };
|
VkDeviceQueueCreateInfo queue_info = { 0, };
|
||||||
VkDeviceCreateInfo device_info = { 0, };
|
VkDeviceCreateInfo device_info = { 0, };
|
||||||
|
|
|
@ -713,6 +713,7 @@ gst_vulkan_instance_fill_info_unlocked (GstVulkanInstance * instance,
|
||||||
{
|
{
|
||||||
GstVulkanInstancePrivate *priv;
|
GstVulkanInstancePrivate *priv;
|
||||||
VkResult err;
|
VkResult err;
|
||||||
|
guint i;
|
||||||
|
|
||||||
priv = GET_PRIV (instance);
|
priv = GET_PRIV (instance);
|
||||||
|
|
||||||
|
@ -756,6 +757,16 @@ gst_vulkan_instance_fill_info_unlocked (GstVulkanInstance * instance,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GST_INFO_OBJECT (instance, "found %u layers and %u extensions",
|
||||||
|
priv->n_available_layers, priv->n_available_extensions);
|
||||||
|
|
||||||
|
for (i = 0; i < priv->n_available_layers; i++)
|
||||||
|
GST_DEBUG_OBJECT (instance, "available layer %u: %s", i,
|
||||||
|
priv->available_layers[i].layerName);
|
||||||
|
for (i = 0; i < priv->n_available_extensions; i++)
|
||||||
|
GST_DEBUG_OBJECT (instance, "available extension %u: %s", i,
|
||||||
|
priv->available_extensions[i].extensionName);
|
||||||
|
|
||||||
/* configure default extensions */
|
/* configure default extensions */
|
||||||
{
|
{
|
||||||
GstVulkanDisplayType display_type;
|
GstVulkanDisplayType display_type;
|
||||||
|
@ -854,15 +865,8 @@ gst_vulkan_instance_open (GstVulkanInstance * instance, GError ** error)
|
||||||
requested_instance_api =
|
requested_instance_api =
|
||||||
VK_MAKE_VERSION (priv->requested_api_major, priv->requested_api_minor,
|
VK_MAKE_VERSION (priv->requested_api_major, priv->requested_api_minor,
|
||||||
0);
|
0);
|
||||||
GST_INFO_OBJECT (instance, "requesting Vulkan API %u.%u, max supported "
|
|
||||||
"%u.%u", priv->requested_api_major, priv->requested_api_minor,
|
|
||||||
VK_VERSION_MAJOR (priv->supported_instance_api),
|
|
||||||
VK_VERSION_MINOR (priv->supported_instance_api));
|
|
||||||
} else {
|
} else {
|
||||||
requested_instance_api = priv->supported_instance_api;
|
requested_instance_api = priv->supported_instance_api;
|
||||||
GST_INFO_OBJECT (instance, "requesting maximum supported API %u.%u",
|
|
||||||
VK_VERSION_MAJOR (priv->supported_instance_api),
|
|
||||||
VK_VERSION_MINOR (priv->supported_instance_api));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (requested_instance_api > priv->supported_instance_api) {
|
if (requested_instance_api > priv->supported_instance_api) {
|
||||||
|
@ -875,6 +879,37 @@ gst_vulkan_instance_open (GstVulkanInstance * instance, GError ** error)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* list of known vulkan loader environment variables taken from:
|
||||||
|
* https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/blob/master/loader/LoaderAndLayerInterface.md#table-of-debug-environment-variables */
|
||||||
|
GST_DEBUG_OBJECT (instance, "VK_ICD_FILENAMES: %s",
|
||||||
|
g_getenv ("VK_ICD_FILENAMES"));
|
||||||
|
GST_DEBUG_OBJECT (instance, "VK_INSTANCE_LAYERS: %s",
|
||||||
|
g_getenv ("VK_INSTANCE_LAYERS"));
|
||||||
|
GST_DEBUG_OBJECT (instance, "VK_LAYER_PATH: %s", g_getenv ("VK_LAYER_PATH"));
|
||||||
|
GST_DEBUG_OBJECT (instance, "VK_LOADER_DISABLE_INST_EXT_FILTER: %s",
|
||||||
|
g_getenv ("VK_LOADER_DISABLE_INST_EXT_FILTER"));
|
||||||
|
GST_DEBUG_OBJECT (instance, "VK_LOADER_DEBUG: %s",
|
||||||
|
g_getenv ("VK_LOADER_DEBUG"));
|
||||||
|
|
||||||
|
{
|
||||||
|
guint i;
|
||||||
|
|
||||||
|
GST_INFO_OBJECT (instance, "attempting to create instance for Vulkan API "
|
||||||
|
"%u.%u, max supported %u.%u with %u layers and %u extensions",
|
||||||
|
VK_VERSION_MAJOR (requested_instance_api),
|
||||||
|
VK_VERSION_MINOR (requested_instance_api),
|
||||||
|
VK_VERSION_MAJOR (priv->supported_instance_api),
|
||||||
|
VK_VERSION_MINOR (priv->supported_instance_api),
|
||||||
|
priv->enabled_layers->len, priv->enabled_extensions->len);
|
||||||
|
|
||||||
|
for (i = 0; i < priv->enabled_layers->len; i++)
|
||||||
|
GST_DEBUG_OBJECT (instance, "layer %u: %s", i,
|
||||||
|
(gchar *) g_ptr_array_index (priv->enabled_layers, i));
|
||||||
|
for (i = 0; i < priv->enabled_extensions->len; i++)
|
||||||
|
GST_DEBUG_OBJECT (instance, "extension %u: %s", i,
|
||||||
|
(gchar *) g_ptr_array_index (priv->enabled_extensions, i));
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
VkApplicationInfo app = { 0, };
|
VkApplicationInfo app = { 0, };
|
||||||
VkInstanceCreateInfo inst_info = { 0, };
|
VkInstanceCreateInfo inst_info = { 0, };
|
||||||
|
|
|
@ -802,6 +802,7 @@ gst_vulkan_physical_device_fill_info (GstVulkanPhysicalDevice * device,
|
||||||
{
|
{
|
||||||
GstVulkanPhysicalDevicePrivate *priv = GET_PRIV (device);
|
GstVulkanPhysicalDevicePrivate *priv = GET_PRIV (device);
|
||||||
VkResult err;
|
VkResult err;
|
||||||
|
guint i;
|
||||||
|
|
||||||
device->device = gst_vulkan_physical_device_get_handle (device);
|
device->device = gst_vulkan_physical_device_get_handle (device);
|
||||||
if (!device->device) {
|
if (!device->device) {
|
||||||
|
@ -833,8 +834,6 @@ gst_vulkan_physical_device_fill_info (GstVulkanPhysicalDevice * device,
|
||||||
"vkEnumerateDeviceExtensionProperties") < 0) {
|
"vkEnumerateDeviceExtensionProperties") < 0) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
GST_DEBUG_OBJECT (device, "Found %u extensions",
|
|
||||||
priv->n_available_extensions);
|
|
||||||
|
|
||||||
priv->available_extensions =
|
priv->available_extensions =
|
||||||
g_new0 (VkExtensionProperties, priv->n_available_extensions);
|
g_new0 (VkExtensionProperties, priv->n_available_extensions);
|
||||||
|
@ -846,6 +845,16 @@ gst_vulkan_physical_device_fill_info (GstVulkanPhysicalDevice * device,
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GST_INFO_OBJECT (device, "found %u layers and %u extensions",
|
||||||
|
priv->n_available_layers, priv->n_available_extensions);
|
||||||
|
|
||||||
|
for (i = 0; i < priv->n_available_layers; i++)
|
||||||
|
GST_DEBUG_OBJECT (device, "available layer %u: %s", i,
|
||||||
|
priv->available_layers[i].layerName);
|
||||||
|
for (i = 0; i < priv->n_available_extensions; i++)
|
||||||
|
GST_DEBUG_OBJECT (device, "available extension %u: %s", i,
|
||||||
|
priv->available_extensions[i].extensionName);
|
||||||
|
|
||||||
vkGetPhysicalDeviceProperties (device->device, &device->properties);
|
vkGetPhysicalDeviceProperties (device->device, &device->properties);
|
||||||
#if defined (VK_API_VERSION_1_2)
|
#if defined (VK_API_VERSION_1_2)
|
||||||
if (gst_vulkan_instance_check_version (device->instance, 1, 2, 0)) {
|
if (gst_vulkan_instance_check_version (device->instance, 1, 2, 0)) {
|
||||||
|
|
Loading…
Reference in a new issue