aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2017-07-05 16:50:24 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-09-17 14:15:39 +0100
commitb158fba3d2724abab70706f04069da6fc9146429 (patch)
tree04a7e0f9cf607f565b3857c211efed92dc702005
parent9502f31df35f3006c2e3d9b67d1d586e02646d75 (diff)
downloadComputeLibrary-b158fba3d2724abab70706f04069da6fc9146429.tar.gz
COMPMID-417: Fix output access window in ChannelExtract Kernels.
Change-Id: I0349ef7205e316d85a01e83e86016310143f8886 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/79820 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Moritz Pflanzer <moritz.pflanzer@arm.com>
-rw-r--r--src/core/CL/kernels/CLChannelExtractKernel.cpp11
-rw-r--r--src/core/NEON/kernels/NEChannelExtractKernel.cpp11
2 files changed, 10 insertions, 12 deletions
diff --git a/src/core/CL/kernels/CLChannelExtractKernel.cpp b/src/core/CL/kernels/CLChannelExtractKernel.cpp
index 541153316a..be046cf0a1 100644
--- a/src/core/CL/kernels/CLChannelExtractKernel.cpp
+++ b/src/core/CL/kernels/CLChannelExtractKernel.cpp
@@ -71,12 +71,12 @@ void CLChannelExtractKernel::configure(const ICLTensor *input, Channel channel,
// Configure window
Window win = calculate_max_window(*input->info(), Steps(_num_elems_processed_per_iteration));
AccessWindowHorizontal input_access(input->info(), 0, _num_elems_processed_per_iteration);
- AccessWindowRectangle output_access(input->info(), 0, 0, _num_elems_processed_per_iteration, 1, 1.f / _subsampling, 1.f / _subsampling);
+ AccessWindowRectangle output_access(output->info(), 0, 0, _num_elems_processed_per_iteration, 1, 1.f / _subsampling, 1.f / _subsampling);
update_window_and_padding(win, input_access, output_access);
ValidRegion input_valid_region = input->info()->valid_region();
- output_access.set_valid_region(win, ValidRegion(std::move(input_valid_region.anchor), output->info()->tensor_shape()));
+ output_access.set_valid_region(win, ValidRegion(input_valid_region.anchor, output->info()->tensor_shape()));
ICLKernel::configure(win);
}
@@ -115,11 +115,10 @@ void CLChannelExtractKernel::configure(const ICLMultiImage *input, Channel chann
// Configure window
Window win = calculate_max_window(*input_plane->info(), Steps(_num_elems_processed_per_iteration));
- AccessWindowHorizontal output_access(input_plane->info(), 0, _num_elems_processed_per_iteration);
+ AccessWindowHorizontal input_access(input_plane->info(), 0, _num_elems_processed_per_iteration);
+ AccessWindowHorizontal output_access(output->info(), 0, _num_elems_processed_per_iteration);
- update_window_and_padding(win,
- AccessWindowHorizontal(input_plane->info(), 0, _num_elems_processed_per_iteration),
- output_access);
+ update_window_and_padding(win, input_access, output_access);
output_access.set_valid_region(win, input_plane->info()->valid_region());
diff --git a/src/core/NEON/kernels/NEChannelExtractKernel.cpp b/src/core/NEON/kernels/NEChannelExtractKernel.cpp
index ebc4b85c98..dc31685240 100644
--- a/src/core/NEON/kernels/NEChannelExtractKernel.cpp
+++ b/src/core/NEON/kernels/NEChannelExtractKernel.cpp
@@ -148,12 +148,11 @@ void NEChannelExtractKernel::configure(const ITensor *input, Channel channel, IT
_input = input;
_output = output;
- Window win = calculate_max_window(*input->info(), Steps(num_elems_processed_per_iteration));
- AccessWindowRectangle output_access(input->info(), 0, 0, num_elems_processed_per_iteration, 1, 1.f / subsampling, 1.f / subsampling);
+ Window win = calculate_max_window(*input->info(), Steps(num_elems_processed_per_iteration));
+ AccessWindowHorizontal input_access(input->info(), 0, num_elems_processed_per_iteration);
+ AccessWindowRectangle output_access(output->info(), 0, 0, num_elems_processed_per_iteration, 1, 1.f / subsampling, 1.f / subsampling);
- update_window_and_padding(win,
- AccessWindowHorizontal(input->info(), 0, num_elems_processed_per_iteration),
- output_access);
+ update_window_and_padding(win, input_access, output_access);
ValidRegion input_valid_region = input->info()->valid_region();
@@ -257,8 +256,8 @@ void NEChannelExtractKernel::configure(const IMultiImage *input, Channel channel
_output = output;
Window win = calculate_max_window(*_input->info(), Steps(num_elems_processed_per_iteration));
- AccessWindowHorizontal output_access(output->info(), 0, num_elems_processed_per_iteration);
AccessWindowHorizontal input_access(_input->info(), 0, num_elems_processed_per_iteration);
+ AccessWindowHorizontal output_access(output->info(), 0, num_elems_processed_per_iteration);
update_window_and_padding(win, input_access, output_access);
output_access.set_valid_region(win, _input->info()->valid_region());