In opengl, (-1, -1) is lower left
In vulkan, it is upper left, so I set the projection matrix [1][1] cell to -1 to flip the y-axis and make it match opengl

depth ranges ([-1, 1] in OpenGL, [0, 1] in Vulkan)

Vulkan coordinates:
X+ points toward right
Y+ points toward down (but I flip it in vulkangame in the perspective matrix to point up)
Z+ points toward inside the screen

In opengl, all 3 coordinates range from -1 to 1

For the perspective matrix, after the vertex shader finishes, the x, y, and z of the final point are automatically divided
by the w. For testing the projection matrix in the console, I could do that manually as well.