This is an issue with translating the graphics buffer to the screen, it’s a driver issue. There’s differences in the graphics APIs used by older and newer games, sometimes not every version is tested for a given driver / graphics card combination, so stuff like older OpenGL games might not work the same as a newer one running on Vulkan (or which Proton can translate to Vulkan)
Depends on where the exact cause is. Sometimes it’s fixable in another layer (like a compatibility patch in wayland) if all the data is still there, but it really should be fixed in the driver
It’s usually a driver issue as in limited support for your specific graphics card, where some features are implemented differently from other models and not covered in full by the open source drivers