So it can be dumped with info log when linking fails.
"Cache data" can be used to assist a driver with creating pipelines by using previously-compiled shader ISA.
Depending on which constructor is invoked, m_id or m_compute_program_id can end up in an uninitialized state. We should ensure that the object is completely initialized to something deterministic regardless of the constructor taken.