@edowson I think I miscommunicated. The CNN and MLP aren’t making the inputs compatible for the function approximator, the are a part of the function approximator. Putting each separate input through an embedding is pretty standard practice (see OpenAI 5 8).
If you have a 2 dimensional image, and you don’t want to flatten it (which is very understandable, computation quickly becomes infeasible if you do) then your only remaining option (outside of a few, very experimental techniques) is to use a 2D CNN. However, 2D CNNs simply aren’t compatible with 1D inputs, so they need be converted to compatible shapes (usually using a CNN to project the 2D image onto a 1D embedding) before they can be concatenated and used together.