SIGBUS with gbm_bo_map() and Intel ARC

Pierre Ossman ossman at cendio.se
Wed Jun 19 09:36:30 UTC 2024


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?


More information about the mesa-dev mailing list