Originally Posted by TPeterson
I've just corresponded with my MIT contact and it seems that this problem bothers him as much as us...but the only remedy that he knows will work is to completely replace the Windows API that's used to create the OSD with their own (not yet written) code--not an easy job, and not (IMO) likely to occur before erstwhile planet Pluto melts.
However...he does dangle the possibility
that there is some other fix for the problem if only we could better nail it down. But since it's such a rare critter and, AFAIK, occurs totally at random, that's hard too. He asks if anyone has a recipe to reproduce the effect at will? Anyone care to speak up??
As mentioned above, leaving CC on for a while causes it more often. But I've never found a way to cause it.
However, I'm still very curious about the mechanism for their overlay graphics creation.
I'm going to guess that they have a portion of the MDP-1xx memory act as a buffer that is superimposed on the video. They need to write into this memory the image that they want to display over the video, including a background color that is treated as transparent. And they construct this image using GDI calls in Windows. So assuming the display is set for 1920x1080, they CreateDIBSection() of the same size. Then they CreateDC(), SelectObject() the bitmap into the DC, and render using Fill(), DrawText(), etc. Afterwards, they copy the data to the MDP-1xx memory for display.
So it seems the palette corruption can occur either in the DIB or in the MDP-1xx.
If the error is occurring in the DIB, then the wrong values would be written into the DIB by the GDI calls. Since the value written is the value provided by the GDI call, this type of problem would be obvious everywhere. So I don't see how this is possible, without some mistake on MIT's part (palettes and DCs are annoyingly complicated).
If it's in the MDP-1xx, which I've always suspected, then they can't blame Windows.
Of course, all of the above things I ASS-U-ME, may be very far from the mark. So I'd love to know the technical details of why they say it's a Windows thing.