@@ -39,7 +39,7 @@ inline CUDA_CALLABLE void PoseToMatrix(float *result, Pose const &pose, Vec3 con
3939
4040__global__ void update_object_transforms_kernel (
4141 float *__restrict__ *__restrict__ scene_transform_buffers, // output buffers
42- RenderShapeData *__restrict__ shapes,
42+ int transform_stride, RenderShapeData *__restrict__ shapes,
4343 float *__restrict__ poses, // parent pose array
4444 int pose_stride, int count) {
4545 int g = blockIdx .x * blockDim .x + threadIdx .x ;
@@ -63,7 +63,7 @@ __global__ void update_object_transforms_kernel(
6363 int scene_index = shape.sceneIndex ;
6464 int transform_index = shape.transformIndex ;
6565
66- PoseToMatrix (scene_transform_buffers[scene_index] + transform_index * 16 , p, scale);
66+ PoseToMatrix (scene_transform_buffers[scene_index] + transform_index * transform_stride , p, scale);
6767}
6868
6969__global__ void update_camera_transforms_kernel (CameraData *cameras, float *poses, int pose_stride,
@@ -94,11 +94,12 @@ __global__ void update_camera_transforms_kernel(CameraData *cameras, float *pose
9494
9595constexpr int BLOCK_SIZE = 128 ;
9696
97- void update_object_transforms (float **scene_transform_buffers, RenderShapeData *render_shapes,
98- float *poses, int pose_stride, int count, CUstream_st *stream) {
97+ void update_object_transforms (float **scene_transform_buffers, int transform_stride,
98+ RenderShapeData *render_shapes, float *poses, int pose_stride,
99+ int count, CUstream_st *stream) {
99100 update_object_transforms_kernel<<<(count + BLOCK_SIZE - 1 ) / BLOCK_SIZE, BLOCK_SIZE, 0 ,
100- (cudaStream_t)stream>>> (scene_transform_buffers, render_shapes,
101- poses, pose_stride, count);
101+ (cudaStream_t)stream>>> (
102+ scene_transform_buffers, transform_stride, render_shapes, poses, pose_stride, count);
102103}
103104
104105void update_camera_transforms (CameraData *cameras, float *poses, int pose_stride, int count,
0 commit comments