[Bug 3902] Need DIB engine (Unnormal slowness in Heroes 4 (X11DRV_BitBlt?))
http://bugs.winehq.org/show_bug.cgi?id=3902 damjan.jov(a)gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #3761 is|0 |1 obsolete| | ------- Additional Comments From damjan.jov(a)gmail.com 2006-13-10 16:41 ------- Created an attachment (id=3848) --> (http://bugs.winehq.org/attachment.cgi?id=3848&action=view) dirty rectangle patch, v2 Well, found out why the dirty rectangle patch sometimes crashes winecfg (a pointer is sometimes NULL), so I posted a new patch that doesn't crash crash. It's against wine-0.9.23, but it should apply cleanly to 0.9.22 (since the 0.9.22 patch applies cleanly against 0.9.23). As far as the client-side DIB copy patch goes, the width and height of the source and destination rectangles have to be the same, otherwise X11DRV_BitBlt (and hence my code) never gets called. I did thorough checks against the x-y coordinates and width and height - they're always valid, positive, in-range - perfect in every way. But I tried to copy the original destination pixels into a buffer, then copy pixels from source to destination, then mark the image DIB_Status_GdiMod and coerce it to DIB_Status_InSync (forcing the image to be downloaded from the X server again), and compare the newly downloaded image with the originally downloaded image. The result? They differ! Somehow, the X server is modifying the image while the pixels are being copied client-side. I've tried using wine_tsx11_lock(), XFlush(), GdiFlush(), glFinish(), tried locking the image in DIB_Status_AppMod or DIB_Status_InSync instead of the current DIB_Status_None, and nothing worked. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
participants (1)
-
Wine Bugs