https://bugs.winehq.org/show_bug.cgi?id=49621
--- Comment #5 from Nikolay Sivov bunglehead@gmail.com --- I think the issue is the lifetime of font objects referenced by instance_id. Currently it's invalidated after CreateFont() -> SelectObject() -> SelectObject(old) -> DeleteObject(). Now dwrite resource loader does not duplicate memory and expects instance_id to stay valid, and we have tests showing that this id is used as the key. I think this might be fixable by keeping objects around for as long as memory resource is available.
Best way would be to separate that from freetype integration. Realization data like index and simulations is only required for CreateFontFaceFromHdc() to work, data access only needs instance id to reference same physical font.