clEnqueueReadBufferRect/clEnqueueWriteBufferRect worked with no problems in 14.9 and 14.4, but now in 14.12 they are completely broken on HD6950 / Win7 x64.
Can anyone else confirm this?
Even trivial code (with inline arrays pseudocode)
clEnqueueWriteBufferRect(queue, cl_buf, CL_FALSE, {0, 0, 0}, {0, 0, 0}, {width, height, 1}, width, 0, width, 0, src, 0, NULL, NULL);
clEnqueueReadBuffer(queue, cl_buf, CL_TRUE, 0, width*height, dst, 0, NULL, NULL);
doesn't work anymore. Replacing first line with plain write works fine:
clEnqueueWriteBuffer(queue, cl_buf, CL_FALSE, 0, width*height, src, 0, NULL, NULL);
Thanks for reporting this. We'll check and get back to you.
Hi,
I guess this is same as clEnqueueWriteBufferRect does not work when region width is not equal to src pitch: broken again in .... I'm able to reproduce the issue on HD 6970 (cayman XT) with latest Omega driver (windows 7 64bit) by using the same sample code given on that post. I've shared my observation there. Please check and let us know your finding.
Regards,
The Linux 14.12 version of the driver is also broken in this relation.
These two functions don't work properly on the active card.
# lsb_release -idrc && uname -r
Distributor ID: SUSE LINUX
Description: openSUSE 12.2 (x86_64)
Release: 12.2
Codename: Mantis
3.4.63-2.44-desktop
# aticonfig --list-adapters
* 0. 01:00.0 AMD Radeon HD 7900 Series
1. 02:00.0 AMD Radeon HD 5800 Series
* - Default adapter
With kernel performing copying data from input to output arrays obtain wrong result with clEnqueueWrite/ReadBufferRect functions on the primary card:
::::::::::::::::::::::::::::::::::::::::::::::::::::: Platform: AMD Accelerated Parallel Processing Device: Tahiti (GPU) Driver: 1642.5 (VM) ::::::::::::::::::::::::::::::::::::::::::::::::::::: Input Output [0] 0.000000 0.000000 [1] 0.841471 0.909297 [2] 0.909297 -0.756802 [3] 0.141120 -0.279415 [4] -0.756802 0.989358 [5] -0.958924 -0.544021 [6] -0.279415 -0.536573 [7] 0.656987 0.990607 [8] 0.989358 0.000000 [9] 0.412118 0.000000 [10] -0.544021 0.000000 [11] -0.999990 0.000000 [12] -0.536573 0.000000 [13] 0.420167 0.000000 [14] 0.990607 0.000000 [15] 0.650288 0.000000 [16] -0.287903 0.000000 [17] -0.961397 0.912945 [18] -0.750987 0.836656 [19] 0.149877 -0.008851 [20] 0.912945 -0.846220 [21] 0.836656 -0.905578 [22] -0.008851 -0.132352 [23] -0.846220 0.762558 [24] -0.905578 0.956376 [25] -0.132352 0.270906 [26] 0.762558 -0.663634 [27] 0.956376 -0.988032 [28] 0.270906 -0.404038 [29] -0.663634 0.551427 [30] -0.988032 0.999912 [31] -0.404038 0.000000 | ::::::::::::::::::::::::::::::::::::::::::::::::::::: Platform: AMD Accelerated Parallel Processing Device: Cypress (GPU) Driver: 1642.5 ::::::::::::::::::::::::::::::::::::::::::::::::::::: Input Output [0] 0.000000 0.000000 [1] 0.841471 0.841471 [2] 0.909297 0.909297 [3] 0.141120 0.141120 [4] -0.756802 -0.756802 [5] -0.958924 -0.958924 [6] -0.279415 -0.279415 [7] 0.656987 0.656987 [8] 0.989358 0.989358 [9] 0.412118 0.412118 [10] -0.544021 -0.544021 [11] -0.999990 -0.999990 [12] -0.536573 -0.536573 [13] 0.420167 0.420167 [14] 0.990607 0.990607 [15] 0.650288 0.650288 [16] -0.287903 -0.287903 [17] -0.961397 -0.961397 [18] -0.750987 -0.750987 [19] 0.149877 0.149877 [20] 0.912945 0.912945 [21] 0.836656 0.836656 [22] -0.008851 -0.008851 [23] -0.846220 -0.846220 [24] -0.905578 -0.905578 [25] -0.132352 -0.132352 [26] 0.762558 0.762558 [27] 0.956376 0.956376 [28] 0.270906 0.270906 [29] -0.663634 -0.663634 [30] -0.988032 -0.988032 [31] -0.404038 -0.404038 |
whereas with the 14.9 driver all is ok:
::::::::::::::::::::::::::::::::::::::::::::::::::::: Platform: AMD Accelerated Parallel Processing Device: Tahiti (GPU) Driver: 1573.4 (VM) ::::::::::::::::::::::::::::::::::::::::::::::::::::: Input Output [0] 0.000000 0.000000 [1] 0.841471 0.841471 [2] 0.909297 0.909297 [3] 0.141120 0.141120 [4] -0.756802 -0.756802 [5] -0.958924 -0.958924 [6] -0.279415 -0.279415 [7] 0.656987 0.656987 [8] 0.989358 0.989358 [9] 0.412118 0.412118 [10] -0.544021 -0.544021 [11] -0.999990 -0.999990 [12] -0.536573 -0.536573 [13] 0.420167 0.420167 [14] 0.990607 0.990607 [15] 0.650288 0.650288 [16] -0.287903 -0.287903 [17] -0.961397 -0.961397 [18] -0.750987 -0.750987 [19] 0.149877 0.149877 [20] 0.912945 0.912945 [21] 0.836656 0.836656 [22] -0.008851 -0.008851 [23] -0.846220 -0.846220 [24] -0.905578 -0.905578 [25] -0.132352 -0.132352 [26] 0.762558 0.762558 [27] 0.956376 0.956376 [28] 0.270906 0.270906 [29] -0.663634 -0.663634 [30] -0.988032 -0.988032 [31] -0.404038 -0.404038 |
The clEnqueueWriteBufferRect doesn't react on the buffer_row_pitch parameter, whereas clEnqueueWriteBufferRect does something, but not what it must do.
Regards, Natalia
Hi Natalia,
Thanks for reporting this.
I already filed an bug report against a similar issue (please see clEnqueueWriteBufferRect does not work when region width is not equal to src pitch: broken again in .... ) and our engg. team is working on it. If I get any update, I'll share with you.
Regards,
Thank you, Dipak.