Ouiais c'était ça, j'avais oublié que j'avais de la semi-transparence pour les tiles au sol.
Bref, c'est pas grâve, j'ai retiré le z pour les tiles au sol, je n'en ai de toute façon pas besoin, là je peux m'arranger facilement pour avoir un type de tile pour le sol par tileset et les ordres d'affichage ne changent pas pour le sol. (L'herbe s'affiche toujours au dessus de la pière pour bien faire la transition entre les tiles.)
Par contre pour toutes les autres tiles (bâtiments, murs, personnage, arbres, etc...), j'ai besoin du depthtest absolument si j'utilise des tilemaps car le personnage peut être devant ou derrière les murs, bâtiments, etc..., les murs peuvent eux aussi être devant ou derrière les bâtiments, etc...)
Mais bon ça ne me pose pas de problème car il n'y a que les tiles du sol qui contiennent de la semi-tranparence. (Dont les bords qui ont des pixels avec une valeur de alpha très petites du coups bah ça se mélangeais avec la couleur de fond et non pas avec la tile du dessous.)
Bref j'ai trouvé la solution en retirant le z pour les couches du sol donc mon problème est résolu et ça tourne plus vite, il faudra juste que je ne fasse pas de semi-transparence pour les autres tiles que celles au sol.
Sinon je suis reparti pour faire de l'affichage sprite par sprite. (Sauf peut être si j'utilise une render texture..., mais je ne sais pas exactement comment ça marche ça, mais il me semble que ça fait aussi appel à plusieurs draw pour dessiner tout sur la rendertexture donc..., je n'y gagnerai pas au niveau des perfs.)
Performances qui ont besoin d'être très bonne surtout dans mon cas.