wwww = applyOffset(wwww, offset.z, Int4(*Pointer<UShort4>(mipmap + OFFSET(Mipmap, depth))), texelFetch ? ADDRESSING_TEXELFETCH : state.addressingModeW);
}
}
- Short4 www2 = wwww;
- wwww = As<Short4>(UnpackLow(wwww, Short4(0x0000)));
- www2 = As<Short4>(UnpackHigh(www2, Short4(0x0000)));
- wwww = As<Short4>(MulAdd(wwww, *Pointer<Short4>(mipmap + OFFSET(Mipmap,sliceP))));
- www2 = As<Short4>(MulAdd(www2, *Pointer<Short4>(mipmap + OFFSET(Mipmap,sliceP))));
- uuuu = As<Short4>(As<Int2>(uuuu) + As<Int2>(wwww));
- uuu2 = As<Short4>(As<Int2>(uuu2) + As<Int2>(www2));
- }
-
- index[0] = Extract(As<Int2>(uuuu), 0);
- index[1] = Extract(As<Int2>(uuuu), 1);
- index[2] = Extract(As<Int2>(uuu2), 0);
- index[3] = Extract(As<Int2>(uuu2), 1);
+ UInt4 uv(As<UInt2>(uuuu), As<UInt2>(uuu2));
+ uv += As<UInt4>(Int4(As<UShort4>(wwww))) * *Pointer<UInt4>(mipmap + OFFSET(Mipmap, sliceP));
+ index[0] = Extract(As<Int4>(uv), 0);
+ index[1] = Extract(As<Int4>(uv), 1);
+ index[2] = Extract(As<Int4>(uv), 2);
+ index[3] = Extract(As<Int4>(uv), 3);
+ }
+ else
+ {
+ index[0] = Extract(As<Int2>(uuuu), 0);
+ index[1] = Extract(As<Int2>(uuuu), 1);
+ index[2] = Extract(As<Int2>(uuu2), 0);
+ index[3] = Extract(As<Int2>(uuu2), 1);
+ }
if(texelFetch)
{