every tx gets hashed twice (segwit) just for commitment to the block. then there's merkle hashing of all txs, twice (segwit), all headers are hashed, and all signatures require another (unique) hash of the tx, and for segwit this requires hashing inputs, outputs and witnesses first.
(edited)