The wrong part of an expression was bracketed in the test to determine when a new texture matrix needed to be loaded which resulted in the first pass through _cogl_material_layer_flush_gl_sampler_state not uploading any user matrix.