I still think you should call isValid() and call state.update() right before. That will get rid of the dirty transforms problem.