Ok, I think I got it:
There are 2 windows and the same image is drawn in both of them :
- In the first window the image seems to be correct (it is stretched over the whole window, mipmapping / filtering seems to work as intended).
- In the second window the back buffer is streched over a 500x500 region. Probably the back buffer isn't 500x500 pixels, so the image to be presented is stretched without any filtering. I'm not sure if there is a way to stretch with some filtering operation - anyhow, if the back buffer isn't the same size as the destination rectangle the image quality won't be the same.
Cheers!
[edit] to fix the problem, you'll need another swap chain for the other window, with the correct back buffer size
[edit 2] or fix your RECT rc to match the back buffer size