Multiple-input multiple-output (MIMO) techniques have recently demonstrated significant potentials in visible light communications (VLC), as they can overcome the modulation bandwidth limitation and provide substantial improvement in terms of spectral efficiency and link reliability. However, MIMO systems typically suffer from inter-channel interference, which causes severe degradation to the system performance. In this context, we propose a novel optical adaptive precoding (OAP) scheme for the downlink of MIMO VLC systems, which exploits the knowledge of transmitted symbols to enhance the effective signal-to-interference-plus-noise ratio. We also derive bit-error-rate expressions for the OAP under perfect and outdated channel state information (CSI). Our results demonstrate that the proposed scheme is more robust to both CSI error and channel correlation, compared to conventional channel inversion precoding.