Hi, This is my first attempt to fix a bug that the r600g/compute code has when handling mapped buffers in OpenCL.
I have written a small document explaining more or less what is the bug I am trying to solve, and the approach I have chosen to solve it with this patch: https://www.dropbox.com/s/qwkpod33hg3uu07/mapping_bug.pdf I sent a test for this bug to the piglit mailing list: http://lists.freedesktop.org/archives/piglit/2014-May/010807.html And this patch fixes it. Unfortunately, a couple of days ago I reread the OpenCL 1.2 spec and discovered that it allows buffers to be mapped for reading and launch kernels that read from them. So, my patch has a bug in this case. I have also sent a test for this allowed behavior to the piglit mailing list: http://lists.freedesktop.org/archives/piglit/2014-May/010922.html And as expected, this patch breaks it :( I'll continue to think of some way of solving both bugs. Thanks! Bruno Bruno Jiménez (1): r600g/compute: solve the mapping bug src/gallium/drivers/r600/compute_memory_pool.c | 21 ++++++++++++++++++++- src/gallium/drivers/r600/compute_memory_pool.h | 2 ++ src/gallium/drivers/r600/evergreen_compute.c | 18 +++++++++++++----- 3 files changed, 35 insertions(+), 6 deletions(-) -- 1.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev