From: <gb...@di...> - 2000-09-24 16:50:12
|
Hi, > Something is wrong. The (windowed) display looks very confused (see attached > screenshot) on my machine (Linux 2.2.16 on a PII with XFree86 4.0.1). This > is with both real and direct addressing. In banked mode, it works fine. VOSF is disabled by default unless direct or real addressing mode is enabled. Could you please rerun your test with --enable-addressing=banks --enable-vosf ? I think you will get the same result, even in DGA mode. If this was a bug with the direct or real memory access routines, MacOS wouldn't boot I think. Now that you still get strange screen updates, there are several options: - What is your screen resolution ? It seems that your page size is an exact multiple of bytes_per_row. That's not a problem but this explains why complete lines are missing or are not updated in time, instead of several lines plus a portion of the last one from the set. I will guess 640x480 in 8bpp mode according to the information I got from the image. It's clear that 4096 is not an exact multiple of 640 and I too use a 640x480 window and I tried every screen depth except 1 bpp and 24 bpp. - I probably miscalculated the offsets (video_x.cpp/VideoInitBuffer) in the mainBuffer structure though I am pretty sure it is correct to take VideoMonitor.bytes_per_row which turns out to be img->bytes_per_pixel for a windowed display. - Which type of signal handler is used ? Extended signals (siginfo_t) or the hack for Linux/i386 (sigcontext) ? I heard that some early versions of Linux kernels with extended signals were boguous and didn't set up si_addr correctly... Hmm, that's a too easy answer ;-) If this is through the sigcontext hack... well, this is a hack and it works for me because the kenel sources (2.2.5) tell me that the cr2 field contains the faultive address. (linux/arch/i386/mm/fault.c). Bye. -- Gwenolé Beauchesne |