Fixes#99592
The following variables were set too early, and later code never ran..
prev_shader, prev_variant, prev_spec_constants variables
These variables were shared in two different branch conditions but were
updated inside the first one, so the second could never be true..
The condition to update lighting also should check prev_spec_constants
since it updates that uniform.