Synchronization between renderpasses in Vulkan

If two render passes are recorded sequentially with the same command buffer, is synchronization required when the second render pass reads the first pass’s output texture in a shader?

Yes, some form of synchronization is needed.

Take a look at the Vulkan Synchronization Examples - I believe this falls under the first situation in the “Graphics to Graphics Dependencies” section.

You need external dependencies. The first render pass needs an external dependency that makes what it to its attachments available and visible to others. A layout transition isn’t enough. Similarly, the second render pass needs an external dependency to be able to use the images from the first render pass.

Also, if you use debug layers, they can usually detect issues like that.