return src.sample(params.sampler, s, t, lod);
}
-static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture1DView& src, const tcu::Vec4& sq, const ReferenceParams& params)
+static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture1DView& rawSrc, const tcu::Vec4& sq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture1DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
- tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
- int srcSize = src.getWidth();
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+
+ tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
+ int srcSize = src.getWidth();
// Coordinates and lod per triangle.
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- float triLod[2] = { de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0]) + lodBias, params.minLod, params.maxLod),
- de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1]) + lodBias, params.minLod, params.maxLod) };
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ float triLod[2] = { de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0]) + lodBias, params.minLod, params.maxLod),
+ de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1]) + lodBias, params.minLod, params.maxLod) };
for (int y = 0; y < dst.getHeight(); y++)
{
}
}
-static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture2DView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const ReferenceParams& params)
+static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture2DView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture2DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
+
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
- tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
- tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight());
+ tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
+ tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight());
// Coordinates and lod per triangle.
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- float triLod[2] = { de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0], triT[0]) + lodBias, params.minLod, params.maxLod),
- de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1], triT[1]) + lodBias, params.minLod, params.maxLod) };
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ float triLod[2] = { de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0], triT[0]) + lodBias, params.minLod, params.maxLod),
+ de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1], triT[1]) + lodBias, params.minLod, params.maxLod) };
for (int y = 0; y < dst.getHeight(); y++)
{
}
}
-static void sampleTextureProjected (const SurfaceAccess& dst, const tcu::Texture1DView& src, const tcu::Vec4& sq, const ReferenceParams& params)
+static void sampleTextureProjected (const SurfaceAccess& dst, const tcu::Texture1DView& rawSrc, const tcu::Vec4& sq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
- float dstW = (float)dst.getWidth();
- float dstH = (float)dst.getHeight();
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture1DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
+
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ float dstW = (float)dst.getWidth();
+ float dstH = (float)dst.getHeight();
- tcu::Vec4 uq = sq * (float)src.getWidth();
+ tcu::Vec4 uq = sq * (float)src.getWidth();
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) };
- tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) };
+ tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
for (int py = 0; py < dst.getHeight(); py++)
{
}
}
-static void sampleTextureProjected (const SurfaceAccess& dst, const tcu::Texture2DView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const ReferenceParams& params)
+static void sampleTextureProjected (const SurfaceAccess& dst, const tcu::Texture2DView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
- float dstW = (float)dst.getWidth();
- float dstH = (float)dst.getHeight();
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture2DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
- tcu::Vec4 uq = sq * (float)src.getWidth();
- tcu::Vec4 vq = tq * (float)src.getHeight();
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ float dstW = (float)dst.getWidth();
+ float dstH = (float)dst.getHeight();
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) };
- tcu::Vec3 triV[2] = { vq.swizzle(0, 1, 2), vq.swizzle(3, 2, 1) };
- tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
+ tcu::Vec4 uq = sq * (float)src.getWidth();
+ tcu::Vec4 vq = tq * (float)src.getHeight();
+
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) };
+ tcu::Vec3 triV[2] = { vq.swizzle(0, 1, 2), vq.swizzle(3, 2, 1) };
+ tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
for (int py = 0; py < dst.getHeight(); py++)
{
}
}
-static void sampleTexture (const SurfaceAccess& dst, const tcu::TextureCubeView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
+static void sampleTextureCube (const SurfaceAccess& dst, const tcu::TextureCubeView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
{
- const tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const int srcSize = src.getSize();
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::TextureCubeView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
+
+ const tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const int srcSize = src.getSize();
// Coordinates per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
- const float lodBias ((params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f);
+ const float lodBias ((params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f);
for (int py = 0; py < dst.getHeight(); py++)
{
const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]);
const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]);
- return sampleTexture(dst, view, sq, tq, rq, params);
+ return sampleTextureCube(dst, view, sq, tq, rq, params);
}
-static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture2DArrayView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
+static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture2DArrayView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture2DArrayView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
+
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
- tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
- tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight());
+ tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
+ tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight());
// Coordinates and lod per triangle.
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- float triLod[2] = { computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0], triT[0]) + lodBias,
- computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1], triT[1]) + lodBias};
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ float triLod[2] = { computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0], triT[0]) + lodBias,
+ computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1], triT[1]) + lodBias};
for (int y = 0; y < dst.getHeight(); y++)
{
sampleTextureNonProjected(dst, src, sq, tq, rq, params);
}
-static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture1DArrayView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const ReferenceParams& params)
+static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture1DArrayView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture1DArrayView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
- tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
- deInt32 srcSize = src.getWidth();
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+
+ tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
+ deInt32 srcSize = src.getWidth();
// Coordinates and lod per triangle.
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- float triLod[2] = { computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0]) + lodBias,
- computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1]) + lodBias};
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ float triLod[2] = { computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0]) + lodBias,
+ computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1]) + lodBias};
for (int y = 0; y < dst.getHeight(); y++)
{
sampleTextureNonProjected(dst, src, sq, tq, params);
}
-static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture3DView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
+static void sampleTextureNonProjected (const SurfaceAccess& dst, const tcu::Texture3DView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture3DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
+
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
- tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
- tcu::IVec3 srcSize = tcu::IVec3(src.getWidth(), src.getHeight(), src.getDepth());
+ tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight());
+ tcu::IVec3 srcSize = tcu::IVec3(src.getWidth(), src.getHeight(), src.getDepth());
// Coordinates and lod per triangle.
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- float triLod[2] = { de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0], triT[0], triR[0]) + lodBias, params.minLod, params.maxLod),
- de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1], triT[1], triR[1]) + lodBias, params.minLod, params.maxLod) };
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ float triLod[2] = { de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[0], triT[0], triR[0]) + lodBias, params.minLod, params.maxLod),
+ de::clamp(computeNonProjectedTriLod(params.lodMode, dstSize, srcSize, triS[1], triT[1], triR[1]) + lodBias, params.minLod, params.maxLod) };
for (int y = 0; y < dst.getHeight(); y++)
{
}
}
-static void sampleTextureProjected (const SurfaceAccess& dst, const tcu::Texture3DView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
+static void sampleTextureProjected (const SurfaceAccess& dst, const tcu::Texture3DView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const ReferenceParams& params)
{
- float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
- float dstW = (float)dst.getWidth();
- float dstH = (float)dst.getHeight();
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture3DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
+
+ float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ float dstW = (float)dst.getWidth();
+ float dstH = (float)dst.getHeight();
- tcu::Vec4 uq = sq * (float)src.getWidth();
- tcu::Vec4 vq = tq * (float)src.getHeight();
- tcu::Vec4 wq = rq * (float)src.getDepth();
+ tcu::Vec4 uq = sq * (float)src.getWidth();
+ tcu::Vec4 vq = tq * (float)src.getHeight();
+ tcu::Vec4 wq = rq * (float)src.getDepth();
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) };
- tcu::Vec3 triV[2] = { vq.swizzle(0, 1, 2), vq.swizzle(3, 2, 1) };
- tcu::Vec3 triW[2] = { wq.swizzle(0, 1, 2), wq.swizzle(3, 2, 1) };
- tcu::Vec3 triP[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) };
+ tcu::Vec3 triV[2] = { vq.swizzle(0, 1, 2), vq.swizzle(3, 2, 1) };
+ tcu::Vec3 triW[2] = { wq.swizzle(0, 1, 2), wq.swizzle(3, 2, 1) };
+ tcu::Vec3 triP[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
for (int py = 0; py < dst.getHeight(); py++)
{
sampleTextureNonProjected(dst, view, sq, tq, rq, params);
}
-static void sampleTexture (const SurfaceAccess& dst, const tcu::TextureCubeArrayView& src, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const tcu::Vec4& qq, const ReferenceParams& params)
+static void sampleTextureCubeArray (const SurfaceAccess& dst, const tcu::TextureCubeArrayView& rawSrc, const tcu::Vec4& sq, const tcu::Vec4& tq, const tcu::Vec4& rq, const tcu::Vec4& qq, const ReferenceParams& params)
{
- const float dstW = (float)dst.getWidth();
- const float dstH = (float)dst.getHeight();
+ // Separate combined DS formats
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::TextureCubeArrayView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sampler);
+
+ const float dstW = (float)dst.getWidth();
+ const float dstH = (float)dst.getHeight();
// Coordinates per triangle.
- tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- tcu::Vec3 triQ[2] = { qq.swizzle(0, 1, 2), qq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
+ tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ tcu::Vec3 triQ[2] = { qq.swizzle(0, 1, 2), qq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) };
- const float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
+ const float lodBias = (params.flags & ReferenceParams::USE_BIAS) ? params.bias : 0.0f;
for (int py = 0; py < dst.getHeight(); py++)
{
tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[4+2], texCoord[8+2], texCoord[12+2]);
tcu::Vec4 qq = tcu::Vec4(texCoord[0+3], texCoord[4+3], texCoord[8+3], texCoord[12+3]);
- sampleTexture(dst, src, sq, tq, rq, qq, params);
+ sampleTextureCubeArray(dst, src, sq, tq, rq, qq, params);
}
void fetchTexture (const SurfaceAccess& dst, const tcu::ConstPixelBufferAccess& src, const float* texCoord, const tcu::Vec4& colorScale, const tcu::Vec4& colorBias)
DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());
- const tcu::Texture1DView src = getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel);
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture1DView src = getEffectiveTextureView(getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel), srcLevelStorage, sampleParams.sampler);
- const tcu::Vec4 sq = tcu::Vec4(texCoord[0], texCoord[1], texCoord[2], texCoord[3]);
+ const tcu::Vec4 sq = tcu::Vec4(texCoord[0], texCoord[1], texCoord[2], texCoord[3]);
- const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const int srcSize = src.getWidth();
+ const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const int srcSize = src.getWidth();
// Coordinates and lod per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
- const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
+ const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
- int numFailed = 0;
+ int numFailed = 0;
const tcu::Vec2 lodOffsets[] =
{
const tcu::PixelBufferAccess& errorMask,
const tcu::Texture2DView& baseView,
const float* texCoord,
- const ReferenceParams& sampleParams,
+ const ReferenceParams& sampleParams,
const tcu::LookupPrecision& lookupPrec,
const tcu::LodPrecision& lodPrec,
qpWatchDog* watchDog)
DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());
- const tcu::Texture2DView src = getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel);
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture2DView src = getEffectiveTextureView(getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel), srcLevelStorage, sampleParams.sampler);
- const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+0]);
- const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+1]);
+ const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+0]);
+ const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+1]);
- const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight());
+ const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight());
// Coordinates and lod per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
- const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
+ const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
- int numFailed = 0;
+ int numFailed = 0;
const tcu::Vec2 lodOffsets[] =
{
DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());
- const tcu::TextureCubeView src = getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel);
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::TextureCubeView src = getEffectiveTextureView(getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel), srcLevelStorage, sampleParams.sampler);
- const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]);
- const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]);
- const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]);
+ const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]);
+ const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]);
+ const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]);
- const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const int srcSize = src.getSize();
+ const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const int srcSize = src.getSize();
// Coordinates per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
- const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
+ const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
- const float posEps = 1.0f / float(1<<MIN_SUBPIXEL_BITS);
+ const float posEps = 1.0f / float(1<<MIN_SUBPIXEL_BITS);
- int numFailed = 0;
+ int numFailed = 0;
const tcu::Vec2 lodOffsets[] =
{
DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());
- const tcu::Texture3DView src = getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel);
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture3DView src = getEffectiveTextureView(getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel), srcLevelStorage, sampleParams.sampler);
- const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]);
- const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]);
- const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]);
+ const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]);
+ const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]);
+ const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]);
- const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const tcu::IVec3 srcSize = tcu::IVec3(src.getWidth(), src.getHeight(), src.getDepth());
+ const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const tcu::IVec3 srcSize = tcu::IVec3(src.getWidth(), src.getHeight(), src.getDepth());
// Coordinates and lod per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
- const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
+ const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
- const float posEps = 1.0f / float(1<<MIN_SUBPIXEL_BITS);
+ const float posEps = 1.0f / float(1<<MIN_SUBPIXEL_BITS);
- int numFailed = 0;
+ int numFailed = 0;
const tcu::Vec2 lodOffsets[] =
{
int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result,
const tcu::ConstPixelBufferAccess& reference,
const tcu::PixelBufferAccess& errorMask,
- const tcu::Texture1DArrayView& src,
+ const tcu::Texture1DArrayView& baseView,
const float* texCoord,
const ReferenceParams& sampleParams,
const tcu::LookupPrecision& lookupPrec,
DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());
- const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+0]);
- const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+1]);
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture1DArrayView src = getEffectiveTextureView(baseView, srcLevelStorage, sampleParams.sampler);
- const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const float srcSize = float(src.getWidth()); // For lod computation, thus #layers is ignored.
+ const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+0]);
+ const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+1]);
+
+ const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const float srcSize = float(src.getWidth()); // For lod computation, thus #layers is ignored.
// Coordinates and lod per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
- const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
+ const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
- int numFailed = 0;
+ int numFailed = 0;
const tcu::Vec2 lodOffsets[] =
{
int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result,
const tcu::ConstPixelBufferAccess& reference,
const tcu::PixelBufferAccess& errorMask,
- const tcu::Texture2DArrayView& src,
+ const tcu::Texture2DArrayView& baseView,
const float* texCoord,
const ReferenceParams& sampleParams,
const tcu::LookupPrecision& lookupPrec,
DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());
- const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]);
- const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]);
- const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]);
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::Texture2DArrayView src = getEffectiveTextureView(baseView, srcLevelStorage, sampleParams.sampler);
- const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const tcu::Vec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()).asFloat(); // For lod computation, thus #layers is ignored.
+ const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]);
+ const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]);
+ const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]);
+
+ const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const tcu::Vec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()).asFloat(); // For lod computation, thus #layers is ignored.
// Coordinates and lod per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
- const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
+ const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
- int numFailed = 0;
+ int numFailed = 0;
const tcu::Vec2 lodOffsets[] =
{
DE_ASSERT(result.getWidth() == reference.getWidth() && result.getHeight() == reference.getHeight());
DE_ASSERT(result.getWidth() == errorMask.getWidth() && result.getHeight() == errorMask.getHeight());
- const tcu::TextureCubeArrayView src = getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel);
+ std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage;
+ const tcu::TextureCubeArrayView src = getEffectiveTextureView(getSubView(baseView, sampleParams.baseLevel, sampleParams.maxLevel), srcLevelStorage, sampleParams.sampler);
- // What is the 'q' in all these names? Also a two char name for something that is in scope for ~120 lines and only used twice each seems excessive
- const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[4+0], texCoord[8+0], texCoord[12+0]);
- const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[4+1], texCoord[8+1], texCoord[12+1]);
- const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[4+2], texCoord[8+2], texCoord[12+2]);
- const tcu::Vec4 qq = tcu::Vec4(texCoord[0+3], texCoord[4+3], texCoord[8+3], texCoord[12+3]);
+ const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[4+0], texCoord[8+0], texCoord[12+0]);
+ const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[4+1], texCoord[8+1], texCoord[12+1]);
+ const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[4+2], texCoord[8+2], texCoord[12+2]);
+ const tcu::Vec4 qq = tcu::Vec4(texCoord[0+3], texCoord[4+3], texCoord[8+3], texCoord[12+3]);
- const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
- const float dstW = float(dstSize.x());
- const float dstH = float(dstSize.y());
- const int srcSize = src.getSize();
+ const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight());
+ const float dstW = float(dstSize.x());
+ const float dstH = float(dstSize.y());
+ const int srcSize = src.getSize();
// Coordinates per triangle.
- const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
- const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
- const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
- const tcu::Vec3 triQ[2] = { qq.swizzle(0, 1, 2), qq.swizzle(3, 2, 1) };
- const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
+ const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triQ[2] = { qq.swizzle(0, 1, 2), qq.swizzle(3, 2, 1) };
+ const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) };
- const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
+ const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias : 0.0f);
- const float posEps = 1.0f / float((1<<4) + 1); // ES3 requires at least 4 subpixel bits.
+ const float posEps = 1.0f / float((1<<4) + 1); // ES3 requires at least 4 subpixel bits.
- int numFailed = 0;
+ int numFailed = 0;
const tcu::Vec2 lodOffsets[] =
{