vulkan/operation: retrieve function pointers directly from the device
The instance API version supported may not be of the same version supported by the device. It is possible that the function that is returned may be non-0 but not functional due to the requested API version of the instance limiting the availability of calling the returned function. Can be reproduced by running a pipeline with GST_VULKAN_INSTANCE_API_VERSION=1.1 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8554>
This commit is contained in:
parent
7452589ff8
commit
e7b8ac099f
@ -163,21 +163,19 @@ gst_vulkan_operation_constructed (GObject * object)
|
||||
VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME);
|
||||
|
||||
if (priv->has_sync2) {
|
||||
priv->QueueSubmit2 = gst_vulkan_instance_get_proc_address (device->instance,
|
||||
priv->QueueSubmit2 = gst_vulkan_device_get_proc_address (device,
|
||||
"vkQueueSubmit2");
|
||||
if (!priv->QueueSubmit2) {
|
||||
priv->QueueSubmit2 =
|
||||
gst_vulkan_instance_get_proc_address (device->instance,
|
||||
"vkQueueSubmit2KHR");
|
||||
gst_vulkan_device_get_proc_address (device, "vkQueueSubmit2KHR");
|
||||
}
|
||||
|
||||
if (!priv->CmdPipelineBarrier2) {
|
||||
priv->CmdPipelineBarrier2 =
|
||||
gst_vulkan_instance_get_proc_address (device->instance,
|
||||
"vkCmdPipelineBarrier2");
|
||||
gst_vulkan_device_get_proc_address (device, "vkCmdPipelineBarrier2");
|
||||
if (!priv->CmdPipelineBarrier2) {
|
||||
priv->CmdPipelineBarrier2 =
|
||||
gst_vulkan_instance_get_proc_address (device->instance,
|
||||
gst_vulkan_device_get_proc_address (device,
|
||||
"vkCmdPipelineBarrier2KHR");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user