Why I still get wrong checksum packet in physical host?

I use qemu to run 2 vm and they are in one bridge. I use wireshark to capture the packets on physical host. One vm send udp packets to another, and wireshark shows that the packets has wrong udp checksum, but ip checksum is good. I do not very understand about checksum offload. Since I capture at physical host, the packets must have leave the vm, so the vm generate wrong checksum? But another VM can receive, so the checksum should be good. It is really ambivalent.