Correctly check max 1D image buffer size
VDI reports the limits in pixels, but user provides the size in bytes.
Make sure both values are in pixels before doing comparisons.
Change-Id: I082c7175c9fa4383e0b0ee38ff8c047c26ff20b4
[ROCm/clr commit: 28da0b89ea]
This commit is contained in:
committed by
Vladislav Sytchenko
parent
5ae3b3ac31
commit
7779046de8
@@ -895,4 +895,9 @@ HIP_RESOURCE_VIEW_DESC getResourceViewDesc(const hipResourceViewDesc& resViewDes
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
inline
|
||||
size_t getElementSize(const hipChannelFormatDesc &desc) {
|
||||
return (desc.x / 4) * getNumChannels(desc);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -100,7 +100,7 @@ hipError_t ihipCreateTextureObject(hipTextureObject_t* pTexObject,
|
||||
if ((pResDesc->resType == hipResourceTypeLinear) &&
|
||||
((pResDesc->res.linear.devPtr == nullptr) ||
|
||||
(!amd::isMultipleOf(pResDesc->res.linear.devPtr, info.imageBaseAddressAlignment_)) ||
|
||||
(pResDesc->res.linear.sizeInBytes >= info.imageMaxBufferSize_))) {
|
||||
((pResDesc->res.linear.sizeInBytes / hip::getElementSize(pResDesc->res.linear.desc)) >= info.imageMaxBufferSize_))) {
|
||||
return hipErrorInvalidValue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user