mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-07 12:42:54 +08:00
Add extension property reporting for zeImageViewCreateExt
`ZE_extension_image_view` and `ZE_extension_image_view_planar` should be reported by NEO, and `ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC` needs to be recognized Related-to: LOCI-3769 Signed-off-by: Lu, Wenbin <wenbin.lu@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
5610eae710
commit
299985f15e
@@ -113,7 +113,9 @@ struct DriverHandleImp : public DriverHandle {
|
||||
{ZE_CONTEXT_POWER_SAVING_HINT_EXP_NAME, ZE_POWER_SAVING_HINT_EXP_VERSION_CURRENT},
|
||||
{ZE_DEVICE_LUID_EXT_NAME, ZE_DEVICE_LUID_EXT_VERSION_CURRENT},
|
||||
{ZE_DEVICE_IP_VERSION_EXT_NAME, ZE_DEVICE_IP_VERSION_VERSION_CURRENT},
|
||||
{ZE_CACHE_RESERVATION_EXT_NAME, ZE_CACHE_RESERVATION_EXT_VERSION_CURRENT}};
|
||||
{ZE_CACHE_RESERVATION_EXT_NAME, ZE_CACHE_RESERVATION_EXT_VERSION_CURRENT},
|
||||
{ZE_IMAGE_VIEW_EXT_NAME, ZE_IMAGE_VIEW_EXP_VERSION_CURRENT},
|
||||
{ZE_IMAGE_VIEW_PLANAR_EXT_NAME, ZE_IMAGE_VIEW_PLANAR_EXP_VERSION_CURRENT}};
|
||||
|
||||
uint64_t uuidTimestamp = 0u;
|
||||
|
||||
|
||||
@@ -107,6 +107,11 @@ inline ze_result_t prepareL0StructuresLookupTable(StructuresLookupTable &lookupT
|
||||
lookupTable.areImageProperties = true;
|
||||
lookupTable.imageProperties.isPlanarExtension = true;
|
||||
lookupTable.imageProperties.planeIndex = imageViewDesc->planeIndex;
|
||||
} else if (extendedDesc->stype == ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC) {
|
||||
const ze_image_view_planar_ext_desc_t *imageViewDesc = reinterpret_cast<const ze_image_view_planar_ext_desc_t *>(extendedDesc);
|
||||
lookupTable.areImageProperties = true;
|
||||
lookupTable.imageProperties.isPlanarExtension = true;
|
||||
lookupTable.imageProperties.planeIndex = imageViewDesc->planeIndex;
|
||||
} else if (extendedDesc->stype == ZE_STRUCTURE_TYPE_RELAXED_ALLOCATION_LIMITS_EXP_DESC) {
|
||||
const ze_relaxed_allocation_limits_exp_desc_t *relaxedLimitsDesc =
|
||||
reinterpret_cast<const ze_relaxed_allocation_limits_exp_desc_t *>(extendedDesc);
|
||||
|
||||
@@ -109,6 +109,8 @@ void testAppendImageViewNV12Copy(ze_context_handle_t &context, ze_device_handle_
|
||||
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExp(context, device, &imageViewDescPlaneY, srcImg, &planeYImageView));
|
||||
|
||||
planeYdesc.stype = ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC;
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExt(context, device, &imageViewDescPlaneY, srcImg, &planeYImageView));
|
||||
|
||||
@@ -133,6 +135,8 @@ void testAppendImageViewNV12Copy(ze_context_handle_t &context, ze_device_handle_
|
||||
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExp(context, device, &imageViewDescPlaneUV, srcImg, &planeUVImageView));
|
||||
|
||||
planeUVdesc.stype = ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC;
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExt(context, device, &imageViewDescPlaneUV, srcImg, &planeUVImageView));
|
||||
|
||||
@@ -358,6 +362,8 @@ void testAppendImageViewRGBPCopy(ze_context_handle_t &context, ze_device_handle_
|
||||
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExp(context, device, &imageViewDescPlaneY, srcImg, &planeYImageView));
|
||||
|
||||
planeYdesc.stype = ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC;
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExt(context, device, &imageViewDescPlaneY, srcImg, &planeYImageView));
|
||||
|
||||
@@ -382,6 +388,8 @@ void testAppendImageViewRGBPCopy(ze_context_handle_t &context, ze_device_handle_
|
||||
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExp(context, device, &imageViewDescPlaneU, srcImg, &planeUImageView));
|
||||
|
||||
planeUdesc.stype = ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC;
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExt(context, device, &imageViewDescPlaneU, srcImg, &planeUImageView));
|
||||
|
||||
@@ -406,6 +414,8 @@ void testAppendImageViewRGBPCopy(ze_context_handle_t &context, ze_device_handle_
|
||||
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExp(context, device, &imageViewDescPlaneV, srcImg, &planeVImageView));
|
||||
|
||||
planeVdesc.stype = ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC;
|
||||
SUCCESS_OR_TERMINATE(
|
||||
zeImageViewCreateExt(context, device, &imageViewDescPlaneV, srcImg, &planeVImageView));
|
||||
|
||||
|
||||
@@ -1293,7 +1293,7 @@ HWTEST2_F(ImageCreate, WhenCopyingToSshThenSurfacePropertiesAreRetained, IsAtMos
|
||||
delete imageB;
|
||||
}
|
||||
|
||||
HWTEST2_F(ImageCreate, WhenImageViewCreateThenSuccessIsReturned, IsAtLeastSkl) {
|
||||
HWTEST2_F(ImageCreate, WhenImageViewCreateExpThenSuccessIsReturned, IsAtLeastSkl) {
|
||||
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
||||
const size_t width = 32;
|
||||
const size_t height = 32;
|
||||
@@ -1348,5 +1348,60 @@ HWTEST2_F(ImageCreate, WhenImageViewCreateThenSuccessIsReturned, IsAtLeastSkl) {
|
||||
zeImageDestroy(planeY);
|
||||
}
|
||||
|
||||
HWTEST2_F(ImageCreate, WhenImageViewCreateExtThenSuccessIsReturned, IsAtLeastSkl) {
|
||||
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
||||
const size_t width = 32;
|
||||
const size_t height = 32;
|
||||
const size_t depth = 1;
|
||||
|
||||
ze_image_desc_t srcImgDesc = {ZE_STRUCTURE_TYPE_IMAGE_DESC,
|
||||
nullptr,
|
||||
(ZE_IMAGE_FLAG_KERNEL_WRITE | ZE_IMAGE_FLAG_BIAS_UNCACHED),
|
||||
ZE_IMAGE_TYPE_2D,
|
||||
{ZE_IMAGE_FORMAT_LAYOUT_NV12, ZE_IMAGE_FORMAT_TYPE_UINT,
|
||||
ZE_IMAGE_FORMAT_SWIZZLE_R, ZE_IMAGE_FORMAT_SWIZZLE_G,
|
||||
ZE_IMAGE_FORMAT_SWIZZLE_B, ZE_IMAGE_FORMAT_SWIZZLE_A},
|
||||
width,
|
||||
height,
|
||||
depth,
|
||||
0,
|
||||
0};
|
||||
|
||||
auto imageHW = std::make_unique<WhiteBox<::L0::ImageCoreFamily<gfxCoreFamily>>>();
|
||||
auto ret = imageHW->initialize(device, &srcImgDesc);
|
||||
ASSERT_EQ(ZE_RESULT_SUCCESS, ret);
|
||||
|
||||
ze_image_view_planar_ext_desc_t planeYdesc = {};
|
||||
planeYdesc.stype = ZE_STRUCTURE_TYPE_IMAGE_VIEW_PLANAR_EXT_DESC;
|
||||
planeYdesc.planeIndex = 0u; // Y plane
|
||||
|
||||
ze_image_desc_t imageViewDescPlaneY = {ZE_STRUCTURE_TYPE_IMAGE_DESC,
|
||||
&planeYdesc,
|
||||
(ZE_IMAGE_FLAG_KERNEL_WRITE | ZE_IMAGE_FLAG_BIAS_UNCACHED),
|
||||
ZE_IMAGE_TYPE_2D,
|
||||
{ZE_IMAGE_FORMAT_LAYOUT_8, ZE_IMAGE_FORMAT_TYPE_UINT,
|
||||
ZE_IMAGE_FORMAT_SWIZZLE_A, ZE_IMAGE_FORMAT_SWIZZLE_B,
|
||||
ZE_IMAGE_FORMAT_SWIZZLE_G, ZE_IMAGE_FORMAT_SWIZZLE_R},
|
||||
width,
|
||||
height,
|
||||
depth,
|
||||
0,
|
||||
0};
|
||||
ze_image_handle_t planeY;
|
||||
|
||||
ret = imageHW->createView(device, &imageViewDescPlaneY, &planeY);
|
||||
ASSERT_EQ(ZE_RESULT_SUCCESS, ret);
|
||||
|
||||
ASSERT_EQ(ZE_RESULT_SUCCESS, ret);
|
||||
|
||||
auto nv12Allocation = imageHW->getAllocation();
|
||||
|
||||
auto planeYAllocation = Image::fromHandle(planeY)->getAllocation();
|
||||
|
||||
EXPECT_EQ(nv12Allocation->getGpuBaseAddress(), planeYAllocation->getGpuBaseAddress());
|
||||
|
||||
zeImageDestroy(planeY);
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
Reference in New Issue
Block a user