frontends/va: Only export one handle for contiguous planes
What does this MR do and why?
Chromium's VA-API decoder requires that the driver should only export one handle containing all planes (relevant code). This prevents the decoder from working on all Gallium drivers, since vaExportSurfaceHandle returns a separate handle for every layer.
This MR adds a check for PIPE_VIDEO_CAP_SUPPORTS_CONTIGUOUS_PLANES_MAP. If this cap is set a handle is only exported for the first layer. resource_get_info is used to obtain offsets for other layers. Drivers that don't set this cap are unaffected.
Tested with Chromium 119 using the following command line arguments:
--use-gl=angle
--use-angle=vulkan
--enable-accelerated-video-decode
--enable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan,VaapiIgnoreDriverChecks,VaapiVideoDecoder,UseMultiPlaneFormatForHardwareVideo
Hardware video acceleration can be verified by looking for VaapiVideoDecoder in chrome://media-internals or using nvtop.