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/hip commit: a81e7d63c6]
Этот коммит содержится в:
1 родитель
0da6ea42ba
Коммит
d40203e1c4
2 files changed
+6
-1
No files matched your search
@@ -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