SQL server deadlocks usually happen due to lock resources. Other causes are memory, etc.
When the deadlock error message clearly states that the deadlock is due to lock resources, then does it always mean that Process 1 wants lock on resource A and has lock on resource B. And Process 2 wants lock on resources B and has lock on resource A? Or could this error also be due to latch waits?