Added errorchecking and more flexibility the the new acDeviceLoadScalarArray function

This commit is contained in:
jpekkila
2019-09-05 19:56:04 +03:00
parent 71695b7c12
commit 53230c9b61
2 changed files with 9 additions and 4 deletions

View File

@@ -63,8 +63,8 @@ AcResult acDeviceLoadInt3Constant(const Device device, const Stream stream, cons
/** */
AcResult acDeviceLoadScalarArray(const Device device, const Stream stream,
const ScalarArrayHandle handle, const AcReal* data,
const size_t num);
const ScalarArrayHandle handle, const size_t start,
const AcReal* data, const size_t num);
/** */
AcResult acDeviceLoadMeshInfo(const Device device, const Stream stream,

View File

@@ -449,10 +449,15 @@ acDeviceLoadInt3Constant(const Device device, const Stream stream, const AcInt3P
AcResult
acDeviceLoadScalarArray(const Device device, const Stream stream, const ScalarArrayHandle handle,
const AcReal* data, const size_t num)
const size_t start, const AcReal* data, const size_t num)
{
cudaSetDevice(device->id);
ERRCHK_CUDA(cudaMemcpyAsync(device->vba.profiles[handle], data, sizeof(data[0]) * num,
ERRCHK(start + num <= max(device->local_config.int_params[AC_mx],
max(device->local_config.int_params[AC_my],
device->local_config.int_params[AC_mz])));
ERRCHK_CUDA(cudaMemcpyAsync(&device->vba.profiles[handle][start], data, sizeof(data[0]) * num,
cudaMemcpyHostToDevice, device->streams[stream]));
return AC_SUCCESS;
}