Hi,

More gbm_bo_map() issues from me that could use some expert insight.

When I mix GPU access in my GBM adventures, one combination results in a SIGBUS when reading the memory given from gbm_bo_map(). I'm unsure if this is a bug in the driver, or in my access?

What I do is:

1. X server does gbm_create_device() on the integrated Radeon GPU
2. I start vkcube, pointing it at the discrete Intel ARC GPU
3. I assume Vulkan does DRI3PixmapFromBuffer, with a buffer from the Intel GPU
4. X server does:
        gbm_bo_import(<radeon device>, GBM_BO_IMPORT_FD, <Intel fd>,
                      GBM_BO_USE_RENDERING | GBM_BO_USE_LINEAR)
5. Vulkan does PresentPixmap
6. X server does gbm_bo_map() and then tries to read the pixels
7. SIGBUS!

Oddly enough, it works fine if I mix the GPUs the other way around.

Is there something special I need to pay attention to when doing cross GPU stuff? I would have assumed that gbm_bo_import() would have complained if this was an incompatible setup.

Regards
--
Pierre Ossman           Software Development
Cendio AB               https://cendio.com
Teknikringen 8          https://twitter.com/ThinLinc
583 30 Linköping        https://facebook.com/ThinLinc
Phone: +46-13-214600

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Reply via email to