SWDEV-462404 - Fix num_mip_levels for 1D Buffer

Updating field num_mip_levels to better align with OpenCL specification that mip-mapped images can not be created for CL_MEM_OBJECT_IMAGE1D_BUFFER images. Added check for miplevels value used for ClCreateImage call.

Change-Id: I82a25b83ef0637a877409572b7976d9e4413dfac


[ROCm/clr commit: 21a1c9075a]
This commit is contained in:
cadolphe
2024-05-27 11:26:36 -04:00
zatwierdzone przez Chris Adolphe
rodzic 0193d66679
commit a82e0fe333
@@ -4109,9 +4109,17 @@ RUNTIME_ENTRY_RET(cl_mem, clCreateImage,
return (cl_mem)0;
}
// Mip-mapped images can not be created for IMAGE1D_BUFFER
if (image_desc->num_mip_levels != 0) {
*not_null(errcode_ret) = CL_INVALID_MIP_LEVEL;
LogWarning("Invalid mip level");
return (cl_mem)0;
}
image = new (amdContext) amd::Image(
buffer, CL_MEM_OBJECT_IMAGE1D_BUFFER, (flags != 0) ? flags : buffer.getMemFlags(),
imageFormat, image_desc->image_width, 1, 1, imageRowPitch, imageSlicePitch);
imageFormat, image_desc->image_width, 1, 1, imageRowPitch, imageSlicePitch,
image_desc->num_mip_levels);
} break;
case CL_MEM_OBJECT_IMAGE1D_ARRAY:
image =