vkGetSwapchainCounterEXT fails with VK_ERROR_INITIALIZATION_FAILED

I have an GeForce GTX 960, and am trying to call vkGetSwapchainCounterEXT in a Vulkan application and it returns a result of VK_ERROR_INITIALIZATION_FAILED, which is not expected according to the spec.

I am correctly loading the extension and its dependencies, and even tried waiting for a few swapchain flips before calling the function.

This is basically how I’m calling the function:

    uint64_t counter = 0;
    PFN_vkVoidFunction proc_addr = vkGetInstanceProcAddr(vulkan_data->instance, "vkGetSwapchainCounterEXT");
    PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT) proc_addr;
    VkResult result = vkGetSwapchainCounterEXT(
        vulkan_data->device, vulkan_data->swapchain,
        VK_SURFACE_COUNTER_VBLANK_EXT, &counter
    );
    VK_CHECK_RESULT(result);