PIOpenCL::Buffer API improvements
This commit is contained in:
@@ -408,6 +408,15 @@ void PIOpenCL::Buffer::copyTo(void * data) {
|
||||
}
|
||||
|
||||
|
||||
void PIOpenCL::Buffer::copyTo(void * data, int elements_count, int elements_offset) {
|
||||
if (!PRIVATE->buffer) return;
|
||||
cl_int ret = clEnqueueReadBuffer(context_->PRIVATEWB->queue, PRIVATE->buffer, CL_TRUE, elements_offset * def.size(), elements_count * def.size(), data, 0, 0, 0);
|
||||
if (ret != 0) {
|
||||
piCout << "[PIOpenCL::Buffer]" << "clEnqueueReadBuffer error" << ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void PIOpenCL::Buffer::copyFromContainer() {
|
||||
if (!PRIVATE->buffer || !container) return;
|
||||
copyFrom(containerData());
|
||||
@@ -423,6 +432,15 @@ void PIOpenCL::Buffer::copyFrom(void * data) {
|
||||
}
|
||||
|
||||
|
||||
void PIOpenCL::Buffer::copyFrom(void * data, int elements_count, int elements_offset) {
|
||||
if (!PRIVATE->buffer) return;
|
||||
cl_int ret = clEnqueueWriteBuffer(context_->PRIVATEWB->queue, PRIVATE->buffer, CL_TRUE, elements_offset * def.size(), elements_count * def.size(), data, 0, 0, 0);
|
||||
if (ret != 0) {
|
||||
piCout << "[PIOpenCL::Buffer]" << "clEnqueueWriteBuffer error" << ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
PIOpenCL::Program::Program() {
|
||||
|
||||
Reference in New Issue
Block a user