diff --git a/src/layer/vulkan/shader/padding.comp b/src/layer/vulkan/shader/padding.comp index 6b8b05199..e9dbdf26b 100644 --- a/src/layer/vulkan/shader/padding.comp +++ b/src/layer/vulkan/shader/padding.comp @@ -134,9 +134,14 @@ void main() x = abs(x); y = abs(y); z = abs(z); - x = (psc(w) - 1) - abs(x - (psc(w) - 1)); - y = (psc(h) - 1) - abs(y - (psc(h) - 1)); - z = (psc(c) - 1) - abs(z - (psc(c) - 1)); + // NOTE psc(X) get zeros on nvidia + // TODO only enable this workaround for some nvidia driver + x = (p.w - 1) - abs(x - (p.w - 1)); + y = (p.h - 1) - abs(y - (p.h - 1)); + z = (p.c - 1) - abs(z - (p.c - 1)); +// x = (psc(w) - 1) - abs(x - (psc(w) - 1)); +// y = (psc(h) - 1) - abs(y - (psc(h) - 1)); +// z = (psc(c) - 1) - abs(z - (psc(c) - 1)); #if NCNN_image_shader image3d_cp1(top_blob, ivec3(gx, gy, gz), bottom_blob, ivec3(x, y, z)); diff --git a/src/layer/vulkan/shader/padding_pack4.comp b/src/layer/vulkan/shader/padding_pack4.comp index fcdeb6530..2d20b6105 100644 --- a/src/layer/vulkan/shader/padding_pack4.comp +++ b/src/layer/vulkan/shader/padding_pack4.comp @@ -131,8 +131,12 @@ void main() { x = abs(x); y = abs(y); - x = (psc(w) - 1) - abs(x - (psc(w) - 1)); - y = (psc(h) - 1) - abs(y - (psc(h) - 1)); + // NOTE psc(X) get zeros on nvidia + // TODO only enable this workaround for some nvidia driver + x = (p.w - 1) - abs(x - (p.w - 1)); + y = (p.h - 1) - abs(y - (p.h - 1)); +// x = (psc(w) - 1) - abs(x - (psc(w) - 1)); +// y = (psc(h) - 1) - abs(y - (psc(h) - 1)); #if NCNN_image_shader image3d_cp4(top_blob, ivec3(gx, gy, gz), bottom_blob, ivec3(x, y, gz)); diff --git a/src/layer/vulkan/shader/padding_pack8.comp b/src/layer/vulkan/shader/padding_pack8.comp index 4002e4650..31890371e 100644 --- a/src/layer/vulkan/shader/padding_pack8.comp +++ b/src/layer/vulkan/shader/padding_pack8.comp @@ -133,8 +133,12 @@ void main() { x = abs(x); y = abs(y); - x = (psc(w) - 1) - abs(x - (psc(w) - 1)); - y = (psc(h) - 1) - abs(y - (psc(h) - 1)); + // NOTE psc(X) get zeros on nvidia + // TODO only enable this workaround for some nvidia driver + x = (p.w - 1) - abs(x - (p.w - 1)); + y = (p.h - 1) - abs(y - (p.h - 1)); +// x = (psc(w) - 1) - abs(x - (psc(w) - 1)); +// y = (psc(h) - 1) - abs(y - (psc(h) - 1)); #if NCNN_image_shader image3d_cp8(top_blob, ivec3(gx, gy, gz), bottom_blob, ivec3(x, y, gz));