Hi,
I own Diablo 2... this would be a good reason to dust it off :)
I should get it by today :) I ordered it at Amazon for a cheap price. Usually it takes 3 days until I get things. Snail mail that is :).
I am running fglrx as well, so I could work on getting the performance up on these cards. I also have contacts at ATI, so if there are specific problem I could send feedback directly, and hopefully they can fix things for future releases. Although I'd check glDrawPixels on Windows as well... I suspect it is just as slow there. Also for glDrawPixels you should turn off a lot of the GL state (lighting and stuff that you don't need). That could speed things up a bit.
The attached program illustrates the problem: It's a d3d9 app and runs with current Wine CVS. On startup, it shows a black screen. If you press any button(except ESC), it will do a Clear with a solid color based on the key you pressed. If you click anywhere with the left mouse button, it locks the backbuffer, fills it with 0xff, unlocks it and flips. On Mesa radeon this has no effect(image doesn't change), with software rendering it's the same, as well with fglrx. If you change the pixel format to D3DFMT_R8G8B8, then it will work for fglrx. I haven't tested this on Windows, but I was told that it works with Nvidia cards in Wine. I just tested it in some old cvscedega version, and there it works, although I have to click twice.
If you change D3DSWAPEFFECT_FLIP to D3DSWAPEFFECT_DISCARD in line 121, the screen will go black on clicks, with a delay of about one secound, so you can see the slowlyness. In some rare cases in games, glDrawPixels writes a dark, solid color, and if it writes to the front buffer, it's possible to see the new color sliding down slowly.
I suspect that glDrawPixels isn't really broken, but WineD3D sets up render states which break it. I wanted to do a test with a simple GL app, but I didn't find the time yet. Current DDraw is broken in the same way, but it in the most cases, it draws a textured quad instead of using glDrawPixels, which works fine there.