Some drivers don't support SHM pixmaps, but rendercheck doesn't care and tries to use them anyway. This causes the test to abort:
Beginning SHM blend test from a8 X Error of failed request: BadImplementation (server does not implement operation) Major opcode of failed request: 130 (MIT-SHM) Minor opcode of failed request: 5 (X_ShmCreatePixmap) Serial number of failed request: 805 Current serial number in output stream: 811 X Error of failed request: BadDrawable (invalid Pixmap or Window parameter) Major opcode of failed request: 139 (RENDER) Minor opcode of failed request: 4 (RenderCreatePicture) Resource id in failed request: 0x3200215 Serial number of failed request: 806 Current serial number in output stream: 811 Fix this by skipping the shmblend tests if the extension is missing or doesn't support pixmaps. Signed-off-by: Aaron Plattner <[email protected]> --- On a related note, BadImplementation seems like the wrong error for a client trying to create SHM pixmaps when they're not supported. t_shmblend.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/t_shmblend.c b/t_shmblend.c index 752e17a0f8a8..c717f91d7b9b 100644 --- a/t_shmblend.c +++ b/t_shmblend.c @@ -47,9 +47,6 @@ get_x_shm_info(Display *dpy, size_t size) { XShmSegmentInfo *shm_info = calloc(1, sizeof(*shm_info)); - if (!XShmQueryExtension(dpy)) - return NULL; - shm_info->shmid = shmget(IPC_PRIVATE, size, IPC_CREAT|0777); if (shm_info->shmid < 0) { free(shm_info); @@ -225,7 +222,16 @@ static struct rendercheck_test_result test_shmblend(Display *dpy) { struct rendercheck_test_result result = {}; - int i; + int major, minor, i; + Bool pixmaps_supported; + + if (!XShmQueryExtension(dpy) || + !XShmQueryVersion(dpy, &major, &minor, &pixmaps_supported) || + !pixmaps_supported) { + printf("SHM blend test: skipped\n"); + record_result(&result, true); + return result; + } for (i = 0; i < nformats; i++) { struct render_format *format = &formats[i]; -- 2.12.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
