diff --git a/src/broadcom/ci/deqp-v3dv-rpi4-flakes.txt b/src/broadcom/ci/deqp-v3dv-rpi4-flakes.txt index d90b0220d83..2ce4dde1524 100644 --- a/src/broadcom/ci/deqp-v3dv-rpi4-flakes.txt +++ b/src/broadcom/ci/deqp-v3dv-rpi4-flakes.txt @@ -1,6 +1,4 @@ dEQP-VK.api.external.fence.opaque_fd.reset_permanent dEQP-VK.api.external.fence.opaque_fd.reset_temporary -dEQP-VK.robustness.buffer_access.through_pointers.compute.*out_of_memory_with_.* -dEQP-VK.robustness.buffer_access.through_pointers.graphics.*out_of_memory_with_.* dEQP-VK.ssbo.layout.instance_array_basic_type.std430.uvec4 dEQP-VK.wsi.display.get_display_plane_capabilities diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 7b9dd3c11a5..82b9ba7bb6f 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -1762,14 +1762,24 @@ v3dv_CreateDevice(VkPhysicalDevice physicalDevice, device->devinfo = physical_device->devinfo; - if (pCreateInfo->pEnabledFeatures) { + /* Vulkan 1.1 and VK_KHR_get_physical_device_properties2 added + * VkPhysicalDeviceFeatures2 which can be used in the pNext chain of + * vkDeviceCreateInfo, in which case it should be used instead of + * pEnabledFeatures. + */ + const VkPhysicalDeviceFeatures2 *features2 = + vk_find_struct_const(pCreateInfo->pNext, PHYSICAL_DEVICE_FEATURES_2); + if (features2) { + memcpy(&device->features, &features2->features, + sizeof(device->features)); + } else if (pCreateInfo->pEnabledFeatures) { memcpy(&device->features, pCreateInfo->pEnabledFeatures, sizeof(device->features)); - - if (device->features.robustBufferAccess) - perf_debug("Device created with Robust Buffer Access enabled.\n"); } + if (device->features.robustBufferAccess) + perf_debug("Device created with Robust Buffer Access enabled.\n"); + int ret = drmSyncobjCreate(physical_device->render_fd, DRM_SYNCOBJ_CREATE_SIGNALED, &device->last_job_sync);