assert(sm->rshift < LONG_BIT);
}
-static void rtimestamp(double *t) {
+static void rtimestamp(double *t, const char *wh) {
double n= timestamp();
- debugf("PAGING INTERVAL %f\n", n-*t);
+ debugf("PAGING INTERVAL %f %s\n", n-*t, wh);
*t= n;
}
double begin= timestamp();
if (shmim) {
- im_use= shmim;
xassert( XShmGetImage(disp,id,shmim, 0,0, AllPlanes) );
+ rtimestamp(&begin, "XShmGetImage");
+
+ size_t dsz= shmim->bytes_per_line * shmim->height;
+ im_use= im_free= mmalloc(sizeof(*im_use) + dsz);
+ *im_free= *shmim;
+ im_free->data= (void*)(im_free+1);
+ memcpy(im_free->data, shmim->data, dsz);
+ rtimestamp(&begin, "mmalloc/memcpy");
} else {
xassert( im_use= im_free=
XGetImage(disp,id, 0,0, wwidth,wheight, AllPlanes, ZPixmap) );
+ rtimestamp(&begin, "XGetImage");
}
- rtimestamp(&begin);
#define COMPUTE_SHIFT_MASK(ix, rgb) \
compute_shift_mask(&shiftmasks[ix], im_use->rgb##_mask)
if (!*output)
*output= alloc_rgb_image(wwidth, wheight);
- rtimestamp(&begin);
+ rtimestamp(&begin, "compute_shift_masks+alloc_rgb_image");
int x,y,i;
unsigned char *op= (*output)->data;
}
}
- rtimestamp(&begin);
+ rtimestamp(&begin,"w*h*XGetPixel");
if (im_free)
XDestroyImage(im_free);
- rtimestamp(&begin);
+ rtimestamp(&begin,"XDestroyImage");
check_not_disturbed();
debugf("PAGING snapshot done.\n");
check_client_window_all_on_screen();
int shm= XShmQueryExtension(disp);
- // shm=0;
+ shm=0;
if (shm) {
xassert( shmim= XShmCreateImage(disp, attr.visual, attr.depth, ZPixmap,
0,&shminfo, wwidth,wheight) );