OpenCL allows buffer allocations to succeed even when nominally all available memory is exhausted. This memory is only required to be available when commands/kernels are enqueued using these buffers. If that is not the case, the correct error to return is CL_MEM_OBJECT_ALLOCATION_FAILURE. It seems that the 13.1 drivers (at least on my "Devastator" APU) return CL_OUT_OF_RESOURCES. This is confusing and appears to be non-compliant. It'd be great if this could be fixed.