diff --git a/projects/clr/rocclr/runtime/device/rocm/rocmemory.cpp b/projects/clr/rocclr/runtime/device/rocm/rocmemory.cpp index 7b5593da86..2b68d53143 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocmemory.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocmemory.cpp @@ -902,6 +902,15 @@ bool Image::createInteropImage() { return false; } + originalDeviceMemory_ = deviceMemory_; + + if(obj->getGLTarget() == GL_TEXTURE_BUFFER) { + hsa_status_t err = + hsa_ext_image_create(dev().getBackendDevice(), &imageDescriptor_, + originalDeviceMemory_, permission_, &hsaImageObject_); + return (err == HSA_STATUS_SUCCESS); + } + image_metadata desc; if (!desc.create(amdImageDesc_)) return false; @@ -909,8 +918,6 @@ bool Image::createInteropImage() { if (obj->getGLTarget() == GL_TEXTURE_CUBE_MAP) desc.setFace(obj->getCubemapFace()); - originalDeviceMemory_ = deviceMemory_; - hsa_status_t err = hsa_amd_image_create(dev().getBackendDevice(), &imageDescriptor_, amdImageDesc_, originalDeviceMemory_, permission_, &hsaImageObject_);