gallium/u_queue: allow the execute function to differ per job