Everyone is above the law, not least the police, in Jon S Baird’s giddy and grim black comedy adapted from Irvine Welsh’s 1998 novel of the same name.
Infused with directorial brio and no-holds-barred performances from an excellent ensemble cast, Filth mixes a heady cocktail of sex, drugs and wanton violence then spikes the noxious brew with a generous dash of racism and homophobia.
Those of a nervous disposition will be fortunate to survive the opening five minutes unscathed, as Baird paints a wickedly funny portrait of Edinburgh’s police as a boy’s club of degenerates and scoundrels, who commit adultery and gleefully sabotage a colleague’s chances of promotion.
Not since Danny Boyle’s screen version of Trainspotting more than 15 years ago has a film realised Welsh’s distinctive voice with such flair.
By necessity, some of the book’s devices, including a tapeworm, have been sacrificed to construct a narrative thread that we can cling to through the madness and debauchery, but the author’s twisted humour defiantly sticks up two fingers in almost every frame.
Glasgow’s golden boy James McAvoy takes the sheen off his nice-guy screen image as misanthropic schemer, DS Bruce Robertson, who lords over his colleagues and shamelessly sucks up to his superior, Chief Inspector Bob Toal (John Sessions).
When Toal dangles a promotion in front of Bruce, the DS ruthlessly targets his five rivals – Peter Inglis (Emun Elliott), Amanda Drummond (Imogen Poots), Dougie Gillman (Brian McCardie), Ray Lennox (Jamie Bell) and Gus Bain (Gary Lewis) – by exploiting their insecurities.
So Bruce scrawls graffiti on the station’s toilet wall questioning Peter’s sexuality, teases Ray about the size of his manhood and sleeps with Dougie’s beloved wife Chrissie (Kate Dickie).
Unfortunately, Bruce’s mental state is precarious and when his plans suffer a setback, his world whirls out of control.
The only glimmer of hope is a young widow, Mary (Joanne Froggatt), whose innate kindness might not be enough to drag Bruce back from the abyss.
Filth is anchored by an all-guns-blazing central turn from McAvoy, who has gained a few pounds for the role.
He drops his kecks for almost every female co-star then suffers nightmarish visions involving psychiatrist Dr Rossi (Jim Broadbent).
Supporting performances are equally colourful, including Henderson in breathlessly vampish form, plus David Soul enjoys a hallucinogenic cameo, leading a boozy sing-along to his song Silver Lady.
Baird makes light work of the trim running time, delivering a sledgehammer to the guts with a resolution that almost makes us feel sorry for Bruce, despite his heinous, self-serving actions.