Example #1
0
void OpenCLRidgeDetector::setKernelArgsForStream()
{
  cl_int err;

  additional_output_image_memory = clCreateImage2D(context, CL_MEM_WRITE_ONLY, &output_image_format, width, height, 0, NULL, &err);
  ASSERT_OPENCL_ERR(err, "Can't create additional image for OpenCLRidgeDetector");

  err = setKernelArg(2, &additional_output_image_memory);
  ASSERT_OPENCL_ERR(err, "Can't set kernel arg 2 for OpenCLRidgeDetector");
}
Example #2
0
/*! 
  @brief
  Sets all arguments for a kernel in a single function.

  @detailed
  The wrapped function requires pointers to the buffers and sizes.
*/
void setKernelArgs(cl_kernel kernel, int numArgs, buffer** buffers, const char* kernelName){
  uint arg=0;

  for(arg=0; arg<numArgs; arg++){
    setKernelArg(kernel, arg, buffers[arg], kernelName);
  /*   if(buffers[arg]->mem != NULL){ /\*  For global memory *\/ */
  /*     /\* Wants the size of the cl_mem object, i.e. the size on the CPU, not the GPU  *\/ */
  /*     /\* I guess the cl_mem object contains that information somewhere *\/ */
  /*     status = clSetKernelArg(kernel, arg, sizeof(buffers[arg]->mem), &buffers[arg]->mem); */
  /*   } */
  /*   else{ /\* For local memory *\/ */
  /*     /\* In the case of making a local buffer (I have set cl_mem to NULL),  *\/ */
  /*     /\* we need the size of the buffer we want to create on the GPU in bytes. *\/ */
  /*     status = clSetKernelArg(kernel, arg, buffers[arg]->size, NULL); */
  /*   } */
  /*   /\* Opencl error checking *\/ */
  /*   sprintf(errorDescription, "setKernelArg %d %s", arg, kernelName); */
  /*   statusCheck(status, errorDescription); */
  } 
}
Example #3
0
void btGpuDemo3dOCLWrap::initKernels()
{
	initKernel(GPUDEMO3D_KERNEL_CLEAR_ACCUM_IMPULSE, "kClearAccumImpulse");
	setKernelArg(GPUDEMO3D_KERNEL_CLEAR_ACCUM_IMPULSE, 1, sizeof(cl_mem),	(void*)&m_dLambdaDtBox);
	setKernelArg(GPUDEMO3D_KERNEL_CLEAR_ACCUM_IMPULSE, 2, sizeof(int),		(void*)&m_maxPointsPerConstr);

	initKernel(GPUDEMO3D_KERNEL_COLLISION_WITH_WALL, "kCollisionWithWallBox");
	setKernelArg(GPUDEMO3D_KERNEL_COLLISION_WITH_WALL, 1, sizeof(cl_mem),	(void*)&m_dTrans);
	setKernelArg(GPUDEMO3D_KERNEL_COLLISION_WITH_WALL, 2, sizeof(cl_mem),	(void*)&m_dVel);
	setKernelArg(GPUDEMO3D_KERNEL_COLLISION_WITH_WALL, 3, sizeof(cl_mem),	(void*)&m_dAngVel);
	setKernelArg(GPUDEMO3D_KERNEL_COLLISION_WITH_WALL, 4, sizeof(cl_mem),	(void*)&m_dParams);

	initKernel(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, "kSolveConstraint");
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 1, sizeof(cl_mem),	(void*)&m_dIds);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 2, sizeof(cl_mem),	(void*)&m_dBatchIds);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 3, sizeof(cl_mem),	(void*)&m_dTrans);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 4, sizeof(cl_mem),	(void*)&m_dVel);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 5, sizeof(cl_mem),	(void*)&m_dAngVel);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 6, sizeof(cl_mem),	(void*)&m_dLambdaDtBox);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 7, sizeof(cl_mem),	(void*)&m_dPositionConstraint);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 8, sizeof(cl_mem),	(void*)&m_dNormal);
	setKernelArg(GPUDEMO3D_KERNEL_SOLVE_CONSTRAINTS, 9, sizeof(cl_mem),	(void*)&m_dContact);

	initKernel(GPUDEMO3D_KERNEL_INTEGRATE_VELOCITIES, "kIntegrateVelocities");
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_VELOCITIES, 1, sizeof(cl_mem),	(void*)&m_dForceTorqueDamp);
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_VELOCITIES, 2, sizeof(cl_mem),	(void*)&m_dInvInertiaMass);
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_VELOCITIES, 3, sizeof(cl_mem),	(void*)&m_dVel);	
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_VELOCITIES, 4, sizeof(cl_mem),	(void*)&m_dAngVel);	

	initKernel(GPUDEMO3D_KERNEL_INTEGRATE_TRANSFORMS, "kIntegrateTransforms");
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_TRANSFORMS, 1, sizeof(cl_mem),	(void*)&m_dTrans);
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_TRANSFORMS, 2, sizeof(cl_mem),	(void*)&m_dVel);
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_TRANSFORMS, 3, sizeof(cl_mem),	(void*)&m_dAngVel);
	setKernelArg(GPUDEMO3D_KERNEL_INTEGRATE_TRANSFORMS, 4, sizeof(cl_mem),	(void*)&m_dInvInertiaMass);

}
Example #4
0
 int setKernelArg(int argid, double arg)      {return setKernelArg(argid, sizeof(double), &arg);}
Example #5
0
 int setKernelArg(int argid, float arg)       {return setKernelArg(argid, sizeof(float), &arg);}
Example #6
0
 int setKernelArg(int argid, size_t arg)      {return setKernelArg(argid, sizeof(size_t), &arg);}