Melt the butter with olive oil in large stock pot. Crush and peel the garlic. Caramelize the garlic in oil and butter until soft. Dump in the onions and season with salt and pepper. Add in the thyme and bay leaf. Let the onions caramelize about 20 minutes.
Pour in the stock and wine and simmer uncovered for at least an hour better 2 hours. Taste and adjust seasoning.
Meanwhile drizzle the pieces of bread with olive oil. Sprinkle parmesan cheese on top. Place on baking sheet and bake in 350 oven for 10 to 15 minutes. Turning once. Remove and set aside.
Remove the sprigs of thyme and bay leaf from soup. Heat your broiler.
Ladle soup into oven proof bowls. Top each with 2 slices of bread. Mix the grated gruyere, pecorino, and parmesan cheese together. Sprinkle cheese on top of bread and place under broiler until cheese is browned and bubbling.