SDL_RenderGeometry()
does whatever the underlying hardware does, which is all but guaranteed to be perspective-correct these days.
The problem the OP was having was trying to get a 3D perspective effect using only 2D vertices. The result they were seeing was correct for each 2D triangle. Now, if they were supplying 3D vertices, and SDL was using a perspective projection matrix, and the OP was still getting the results they got then the issue would be that the underlying hardware only supported affine texture mapping.
Basically, SDL_RenderGeometry()
isn’t for 3D, it’s for 2D triangles.