 #else
     const int p = 2;
 #endif
-    for(int slice=firstSlice; slice != lastSlice; slice += sliceStep)
+    for(int slice=0; slice<2; ++slice)
     {
         const float sx = scur.e[0]/scur.e[3];
         const float sy = scur.e[1]/scur.e[3];

#endif
}

template<typename Scalar, int BPV, typename Pixel, int sliceStep, int principal, bool earlyRayTerm, bool preInt>
__global__ void compositeSORC(
      uchar4 * __restrict__ img, int width, int height,

        else
#endif
            z -= c_zStep;
    }

    for(int sl=unistart; sl<unistop; sl+=unroll)
    {
        if(earlyRayTerm && isOpaque(ray.d))
            break;
#pragma unroll 8
        for(int ssl=0; ssl<unroll; ++ssl)
        {
            ray.accumulate(tc.x, tc.y, z);

            tc.x += tc_inc.x;
            tc.y += tc_inc.y;
#if VOLTEX3D != 3
            if(principal == 0)
                z += c_zStep;
            else
#endif
                z -= c_zStep;
        }
    }

    for(int sl=unistop; sl<slstop; ++sl)
    {
        if(earlyRayTerm && isOpaque(ray.d))
            break;

        if(tc.x >= 0.f && tc.x < 1.f
                && tc.y >= 0.f && tc.y < 1.f)
            ray.accumulate(tc.x, tc.y, z);

        tc.x += tc_inc.x;
        tc.y += tc_inc.y;
#if VOLTEX3D != 3
        if(principal == 0)
            z += c_zStep;
        else
#endif
            z -= c_zStep;
    }

    // copy pixel to intermediate image
