diff --git a/frameworks/innerkitsimpl/codec/src/image_source.cpp b/frameworks/innerkitsimpl/codec/src/image_source.cpp
index 30514e7cb2f7ed5fd07f313c28da22540c5319b3..19a62c35d237337513b6b2d1a363a4981b1e1a71 100644
--- a/frameworks/innerkitsimpl/codec/src/image_source.cpp
+++ b/frameworks/innerkitsimpl/codec/src/image_source.cpp
@@ -3575,7 +3575,7 @@ static bool ReadFileAndResoveAstc(size_t fileSize, size_t astcSize, unique_ptr
GetPixelFormat()};
if (ImageSystemProperties::GetNoPaddingEnabled()) {
- memoryData.usage = BUFFER_USAGE_PREFER_NO_PADDING;
+ memoryData.usage = BUFFER_USAGE_PREFER_NO_PADDING | BUFFER_USAGE_ALLOC_NO_IPC;
}
ImageInfo pixelAstcInfo;
pixelAstc->GetImageInfo(pixelAstcInfo);
diff --git a/frameworks/innerkitsimpl/common/src/pixel_map.cpp b/frameworks/innerkitsimpl/common/src/pixel_map.cpp
index 8fb43e94b3dda8f4d02d66dd42cca7a11ef0e45a..18d795be96b4a92c331a38f2eb22602a39ac3169 100644
--- a/frameworks/innerkitsimpl/common/src/pixel_map.cpp
+++ b/frameworks/innerkitsimpl/common/src/pixel_map.cpp
@@ -4717,7 +4717,7 @@ uint64_t PixelMap::GetNoPaddingUsage()
}
SurfaceBuffer* sbBuffer = reinterpret_cast(GetFd());
if (sbBuffer->GetUsage() & BUFFER_USAGE_PREFER_NO_PADDING) {
- return BUFFER_USAGE_PREFER_NO_PADDING;
+ return BUFFER_USAGE_PREFER_NO_PADDING | BUFFER_USAGE_ALLOC_NO_IPC;
}
return 0;
#else
diff --git a/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp b/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp
index bee4492642ffb751e973377a7a2ef497e74c5e54..e9b599d3fc55327c030c3634a90ebfcfd1378e3b 100644
--- a/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp
+++ b/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp
@@ -314,7 +314,7 @@ uint32_t ExtDecoder::DmaMemAlloc(DecodeContext &context, uint64_t count, SkImage
BufferRequestConfig requestConfig = CreateDmaRequestConfig(dstInfo, count, context.info.pixelFormat);
if (context.useNoPadding) {
IMAGE_LOGI("%{public}s no padding enabled", __func__);
- requestConfig.usage |= BUFFER_USAGE_PREFER_NO_PADDING;
+ requestConfig.usage |= BUFFER_USAGE_PREFER_NO_PADDING | BUFFER_USAGE_ALLOC_NO_IPC;
}
return DmaAlloc(context, count, requestConfig);
#endif
diff --git a/plugins/common/libs/image/libsvgplugin/src/svg_decoder.cpp b/plugins/common/libs/image/libsvgplugin/src/svg_decoder.cpp
index bd929e03c64f27add686415aa761a8a8cf6c5813..ab502c7a74382e57ebd0c42304a4ee6b9072e986 100644
--- a/plugins/common/libs/image/libsvgplugin/src/svg_decoder.cpp
+++ b/plugins/common/libs/image/libsvgplugin/src/svg_decoder.cpp
@@ -138,7 +138,7 @@ bool AllocDmaBuffer(DecodeContext &context, uint64_t byteCount, SkSize &svgSize)
.transform = GraphicTransformType::GRAPHIC_ROTATE_NONE,
};
if (context.useNoPadding) {
- requestConfig.usage |= BUFFER_USAGE_PREFER_NO_PADDING;
+ requestConfig.usage |= BUFFER_USAGE_PREFER_NO_PADDING | BUFFER_USAGE_ALLOC_NO_IPC;
}
GSError ret = sb->Alloc(requestConfig);
cond = (ret != GSERROR_OK);