fix render state copy bug: add clone() to render state