shaders use shared buffer