Skip to content

Commit 68e01dd

Browse files
Revert "Correct set pitch in clEnqueueCopyBufferRect"
This reverts commit a0f3e86. Signed-off-by: Compute-Runtime-Validation <[email protected]>
1 parent 3e4be8d commit 68e01dd

File tree

5 files changed

+11
-245
lines changed

5 files changed

+11
-245
lines changed

opencl/source/api/api.cpp

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2680,23 +2680,6 @@ cl_int CL_API_CALL clEnqueueCopyBufferRect(cl_command_queue commandQueue,
26802680
WithCastToInternal(dstBuffer, &pDstBuffer));
26812681

26822682
if (CL_SUCCESS == retVal) {
2683-
2684-
if (!pSrcBuffer->bufferRectPitchSet(srcOrigin,
2685-
region,
2686-
srcRowPitch,
2687-
srcSlicePitch,
2688-
dstRowPitch,
2689-
dstSlicePitch) ||
2690-
!pDstBuffer->bufferRectPitchSet(dstOrigin,
2691-
region,
2692-
srcRowPitch,
2693-
srcSlicePitch,
2694-
dstRowPitch,
2695-
dstSlicePitch)) {
2696-
retVal = CL_INVALID_VALUE;
2697-
TRACING_EXIT(clEnqueueCopyBufferRect, &retVal);
2698-
return retVal;
2699-
}
27002683
if (!pCommandQueue->validateCapabilityForOperation(CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL, numEventsInWaitList, eventWaitList, event)) {
27012684
retVal = CL_INVALID_OPERATION;
27022685
TRACING_EXIT(clEnqueueCopyBufferRect, &retVal);

opencl/source/mem_obj/buffer.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -558,10 +558,6 @@ bool Buffer::bufferRectPitchSet(const size_t *bufferOrigin,
558558
if (hostSlicePitch == 0)
559559
hostSlicePitch = region[1] * hostRowPitch;
560560

561-
if (region[0] == 0 || region[1] == 0 || region[2] == 0) {
562-
return false;
563-
}
564-
565561
if (bufferRowPitch < region[0] ||
566562
hostRowPitch < region[0]) {
567563
return false;

opencl/test/unit_test/api/cl_enqueue_copy_buffer_rect_tests.inl

Lines changed: 2 additions & 212 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ TEST_F(clEnqueueCopyBufferRectTests, GivenCorrectParametersWhenEnqueingCopyBuffe
3030
MockBuffer dstBuffer;
3131
size_t srcOrigin[] = {0, 0, 0};
3232
size_t dstOrigin[] = {0, 0, 0};
33-
size_t region[] = {10, 10, 1};
33+
size_t region[] = {10, 10, 0};
3434

3535
auto retVal = clEnqueueCopyBufferRect(
3636
pCommandQueue,
@@ -74,7 +74,7 @@ TEST_F(clEnqueueCopyBufferRectTests, GivenQueueIncapableWhenEnqueingCopyBufferRe
7474
MockBuffer dstBuffer;
7575
size_t srcOrigin[] = {0, 0, 0};
7676
size_t dstOrigin[] = {0, 0, 0};
77-
size_t region[] = {10, 10, 1};
77+
size_t region[] = {10, 10, 0};
7878

7979
this->disableQueueCapabilities(CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL);
8080
auto retVal = clEnqueueCopyBufferRect(
@@ -95,214 +95,4 @@ TEST_F(clEnqueueCopyBufferRectTests, GivenQueueIncapableWhenEnqueingCopyBufferRe
9595
EXPECT_EQ(CL_INVALID_OPERATION, retVal);
9696
}
9797

98-
TEST_F(clEnqueueCopyBufferRectTests, givenPitchesEqualZeroAndZerosInRegionWhenCallClEnqueueCopyBufferRectThenClInvalidValueIsReturned) {
99-
MockBuffer srcBuffer;
100-
MockBuffer dstBuffer;
101-
size_t srcOrigin[] = {0, 0, 0};
102-
size_t dstOrigin[] = {0, 0, 0};
103-
size_t region[] = {0, 0, 0};
104-
105-
auto retVal = clEnqueueCopyBufferRect(
106-
pCommandQueue,
107-
&srcBuffer, //srcBuffer
108-
&dstBuffer, //dstBuffer
109-
srcOrigin,
110-
dstOrigin,
111-
region,
112-
0, //srcRowPitch
113-
0, //srcSlicePitch
114-
0, //dstRowPitch
115-
0, //dstSlicePitch
116-
0, //numEventsInWaitList
117-
nullptr,
118-
nullptr);
119-
120-
EXPECT_EQ(CL_INVALID_VALUE, retVal);
121-
}
122-
123-
TEST_F(clEnqueueCopyBufferRectTests, givenZeroInRegionWhenCallClEnqueueCopyBufferRectThenClInvalidValueIsReturned) {
124-
MockBuffer srcBuffer;
125-
MockBuffer dstBuffer;
126-
size_t srcOrigin[] = {0, 0, 0};
127-
size_t dstOrigin[] = {0, 0, 0};
128-
size_t region[] = {0, 0, 0};
129-
130-
auto retVal = clEnqueueCopyBufferRect(
131-
pCommandQueue,
132-
&srcBuffer, //srcBuffer
133-
&dstBuffer, //dstBuffer
134-
srcOrigin,
135-
dstOrigin,
136-
region,
137-
10, //srcRowPitch
138-
0, //srcSlicePitch
139-
10, //dstRowPitch
140-
0, //dstSlicePitch
141-
0, //numEventsInWaitList
142-
nullptr,
143-
nullptr);
144-
145-
EXPECT_EQ(CL_INVALID_VALUE, retVal);
146-
147-
size_t region1[] = {10, 10, 0};
148-
149-
retVal = clEnqueueCopyBufferRect(
150-
pCommandQueue,
151-
&srcBuffer, //srcBuffer
152-
&dstBuffer, //dstBuffer
153-
srcOrigin,
154-
dstOrigin,
155-
region1,
156-
10, //srcRowPitch
157-
0, //srcSlicePitch
158-
10, //dstRowPitch
159-
0, //dstSlicePitch
160-
0, //numEventsInWaitList
161-
nullptr,
162-
nullptr);
163-
164-
EXPECT_EQ(CL_INVALID_VALUE, retVal);
165-
size_t region2[] = {10, 0, 1};
166-
167-
retVal = clEnqueueCopyBufferRect(
168-
pCommandQueue,
169-
&srcBuffer, //srcBuffer
170-
&dstBuffer, //dstBuffer
171-
srcOrigin,
172-
dstOrigin,
173-
region2,
174-
10, //srcRowPitch
175-
0, //srcSlicePitch
176-
10, //dstRowPitch
177-
0, //dstSlicePitch
178-
0, //numEventsInWaitList
179-
nullptr,
180-
nullptr);
181-
182-
EXPECT_EQ(CL_INVALID_VALUE, retVal);
183-
size_t region3[] = {10, 10, 0};
184-
185-
retVal = clEnqueueCopyBufferRect(
186-
pCommandQueue,
187-
&srcBuffer, //srcBuffer
188-
&dstBuffer, //dstBuffer
189-
srcOrigin,
190-
dstOrigin,
191-
region3,
192-
10, //srcRowPitch
193-
0, //srcSlicePitch
194-
10, //dstRowPitch
195-
0, //dstSlicePitch
196-
0, //numEventsInWaitList
197-
nullptr,
198-
nullptr);
199-
200-
EXPECT_EQ(CL_INVALID_VALUE, retVal);
201-
}
202-
203-
TEST_F(clEnqueueCopyBufferRectTests, givenNonProperSrcBufferSizeWhenCallClEnqueueCopyBufferRectThenClInvalidValueIsReturned) {
204-
MockBuffer srcBuffer;
205-
srcBuffer.size = 10;
206-
MockBuffer dstBuffer;
207-
size_t srcOrigin[] = {0, 0, 0};
208-
size_t dstOrigin[] = {0, 0, 0};
209-
size_t region[] = {10, 10, 1};
210-
211-
auto retVal = clEnqueueCopyBufferRect(
212-
pCommandQueue,
213-
&srcBuffer, //srcBuffer
214-
&dstBuffer, //dstBuffer
215-
srcOrigin,
216-
dstOrigin,
217-
region,
218-
10, //srcRowPitch
219-
0, //srcSlicePitch
220-
10, //dstRowPitch
221-
0, //dstSlicePitch
222-
0, //numEventsInWaitList
223-
nullptr,
224-
nullptr);
225-
226-
EXPECT_EQ(CL_INVALID_VALUE, retVal);
227-
}
228-
229-
TEST_F(clEnqueueCopyBufferRectTests, givenNonProperDstBufferSizeWhenCallClEnqueueCopyBufferRectThenClInvalidValueIsReturned) {
230-
MockBuffer srcBuffer;
231-
MockBuffer dstBuffer;
232-
dstBuffer.size = 10;
233-
size_t srcOrigin[] = {0, 0, 0};
234-
size_t dstOrigin[] = {0, 0, 0};
235-
size_t region[] = {10, 10, 1};
236-
237-
auto retVal = clEnqueueCopyBufferRect(
238-
pCommandQueue,
239-
&srcBuffer, //srcBuffer
240-
&dstBuffer, //dstBuffer
241-
srcOrigin,
242-
dstOrigin,
243-
region,
244-
10, //srcRowPitch
245-
0, //srcSlicePitch
246-
10, //dstRowPitch
247-
0, //dstSlicePitch
248-
0, //numEventsInWaitList
249-
nullptr,
250-
nullptr);
251-
252-
EXPECT_EQ(CL_INVALID_VALUE, retVal);
253-
}
254-
255-
TEST_F(clEnqueueCopyBufferRectTests, givenPitchesEqualZeroAndNotZeroRegionWhenCallClEnqueueCopyBufferRectThenPitchIsSetBasedOnRegionAndClSuccessIsReturned) {
256-
class CommandQueueMock : public MockCommandQueue {
257-
public:
258-
CommandQueueMock(Context *context, ClDevice *device, const cl_queue_properties *props) : MockCommandQueue(context, device, props) {}
259-
cl_int enqueueCopyBufferRect(Buffer *srcBuffer, Buffer *dstBuffer, const size_t *srcOrigin, const size_t *dstOrigin,
260-
const size_t *region, size_t argSrcRowPitch, size_t argSrcSlicePitch, size_t argDstRowPitch,
261-
size_t argDstSlicePitch, cl_uint numEventsInWaitList,
262-
const cl_event *eventWaitList, cl_event *event) override {
263-
srcRowPitch = argSrcRowPitch;
264-
srcSlicePitch = argSrcSlicePitch;
265-
dstRowPitch = argDstRowPitch;
266-
dstSlicePitch = argDstSlicePitch;
267-
return CL_SUCCESS;
268-
}
269-
270-
size_t srcRowPitch;
271-
size_t srcSlicePitch;
272-
size_t dstRowPitch;
273-
size_t dstSlicePitch;
274-
};
275-
276-
auto commandQueue = std::make_unique<CommandQueueMock>(pContext, pDevice, nullptr);
277-
MockBuffer srcBuffer;
278-
MockBuffer dstBuffer;
279-
dstBuffer.size = 200;
280-
srcBuffer.size = 200;
281-
size_t srcOrigin[] = {0, 0, 0};
282-
size_t dstOrigin[] = {0, 0, 0};
283-
size_t region[] = {10, 20, 1};
284-
285-
auto retVal = clEnqueueCopyBufferRect(
286-
commandQueue.get(),
287-
&srcBuffer, //srcBuffer
288-
&dstBuffer, //dstBuffer
289-
srcOrigin,
290-
dstOrigin,
291-
region,
292-
0, //srcRowPitch
293-
0, //srcSlicePitch
294-
0, //dstRowPitch
295-
0, //dstSlicePitch
296-
0, //numEventsInWaitList
297-
nullptr,
298-
nullptr);
299-
300-
EXPECT_EQ(CL_SUCCESS, retVal);
301-
302-
EXPECT_EQ(region[0], commandQueue->srcRowPitch);
303-
EXPECT_EQ(region[0], commandQueue->dstRowPitch);
304-
305-
EXPECT_EQ(region[1], commandQueue->srcSlicePitch / commandQueue->srcRowPitch);
306-
EXPECT_EQ(region[1], commandQueue->dstSlicePitch / commandQueue->dstRowPitch);
307-
}
30898
} // namespace ULT

opencl/test/unit_test/api/cl_enqueue_read_buffer_rect_tests.inl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ TEST_F(clEnqueueReadBufferRectTest, GivenNullHostPtrWhenReadingRectangularRegion
7575
auto buffer = clCreateBuffer(
7676
pContext,
7777
CL_MEM_READ_WRITE,
78-
100,
78+
20,
7979
nullptr,
8080
&retVal);
8181
EXPECT_EQ(CL_SUCCESS, retVal);
@@ -110,7 +110,7 @@ TEST_F(clEnqueueReadBufferRectTest, GivenValidParametersWhenReadingRectangularRe
110110
auto buffer = clCreateBuffer(
111111
pContext,
112112
CL_MEM_READ_WRITE,
113-
100,
113+
20,
114114
nullptr,
115115
&retVal);
116116
EXPECT_EQ(CL_SUCCESS, retVal);
@@ -120,7 +120,7 @@ TEST_F(clEnqueueReadBufferRectTest, GivenValidParametersWhenReadingRectangularRe
120120

121121
size_t buffOrigin[] = {0, 0, 0};
122122
size_t hostOrigin[] = {0, 0, 0};
123-
size_t region[] = {10, 10, 1};
123+
size_t region[] = {10, 10, 0};
124124

125125
auto retVal = clEnqueueReadBufferRect(
126126
pCommandQueue,
@@ -144,12 +144,11 @@ TEST_F(clEnqueueReadBufferRectTest, GivenValidParametersWhenReadingRectangularRe
144144

145145
TEST_F(clEnqueueReadBufferRectTest, GivenQueueIncapableWhenReadingRectangularRegionThenInvalidOperationIsReturned) {
146146
MockBuffer buffer{};
147-
buffer.size = 100;
148147
char ptr[10];
149148

150149
size_t buffOrigin[] = {0, 0, 0};
151150
size_t hostOrigin[] = {0, 0, 0};
152-
size_t region[] = {10, 10, 1};
151+
size_t region[] = {10, 10, 0};
153152

154153
this->disableQueueCapabilities(CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL);
155154
auto retVal = clEnqueueReadBufferRect(
@@ -175,7 +174,7 @@ TEST_F(clEnqueueReadBufferRectTest, GivenInvalidPitchWhenReadingRectangularRegio
175174
auto buffer = clCreateBuffer(
176175
pContext,
177176
CL_MEM_READ_WRITE,
178-
100,
177+
20,
179178
nullptr,
180179
&retVal);
181180
EXPECT_EQ(CL_SUCCESS, retVal);
@@ -185,7 +184,7 @@ TEST_F(clEnqueueReadBufferRectTest, GivenInvalidPitchWhenReadingRectangularRegio
185184

186185
size_t buffOrigin[] = {0, 0, 0};
187186
size_t hostOrigin[] = {0, 0, 0};
188-
size_t region[] = {10, 10, 1};
187+
size_t region[] = {10, 10, 0};
189188
size_t bufferRowPitch = 9;
190189

191190
auto retVal = clEnqueueReadBufferRect(

opencl/test/unit_test/api/cl_enqueue_write_buffer_rect_tests.inl

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ TEST_F(clEnqueueWriteBufferRectTests, GivenNullHostPtrWhenWritingRectangularRegi
7474
auto buffer = clCreateBuffer(
7575
pContext,
7676
CL_MEM_READ_WRITE,
77-
100,
77+
20,
7878
nullptr,
7979
&retVal);
8080
EXPECT_EQ(CL_SUCCESS, retVal);
@@ -107,12 +107,11 @@ TEST_F(clEnqueueWriteBufferRectTests, GivenNullHostPtrWhenWritingRectangularRegi
107107

108108
TEST_F(clEnqueueWriteBufferRectTests, GivenCorrectParametersWhenWritingRectangularRegionThenSuccessIsReturned) {
109109
MockBuffer buffer{};
110-
buffer.size = 100;
111110
char ptr[10];
112111

113112
size_t buffOrigin[] = {0, 0, 0};
114113
size_t hostOrigin[] = {0, 0, 0};
115-
size_t region[] = {10, 10, 1};
114+
size_t region[] = {10, 10, 0};
116115

117116
auto retVal = clEnqueueWriteBufferRect(
118117
pCommandQueue,
@@ -135,12 +134,11 @@ TEST_F(clEnqueueWriteBufferRectTests, GivenCorrectParametersWhenWritingRectangul
135134

136135
TEST_F(clEnqueueWriteBufferRectTests, GivenQueueIncapableWhenWritingRectangularRegionThenInvalidOperationIsReturned) {
137136
MockBuffer buffer{};
138-
buffer.size = 100;
139137
char ptr[10];
140138

141139
size_t buffOrigin[] = {0, 0, 0};
142140
size_t hostOrigin[] = {0, 0, 0};
143-
size_t region[] = {10, 10, 1};
141+
size_t region[] = {10, 10, 0};
144142

145143
this->disableQueueCapabilities(CL_QUEUE_CAPABILITY_TRANSFER_BUFFER_RECT_INTEL);
146144
auto retVal = clEnqueueWriteBufferRect(

0 commit comments

Comments
 (0)