   const int* uniform valid_in = args->valid;
   void* uniform geomUserPtr_in = args->geomUserPtr;
   RTCIntersectContext* uniform context_in = args->context;
-  RTCRayN* uniform ray_in = args->ray;
+  RTCRayHitN* uniform ray_in = args->ray;
   uniform unsigned int N_in = args->N;
   uniform unsigned int primID_in = args->primID;
 }@@

rtcOccluded4Ex(EXPR valid,EXPR scene,EXPR context,EXPR ray);
=>
rtcOccluded4(valid,scene,context,&ray);
}@@

@@{

  varying int* uniform vvalid_in = (varying int* uniform ) valid_in;
  void* uniform geomUserPtr_in = args->geomUserPtr;
  COMMENT RTCIntersectContext* uniform context_in = args->context;
  varying RTCRayHit* uniform ray_ptr_in = (varying RTCRayHit* uniform ) args->ray;
  varying RTCRayHit& ray_in = *ray_ptr_in;
  uniform unsigned int N_in = args->N;
  uniform unsigned int primID_in = args->primID;
  assert(N_in == __programCount);
