iris: Infinite loop calling `DRM_IOCTL_I915_GEM_EXECBUFFER2` if dmabuf `get_sg_table` fails
I've seen this with the Nvidia proprietary driver, but presumably any dmabuf that fails to map with get_sg_table
would see the same issue.
mesa/mesa!20449 (merged) added a loop here, handling the ENOMEM
error, but it seems that case isn't the only problem that could raise ENOMEM
.
https://github.com/ids1024/egl-dmabuf-test/blob/master/src/test-external-framebuffer.c is a simple test that demonstrates this, if you have an Nvidia and Iris device node and have the hard-coded devnode numbers set to them. This particular case, at least, tries to render to an Nvidia dmabuf using the Intel GPU. It perhaps should fail, but not by entering an infinite loop inside Mesa.