From 64998d2bc8ec062186ba15978789b042ee831721 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 9 Jun 2026 11:12:52 -0700
Subject: [PATCH] Fixed a hang reading the Xbox report descriptor on macOS
---
src/joystick/hidapi/SDL_hidapi_xboxone.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/joystick/hidapi/SDL_hidapi_xboxone.c b/src/joystick/hidapi/SDL_hidapi_xboxone.c
index 14dc6cb0d3857..2f6cf14cf2550 100644
--- a/src/joystick/hidapi/SDL_hidapi_xboxone.c
+++ b/src/joystick/hidapi/SDL_hidapi_xboxone.c
@@ -404,6 +404,8 @@ static bool HIDAPI_DriverXboxOne_InitDevice(SDL_HIDAPI_Device *device)
device->context = ctx;
+// The Xbox controller doesn't have real HID report descriptors, but Linux synthesizes them for us
+#ifdef SDL_PLATFORM_LINUX
Uint8 descriptor[1024];
int descriptor_len = SDL_hid_get_report_descriptor(device->dev, descriptor, sizeof(descriptor));
if (descriptor_len > 0) {
@@ -453,6 +455,7 @@ static bool HIDAPI_DriverXboxOne_InitDevice(SDL_HIDAPI_Device *device)
} else {
SDL_LogDebug(SDL_LOG_CATEGORY_INPUT, "Xbox report descriptor not available");
}
+#endif // SDL_PLATFORM_LINUX
ctx->vendor_id = device->vendor_id;
ctx->product_id = device->product_id;