Granite Shoals is a city in Burnet County, Texas, United States with a 2020 census population of 5,129.