P4 to Git Change 1383787 by skeely@skeely_HSA_linux on 2017/03/09 19:08:12
SWDEV-3 - Fix createView for interop images.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocmemory.cpp#13 edit
[ROCm/clr commit: 4a7edb2164]
This commit is contained in:
@@ -1044,20 +1044,18 @@ Image::createView(const Memory &parent)
|
||||
? deviceMemory_
|
||||
: static_cast<const Image&>(parent).originalDeviceMemory_;
|
||||
|
||||
amd::Memory* oldestParent = parent.owner();
|
||||
while (oldestParent->parent() != nullptr) {
|
||||
oldestParent = oldestParent->parent();
|
||||
//Detect image view from buffer to distinguish linear paths from tiled.
|
||||
amd::Memory* ancestor = parent.owner();
|
||||
while ((ancestor->asBuffer() == nullptr) && (ancestor->parent() != nullptr)) {
|
||||
ancestor = ancestor->parent();
|
||||
}
|
||||
bool linearLayout = (ancestor->asBuffer() != nullptr);
|
||||
|
||||
kind_ = parent.getKind();
|
||||
version_ = parent.version();
|
||||
|
||||
hsa_status_t status;
|
||||
if (kind_ == MEMORY_KIND_INTEROP) {
|
||||
status = hsa_amd_image_create(dev().getBackendDevice(), &imageDescriptor_,
|
||||
amdImageDesc_, deviceMemory_, permission_, &hsaImageObject_);
|
||||
}
|
||||
else if (oldestParent->asBuffer()) {
|
||||
if (linearLayout) {
|
||||
size_t rowPitch;
|
||||
amd::Image& ownerImage = *owner()->asImage();
|
||||
size_t elementSize = ownerImage.getImageFormat().getElementSize();
|
||||
@@ -1077,8 +1075,11 @@ Image::createView(const Memory &parent)
|
||||
&imageDescriptor_, deviceMemory_, permission_,
|
||||
HSA_EXT_IMAGE_DATA_LAYOUT_LINEAR, rowPitch, 0,
|
||||
&hsaImageObject_);
|
||||
}
|
||||
else {
|
||||
} else if (kind_ == MEMORY_KIND_INTEROP) {
|
||||
amdImageDesc_ = static_cast<Image*>(parent.owner()->getDeviceMemory(dev()))->amdImageDesc_;
|
||||
status = hsa_amd_image_create(dev().getBackendDevice(), &imageDescriptor_,
|
||||
amdImageDesc_, deviceMemory_, permission_, &hsaImageObject_);
|
||||
} else {
|
||||
status= hsa_ext_image_create(dev().getBackendDevice(), &imageDescriptor_,
|
||||
deviceMemory_, permission_, &hsaImageObject_);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user