This proposal is to drop the ability to store per-face images, (known as TexFace).
TexFace doesn't fit into modern shading pipelines since any material can use any image,
it means materials can't be drawn in batches and need to context switch.
(or we need to prepare material & image combinations in advance).
TexFace is only used by Blender Internal and optionally the Game Engine (when 'Face Textures' is enabled).
Since Blender's drawing code is being re-written, 2.8x is a good opportunity to drop tex-face support.
Ideally we could remove TexFace entirely, however it contains texture coordinates which are used for placing particles (see: psys_interpolate_uvs).
These UV's are stored in either quad or triangules (MFace aligned),
so their stored indices wont align with triangle tessellation (MLoopTri 's for example).
Longer term we can check on version-patching particle data so point into the triangulated indices
(which can still detect quads so particles UV coordinates can be applied as-if to a quad).
But this is a bigger task.
The other main user of per-face images is texture baking.
This code can be made to use materials images (as Cycles does already).
- Remove the image member of MTFace (keep only the UV's).
- Remove tex-face data for polygons (MTexFace, keeping MLoopUV).
This way we can remove per-face-image support from the user perspective, and later remove MTFace as part of a refactor with no user visible changes.
The down side is that some Blend files do use single material and TexFace to assign images, which will be lost by this change!
We could generate materials as part of versioning code, but from what I've seen images are often assigned from UV mapping, (setting an image in edit-mode assigns face-images), so this could be very annoying too.
So this proposal is to remove them without attempting generate new materials.