diff options
author | Joel Liang <joel.liang@arm.com> | 2017-11-15 12:13:59 +0800 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-11-02 16:35:24 +0000 |
commit | aa29fdef732fa2e56943b982a8643d579d2f3714 (patch) | |
tree | 3fedf84f3999930f12c5f5b043b87e68980af003 /src/core/GLES_COMPUTE/cs_shaders/helpers_cs.h | |
parent | 63485cea64df16d76f37fb74be85e77497471fac (diff) | |
download | ComputeLibrary-aa29fdef732fa2e56943b982a8643d579d2f3714.tar.gz |
APPBROWSER-298: Workaround Bifrost shader compiler issue
On Bifrost platform, we got this compile error for statement "data = unpack8_half(src_ptr[0])"
Error: Compiler log:
2:532: S0001: Function call discards 'readonly' access qualifier.
And we need to change it to "data = unpack8_half(uvec4(src_ptr[0]))"
Change-Id: I1b4cc66f88a57cf06275a74c796e89ed6043d2e5
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/95773
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Stephen Li <stephen.li@arm.com>
(cherry picked from commit b2572a8de01cddc7adeacb2eed6a7ba7b8a6cc2d)
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/95952
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Diffstat (limited to 'src/core/GLES_COMPUTE/cs_shaders/helpers_cs.h')
-rw-r--r-- | src/core/GLES_COMPUTE/cs_shaders/helpers_cs.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/GLES_COMPUTE/cs_shaders/helpers_cs.h b/src/core/GLES_COMPUTE/cs_shaders/helpers_cs.h index ad67681067..55a598354a 100644 --- a/src/core/GLES_COMPUTE/cs_shaders/helpers_cs.h +++ b/src/core/GLES_COMPUTE/cs_shaders/helpers_cs.h @@ -361,7 +361,7 @@ mediump vec4[2] unpack8_half(highp uvec4 packed_data) } // For half-precision (16-bits) floating point packed into a "uint" element -#define LOAD_UNPACK2_HALF(tensor_ptr, offset) unpackHalf2x16(LOAD(tensor_ptr, offset)) +#define LOAD_UNPACK2_HALF(tensor_ptr, offset) unpackHalf2x16(uint(LOAD(tensor_ptr, offset))) #define STORE_PACK2_HALF(tensor_ptr, offset, data) STORE(tensor_ptr, offset, packHalf2x16(data)) #define LOAD_UNPACK2_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter) LOAD_UNPACK2_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter)) #define STORE_PACK2_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter, data) STORE_PACK2_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter), data) @@ -377,7 +377,7 @@ mediump vec4[2] unpack8_half(highp uvec4 packed_data) #define VSTORE4_PACK8_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter, data) VSTORE4_PACK8_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter), data) // For half-precision (16-bits) floating point packed into a "uvec2" element -#define LOAD_UNPACK4_HALF(tensor_ptr, offset) unpack4_half(LOAD(tensor_ptr, offset)) +#define LOAD_UNPACK4_HALF(tensor_ptr, offset) unpack4_half(uvec2(LOAD(tensor_ptr, offset))) #define STORE_PACK4_HALF(tensor_ptr, offset, data) STORE(tensor_ptr, offset, pack4_half(data)) #define LOAD_UNPACK4_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter) LOAD_UNPACK4_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter)) #define STORE_PACK4_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter, data) STORE_PACK4_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter), data) @@ -388,7 +388,7 @@ mediump vec4[2] unpack8_half(highp uvec4 packed_data) #define VSTORE2_PACK8_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter, data) VSTORE2_PACK8_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter), data) // For half-precision (16-bits) floating point packed into a "uvec4" element -#define LOAD_UNPACK8_HALF(tensor_ptr, offset) unpack8_half(LOAD(tensor_ptr, offset)) +#define LOAD_UNPACK8_HALF(tensor_ptr, offset) unpack8_half(uvec4(LOAD(tensor_ptr, offset))) #define STORE_PACK8_HALF(tensor_ptr, offset, data) STORE(tensor_ptr, offset, pack8_half(data)) #define LOAD_UNPACK8_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter) LOAD_UNPACK8_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter)) #define STORE_PACK8_CURRENT_ITEM_HALF(tensor_ptr, tensor_iter, data) STORE_PACK8_HALF(tensor_ptr, CURRENT_ITEM_OFFSET(tensor_iter), data) |