SWDEV-432180 - Support hipArraySurfaceLoadStore
Make hipExternalMemoryGetMappedMipmappedArray() accept
hipArraySurfaceLoadStore.
Make hipCreateSurfaceObject() check hipArraySurfaceLoadStore
flag. If flag is hipArrayDefault, hipCreateSurfaceObject() will
also pass to prevent failure of catch2/swissknife tests.
Change-Id: Ifb7db2db14e0c2208a9661cfa33887ec61ab26a5
[ROCm/clr commit: 1c442658ca]
Tento commit je obsažen v:
@@ -4265,6 +4265,7 @@ hipError_t ihipMipmappedArrayGetLevel(hipArray_t* level_array_pptr,
|
||||
(*level_array_pptr)->NumChannels = hip::getNumChannels((*level_array_pptr)->desc);
|
||||
(*level_array_pptr)->isDrv = 0;
|
||||
(*level_array_pptr)->textureType = 0;
|
||||
(*level_array_pptr)->flags = mipmapped_array_ptr->flags;
|
||||
|
||||
amd::ScopedLock lock(hip::hipArraySetLock);
|
||||
hip::hipArraySet.insert(*level_array_pptr);
|
||||
@@ -4338,8 +4339,7 @@ hipError_t hipExternalMemoryGetMappedMipmappedArray(
|
||||
hipMipmappedArray_t* mipmap, hipExternalMemory_t extMem,
|
||||
const hipExternalMemoryMipmappedArrayDesc* mipmapDesc) {
|
||||
HIP_INIT_API(hipExternalMemoryGetMappedMipmappedArray, mipmap, extMem, mipmapDesc);
|
||||
if (mipmap == nullptr || extMem == nullptr || mipmapDesc == nullptr ||
|
||||
mipmapDesc->flags != hipArrayDefault) {
|
||||
if (mipmap == nullptr || extMem == nullptr || mipmapDesc == nullptr) {
|
||||
HIP_RETURN(hipErrorInvalidValue);
|
||||
}
|
||||
CHECK_STREAM_CAPTURE_SUPPORTED();
|
||||
|
||||
@@ -60,6 +60,11 @@ hipError_t ihipCreateSurfaceObject(hipSurfaceObject_t* pSurfObject,
|
||||
return hipErrorInvalidValue;
|
||||
}
|
||||
|
||||
if (pResDesc->res.array.array->flags != hipArrayDefault &&
|
||||
(pResDesc->res.array.array->flags & hipArraySurfaceLoadStore) == 0) {
|
||||
return hipErrorInvalidValue;
|
||||
}
|
||||
|
||||
amd::Image* image = nullptr;
|
||||
cl_mem memObj = reinterpret_cast<cl_mem>(pResDesc->res.array.array->data);
|
||||
if (!is_valid(memObj)) {
|
||||
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele