In my experience it's still woefully inadequate. The tools to test and debug software written to those interfaces is decades behind CPU software. The cost of software debugging and maintenance often exceeds the cost of development, rendering GPU bases software too expensive to maintain. AMD is probably the best positioned company to solve this problem with heterogeneous programming but we are still far from there yet.