From c2bc0d1b88effe286b61aabfa4a26ac539c3ec74 Mon Sep 17 00:00:00 2001 From: nihui Date: Thu, 22 Aug 2019 23:59:21 +0800 Subject: [PATCH] padding vulkan reflect mode --- src/layer/vulkan/shader/padding.comp | 10 ++++++++++ src/layer/vulkan/shader/padding_pack4.comp | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/layer/vulkan/shader/padding.comp b/src/layer/vulkan/shader/padding.comp index fe77fcb4e..479511fe7 100644 --- a/src/layer/vulkan/shader/padding.comp +++ b/src/layer/vulkan/shader/padding.comp @@ -78,6 +78,16 @@ void main() x = clamp(x, 0, p.w - 1); y = clamp(y, 0, p.h - 1); + int v_offset = gz * p.cstep + y * p.w + x; + top_blob_data[gz * p.outcstep + gy * p.outw + gx] = bottom_blob_data[v_offset]; + } + else if (type == 2) + { + x = abs(x); + y = abs(y); + x = (p.w - 1) - abs(x - (p.w - 1)); + y = (p.h - 1) - abs(y - (p.h - 1)); + int v_offset = gz * p.cstep + y * p.w + x; top_blob_data[gz * p.outcstep + gy * p.outw + gx] = bottom_blob_data[v_offset]; } diff --git a/src/layer/vulkan/shader/padding_pack4.comp b/src/layer/vulkan/shader/padding_pack4.comp index 82b0e5808..22c0656e5 100644 --- a/src/layer/vulkan/shader/padding_pack4.comp +++ b/src/layer/vulkan/shader/padding_pack4.comp @@ -83,6 +83,16 @@ void main() x = clamp(x, 0, p.w - 1); y = clamp(y, 0, p.h - 1); + int v_offset = gz * p.cstep + y * p.w + x; + top_blob_data[gz * p.outcstep + gy * p.outw + gx] = bottom_blob_data[v_offset]; + } + else if (type == 2) + { + x = abs(x); + y = abs(y); + x = (p.w - 1) - abs(x - (p.w - 1)); + y = (p.h - 1) - abs(y - (p.h - 1)); + int v_offset = gz * p.cstep + y * p.w + x; top_blob_data[gz * p.outcstep + gy * p.outw + gx] = bottom_blob_data[v_offset]; }