I noticed that we should be fine and avoid spec violation by simply always declaring images and buffer as external host pointer compatible. Spec says that it means they may (not must) be used as a backing store. It's a bit weird and sub-optimal to do that and then bind them to device local only memory, but AFAICS it's not prohibited anywhere and fine with the spec.