first draft dynamic shader compilation