Lines Matching refs:tcu
51 SamplerType getSamplerType (tcu::TextureFormat format) in getSamplerType()
53 using tcu::TextureFormat; in getSamplerType()
77 SamplerType getFetchSamplerType (tcu::TextureFormat format) in getFetchSamplerType()
79 using tcu::TextureFormat; in getFetchSamplerType()
103 static tcu::Texture1DView getSubView (const tcu::Texture1DView& view, int baseLevel, int maxLevel) in getSubView()
108 return tcu::Texture1DView(numLevels, view.getLevels()+clampedBase); in getSubView()
111 static tcu::Texture2DView getSubView (const tcu::Texture2DView& view, int baseLevel, int maxLevel) in getSubView()
116 return tcu::Texture2DView(numLevels, view.getLevels()+clampedBase); in getSubView()
119 static tcu::TextureCubeView getSubView (const tcu::TextureCubeView& view, int baseLevel, int maxLev… in getSubView()
124 const tcu::ConstPixelBufferAccess* levels[tcu::CUBEFACE_LAST]; in getSubView()
126 for (int face = 0; face < tcu::CUBEFACE_LAST; face++) in getSubView()
127 levels[face] = view.getFaceLevels((tcu::CubeFace)face) + clampedBase; in getSubView()
129 return tcu::TextureCubeView(numLevels, levels); in getSubView()
132 static tcu::Texture3DView getSubView (const tcu::Texture3DView& view, int baseLevel, int maxLevel) in getSubView()
137 return tcu::Texture3DView(numLevels, view.getLevels()+clampedBase); in getSubView()
140 static tcu::TextureCubeArrayView getSubView (const tcu::TextureCubeArrayView& view, int baseLevel, … in getSubView()
145 return tcu::TextureCubeArrayView(numLevels, view.getLevels()+clampedBase); in getSubView()
153 inline tcu::Vec4 linearInterpolate (float t, const tcu::Vec4& a, const tcu::Vec4& b) in linearInterpolate()
158 inline float bilinearInterpolate (float x, float y, const tcu::Vec4& quad) in bilinearInterpolate()
172 inline float triangleInterpolate (const tcu::Vec3& v, float x, float y) in triangleInterpolate()
198 …float computeNonProjectedTriLod (LodMode mode, const tcu::IVec2& dstSize, deInt32 srcSize, const t… in computeNonProjectedTriLod()
236 …ProjectedTriLod (LodMode mode, const tcu::IVec2& dstSize, const tcu::IVec2& srcSize, const tcu::Ve… in computeNonProjectedTriLod()
277 …riLod (LodMode mode, const tcu::IVec2& dstSize, const tcu::IVec3& srcSize, const tcu::Vec3& sq, co… in computeNonProjectedTriLod()
291 static inline float projectedTriInterpolate (const tcu::Vec3& s, const tcu::Vec3& w, float nx, floa… in projectedTriInterpolate()
296 static inline float triDerivateX (const tcu::Vec3& s, const tcu::Vec3& w, float wx, float width, fl… in triDerivateX()
302 static inline float triDerivateY (const tcu::Vec3& s, const tcu::Vec3& w, float wy, float height, f… in triDerivateY()
309 static float computeProjectedTriLod (LodMode mode, const tcu::Vec3& u, const tcu::Vec3& projection,… in computeProjectedTriLod()
319 …atic float computeProjectedTriLod (LodMode mode, const tcu::Vec3& u, const tcu::Vec3& v, const tcu… in computeProjectedTriLod()
331 … computeProjectedTriLod (LodMode mode, const tcu::Vec3& u, const tcu::Vec3& v, const tcu::Vec3& w,… in computeProjectedTriLod()
344 static inline tcu::Vec4 execSample (const tcu::Texture1DView& src, const ReferenceParams& params, f… in execSample()
347 return tcu::Vec4(src.sampleCompare(params.sampler, params.ref, s, lod), 0.0, 0.0, 1.0f); in execSample()
352 static inline tcu::Vec4 execSample (const tcu::Texture2DView& src, const ReferenceParams& params, f… in execSample()
355 return tcu::Vec4(src.sampleCompare(params.sampler, params.ref, s, t, lod), 0.0, 0.0, 1.0f); in execSample()
360 static inline tcu::Vec4 execSample (const tcu::TextureCubeView& src, const ReferenceParams& params,… in execSample()
363 return tcu::Vec4(src.sampleCompare(params.sampler, params.ref, s, t, r, lod), 0.0, 0.0, 1.0f); in execSample()
368 static inline tcu::Vec4 execSample (const tcu::Texture2DArrayView& src, const ReferenceParams& para… in execSample()
371 return tcu::Vec4(src.sampleCompare(params.sampler, params.ref, s, t, r, lod), 0.0, 0.0, 1.0f); in execSample()
376 static inline tcu::Vec4 execSample (const tcu::TextureCubeArrayView& src, const ReferenceParams& pa… in execSample()
379 return tcu::Vec4(src.sampleCompare(params.sampler, params.ref, s, t, r, q, lod), 0.0, 0.0, 1.0f); in execSample()
384 static inline tcu::Vec4 execSample (const tcu::Texture1DArrayView& src, const ReferenceParams& para… in execSample()
387 return tcu::Vec4(src.sampleCompare(params.sampler, params.ref, s, t, lod), 0.0, 0.0, 1.0f); in execSample()
392 …tic void sampleTextureNonProjected (const tcu::SurfaceAccess& dst, const tcu::Texture1DView& rawSr… in sampleTextureNonProjected()
395 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureNonProjected()
396 …const tcu::Texture1DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sam… in sampleTextureNonProjected()
400 tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight()); in sampleTextureNonProjected()
404 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
427 …ampleTextureNonProjected (const tcu::SurfaceAccess& dst, const tcu::Texture2DView& rawSrc, const t… in sampleTextureNonProjected()
430 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureNonProjected()
431 …const tcu::Texture2DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sam… in sampleTextureNonProjected()
435 tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight()); in sampleTextureNonProjected()
436 tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()); in sampleTextureNonProjected()
439 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
440 tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
464 static void sampleTextureProjected (const tcu::SurfaceAccess& dst, const tcu::Texture1DView& rawSrc… in sampleTextureProjected()
467 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureProjected()
468 …const tcu::Texture1DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sam… in sampleTextureProjected()
474 tcu::Vec4 uq = sq * (float)src.getWidth(); in sampleTextureProjected()
476 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureProjected()
477 tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) }; in sampleTextureProjected()
478 tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) }; in sampleTextureProjected()
504 …d sampleTextureProjected (const tcu::SurfaceAccess& dst, const tcu::Texture2DView& rawSrc, const t… in sampleTextureProjected()
507 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureProjected()
508 …const tcu::Texture2DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sam… in sampleTextureProjected()
514 tcu::Vec4 uq = sq * (float)src.getWidth(); in sampleTextureProjected()
515 tcu::Vec4 vq = tq * (float)src.getHeight(); in sampleTextureProjected()
517 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureProjected()
518 tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureProjected()
519 tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) }; in sampleTextureProjected()
520 tcu::Vec3 triV[2] = { vq.swizzle(0, 1, 2), vq.swizzle(3, 2, 1) }; in sampleTextureProjected()
521 tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) }; in sampleTextureProjected()
548 void sampleTexture (const tcu::SurfaceAccess& dst, const tcu::Texture2DView& src, const float* texC… in sampleTexture()
550 const tcu::Texture2DView view = getSubView(src, params.baseLevel, params.maxLevel); in sampleTexture()
551 const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+0]); in sampleTexture()
552 const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+1]); in sampleTexture()
560 void sampleTexture (const tcu::SurfaceAccess& dst, const tcu::Texture1DView& src, const float* texC… in sampleTexture()
562 const tcu::Texture1DView view = getSubView(src, params.baseLevel, params.maxLevel); in sampleTexture()
563 const tcu::Vec4 sq = tcu::Vec4(texCoord[0], texCoord[1], texCoord[2], texCoord[3]); in sampleTexture()
571 …mputeCubeLodFromDerivates (LodMode lodMode, const tcu::Vec3& coord, const tcu::Vec3& coordDx, cons… in computeCubeLodFromDerivates()
573 const tcu::CubeFace face = tcu::selectCubeFace(coord); in computeCubeLodFromDerivates()
581 case tcu::CUBEFACE_NEGATIVE_X: in computeCubeLodFromDerivates()
582 case tcu::CUBEFACE_POSITIVE_X: maNdx = 0; sNdx = 2; tNdx = 1; break; in computeCubeLodFromDerivates()
583 case tcu::CUBEFACE_NEGATIVE_Y: in computeCubeLodFromDerivates()
584 case tcu::CUBEFACE_POSITIVE_Y: maNdx = 1; sNdx = 0; tNdx = 2; break; in computeCubeLodFromDerivates()
585 case tcu::CUBEFACE_NEGATIVE_Z: in computeCubeLodFromDerivates()
586 case tcu::CUBEFACE_POSITIVE_Z: maNdx = 2; sNdx = 0; tNdx = 1; break; in computeCubeLodFromDerivates()
610 …eTextureCube (const tcu::SurfaceAccess& dst, const tcu::TextureCubeView& rawSrc, const tcu::Vec4& … in sampleTextureCube()
613 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureCube()
614 …const tcu::TextureCubeView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.s… in sampleTextureCube()
616 const tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight()); in sampleTextureCube()
622 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureCube()
623 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureCube()
624 const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in sampleTextureCube()
625 const tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) }; in sampleTextureCube()
642 const tcu::Vec3 coord (triangleInterpolate(triS[triNdx], triNx, triNy), in sampleTextureCube()
645 const tcu::Vec3 coordDx (triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in sampleTextureCube()
648 const tcu::Vec3 coordDy (triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in sampleTextureCube()
659 void sampleTexture (const tcu::SurfaceAccess& dst, const tcu::TextureCubeView& src, const float* te… in sampleTexture()
661 const tcu::TextureCubeView view = getSubView(src, params.baseLevel, params.maxLevel); in sampleTexture()
662 const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]); in sampleTexture()
663 const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]); in sampleTexture()
664 const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]); in sampleTexture()
669 …onProjected (const tcu::SurfaceAccess& dst, const tcu::Texture2DArrayView& rawSrc, const tcu::Vec4… in sampleTextureNonProjected()
672 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureNonProjected()
673 …const tcu::Texture2DArrayView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params… in sampleTextureNonProjected()
677 tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight()); in sampleTextureNonProjected()
678 tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()); in sampleTextureNonProjected()
681 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
682 tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
683 tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
708 void sampleTexture (const tcu::SurfaceAccess& dst, const tcu::Texture2DArrayView& src, const float*… in sampleTexture()
710 tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]); in sampleTexture()
711 tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]); in sampleTexture()
712 tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]); in sampleTexture()
718 …leTextureNonProjected (const tcu::SurfaceAccess& dst, const tcu::Texture1DArrayView& rawSrc, const… in sampleTextureNonProjected()
721 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureNonProjected()
722 …const tcu::Texture1DArrayView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params… in sampleTextureNonProjected()
726 tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight()); in sampleTextureNonProjected()
730 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
731 tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
755 void sampleTexture (const tcu::SurfaceAccess& dst, const tcu::Texture1DArrayView& src, const float*… in sampleTexture()
757 tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+0]); in sampleTexture()
758 tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+1]); in sampleTexture()
764 …eNonProjected (const tcu::SurfaceAccess& dst, const tcu::Texture3DView& rawSrc, const tcu::Vec4& s… in sampleTextureNonProjected()
767 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureNonProjected()
768 …const tcu::Texture3DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sam… in sampleTextureNonProjected()
772 tcu::IVec2 dstSize = tcu::IVec2(dst.getWidth(), dst.getHeight()); in sampleTextureNonProjected()
773 tcu::IVec3 srcSize = tcu::IVec3(src.getWidth(), src.getHeight(), src.getDepth()); in sampleTextureNonProjected()
776 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
777 tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
778 tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in sampleTextureNonProjected()
803 …tureProjected (const tcu::SurfaceAccess& dst, const tcu::Texture3DView& rawSrc, const tcu::Vec4& s… in sampleTextureProjected()
806 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureProjected()
807 …const tcu::Texture3DView src = getEffectiveTextureView(rawSrc, srcLevelStorage, params.sam… in sampleTextureProjected()
813 tcu::Vec4 uq = sq * (float)src.getWidth(); in sampleTextureProjected()
814 tcu::Vec4 vq = tq * (float)src.getHeight(); in sampleTextureProjected()
815 tcu::Vec4 wq = rq * (float)src.getDepth(); in sampleTextureProjected()
817 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureProjected()
818 tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureProjected()
819 tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in sampleTextureProjected()
820 tcu::Vec3 triU[2] = { uq.swizzle(0, 1, 2), uq.swizzle(3, 2, 1) }; in sampleTextureProjected()
821 tcu::Vec3 triV[2] = { vq.swizzle(0, 1, 2), vq.swizzle(3, 2, 1) }; in sampleTextureProjected()
822 tcu::Vec3 triW[2] = { wq.swizzle(0, 1, 2), wq.swizzle(3, 2, 1) }; in sampleTextureProjected()
823 tcu::Vec3 triP[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) }; in sampleTextureProjected()
851 void sampleTexture (const tcu::SurfaceAccess& dst, const tcu::Texture3DView& src, const float* texC… in sampleTexture()
853 const tcu::Texture3DView view = getSubView(src, params.baseLevel, params.maxLevel); in sampleTexture()
854 const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]); in sampleTexture()
855 const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]); in sampleTexture()
856 const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]); in sampleTexture()
864 …(const tcu::SurfaceAccess& dst, const tcu::TextureCubeArrayView& rawSrc, const tcu::Vec4& sq, cons… in sampleTextureCubeArray()
867 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in sampleTextureCubeArray()
868 …const tcu::TextureCubeArrayView src = getEffectiveTextureView(rawSrc, srcLevelStorage, para… in sampleTextureCubeArray()
874 tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in sampleTextureCubeArray()
875 tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in sampleTextureCubeArray()
876 tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in sampleTextureCubeArray()
877 tcu::Vec3 triQ[2] = { qq.swizzle(0, 1, 2), qq.swizzle(3, 2, 1) }; in sampleTextureCubeArray()
878 const tcu::Vec3 triW[2] = { params.w.swizzle(0, 1, 2), params.w.swizzle(3, 2, 1) }; in sampleTextureCubeArray()
895 const tcu::Vec3 coord (triangleInterpolate(triS[triNdx], triNx, triNy), in sampleTextureCubeArray()
901 const tcu::Vec3 coordDx (triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in sampleTextureCubeArray()
904 const tcu::Vec3 coordDy (triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in sampleTextureCubeArray()
915 void sampleTexture (const tcu::SurfaceAccess& dst, const tcu::TextureCubeArrayView& src, const floa… in sampleTexture()
917 tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[4+0], texCoord[8+0], texCoord[12+0]); in sampleTexture()
918 tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[4+1], texCoord[8+1], texCoord[12+1]); in sampleTexture()
919 tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[4+2], texCoord[8+2], texCoord[12+2]); in sampleTexture()
920 tcu::Vec4 qq = tcu::Vec4(texCoord[0+3], texCoord[4+3], texCoord[8+3], texCoord[12+3]); in sampleTexture()
925 …xture (const tcu::SurfaceAccess& dst, const tcu::ConstPixelBufferAccess& src, const float* texCoor… in fetchTexture()
927 const tcu::Vec4 sq = tcu::Vec4(texCoord[0], texCoord[1], texCoord[2], texCoord[3]); in fetchTexture()
928 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in fetchTexture()
948 bool compareImages (tcu::TestLog& log, const tcu::Surface& reference, const tcu::Surface& rendered,… in compareImages()
950 …return tcu::pixelThresholdCompare(log, "Result", "Image comparison result", reference, rendered, t… in compareImages()
953 …l compareImages (tcu::TestLog& log, const char* name, const char* desc, const tcu::Surface& refere… in compareImages()
955 …return tcu::pixelThresholdCompare(log, name, desc, reference, rendered, threshold, tcu::COMPARE_LO… in compareImages()
958 int measureAccuracy (tcu::TestLog& log, const tcu::Surface& reference, const tcu::Surface& rendered… in measureAccuracy()
960 …return tcu::measurePixelDiffAccuracy(log, "Result", "Image comparison result", reference, rendered… in measureAccuracy()
973 inline tcu::RGBA rangeDiff (tcu::RGBA p, tcu::RGBA a, tcu::RGBA b) in rangeDiff()
984 return tcu::RGBA(rangeDiff(p.getRed(), rMin, rMax), in rangeDiff()
990 inline bool rangeCompare (tcu::RGBA p, tcu::RGBA a, tcu::RGBA b, tcu::RGBA threshold) in rangeCompare()
992 tcu::RGBA diff = rangeDiff(p, a, b); in rangeCompare()
1019 void computeQuadTexCoord2D (std::vector<float>& dst, const tcu::Vec2& bottomLeft, const tcu::Vec2& … in computeQuadTexCoord2D()
1029 …xCoord2DArray (std::vector<float>& dst, int layerNdx, const tcu::Vec2& bottomLeft, const tcu::Vec2… in computeQuadTexCoord2DArray()
1039 …computeQuadTexCoord3D (std::vector<float>& dst, const tcu::Vec3& p0, const tcu::Vec3& p1, const tc… in computeQuadTexCoord3D()
1041 tcu::Vec3 f0 = tcu::Vec3(0.0f, 0.0f, 0.0f).swizzle(dirSwz[0], dirSwz[1], dirSwz[2]); in computeQuadTexCoord3D()
1042 tcu::Vec3 f1 = tcu::Vec3(0.0f, 1.0f, 0.0f).swizzle(dirSwz[0], dirSwz[1], dirSwz[2]); in computeQuadTexCoord3D()
1043 tcu::Vec3 f2 = tcu::Vec3(1.0f, 0.0f, 0.0f).swizzle(dirSwz[0], dirSwz[1], dirSwz[2]); in computeQuadTexCoord3D()
1044 tcu::Vec3 f3 = tcu::Vec3(1.0f, 1.0f, 0.0f).swizzle(dirSwz[0], dirSwz[1], dirSwz[2]); in computeQuadTexCoord3D()
1046 tcu::Vec3 v0 = p0 + (p1-p0)*f0; in computeQuadTexCoord3D()
1047 tcu::Vec3 v1 = p0 + (p1-p0)*f1; in computeQuadTexCoord3D()
1048 tcu::Vec3 v2 = p0 + (p1-p0)*f2; in computeQuadTexCoord3D()
1049 tcu::Vec3 v3 = p0 + (p1-p0)*f3; in computeQuadTexCoord3D()
1059 void computeQuadTexCoordCube (std::vector<float>& dst, tcu::CubeFace face) in computeQuadTexCoordCube()
1109 case tcu::CUBEFACE_NEGATIVE_X: texCoord = texCoordNegX; break; in computeQuadTexCoordCube()
1110 case tcu::CUBEFACE_POSITIVE_X: texCoord = texCoordPosX; break; in computeQuadTexCoordCube()
1111 case tcu::CUBEFACE_NEGATIVE_Y: texCoord = texCoordNegY; break; in computeQuadTexCoordCube()
1112 case tcu::CUBEFACE_POSITIVE_Y: texCoord = texCoordPosY; break; in computeQuadTexCoordCube()
1113 case tcu::CUBEFACE_NEGATIVE_Z: texCoord = texCoordNegZ; break; in computeQuadTexCoordCube()
1114 case tcu::CUBEFACE_POSITIVE_Z: texCoord = texCoordPosZ; break; in computeQuadTexCoordCube()
1124 …puteQuadTexCoordCube (std::vector<float>& dst, tcu::CubeFace face, const tcu::Vec2& bottomLeft, co… in computeQuadTexCoordCube()
1135 …case tcu::CUBEFACE_NEGATIVE_X: mRow = 0; sRow = 2; tRow = 1; mSign = -1.0f; tSign = -1.0f; b… in computeQuadTexCoordCube()
1136 …case tcu::CUBEFACE_POSITIVE_X: mRow = 0; sRow = 2; tRow = 1; sSign = -1.0f; tSign = -1.0f; brea… in computeQuadTexCoordCube()
1137 …case tcu::CUBEFACE_NEGATIVE_Y: mRow = 1; sRow = 0; tRow = 2; mSign = -1.0f; tSign = -1.0f; b… in computeQuadTexCoordCube()
1138 case tcu::CUBEFACE_POSITIVE_Y: mRow = 1; sRow = 0; tRow = 2; break; in computeQuadTexCoordCube()
1139 …case tcu::CUBEFACE_NEGATIVE_Z: mRow = 2; sRow = 0; tRow = 1; mSign = -1.0f; sSign = -1.0f; tSign =… in computeQuadTexCoordCube()
1140 case tcu::CUBEFACE_POSITIVE_Z: mRow = 2; sRow = 0; tRow = 1; tSign = -1.0f; break; in computeQuadTexCoordCube()
1164 …beArray (std::vector<float>& dst, tcu::CubeFace face, const tcu::Vec2& bottomLeft, const tcu::Vec2… in computeQuadTexCoordCubeArray()
1178 …case tcu::CUBEFACE_NEGATIVE_X: mRow = 0; sRow = 2; tRow = 1; mSign = -1.0f; tSign = -1.0f; b… in computeQuadTexCoordCubeArray()
1179 …case tcu::CUBEFACE_POSITIVE_X: mRow = 0; sRow = 2; tRow = 1; sSign = -1.0f; tSign = -1.0f; brea… in computeQuadTexCoordCubeArray()
1180 …case tcu::CUBEFACE_NEGATIVE_Y: mRow = 1; sRow = 0; tRow = 2; mSign = -1.0f; tSign = -1.0f; b… in computeQuadTexCoordCubeArray()
1181 case tcu::CUBEFACE_POSITIVE_Y: mRow = 1; sRow = 0; tRow = 2; break; in computeQuadTexCoordCubeArray()
1182 …case tcu::CUBEFACE_NEGATIVE_Z: mRow = 2; sRow = 0; tRow = 1; mSign = -1.0f; sSign = -1.0f; tSign =… in computeQuadTexCoordCubeArray()
1183 case tcu::CUBEFACE_POSITIVE_Z: mRow = 2; sRow = 0; tRow = 1; tSign = -1.0f; break; in computeQuadTexCoordCubeArray()
1225 int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureLookupDiff()
1226 const tcu::ConstPixelBufferAccess& reference, in computeTextureLookupDiff()
1227 const tcu::PixelBufferAccess& errorMask, in computeTextureLookupDiff()
1228 const tcu::Texture1DView& baseView, in computeTextureLookupDiff()
1231 const tcu::LookupPrecision& lookupPrec, in computeTextureLookupDiff()
1232 const tcu::LodPrecision& lodPrec, in computeTextureLookupDiff()
1238 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in computeTextureLookupDiff()
1239 …const tcu::Texture1DView src = getEffectiveTextureView(getSubView(baseView, sampleParams.b… in computeTextureLookupDiff()
1241 const tcu::Vec4 sq = tcu::Vec4(texCoord[0], texCoord[1], texCoord[2], texCoord[3]); in computeTextureLookupDiff()
1243 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureLookupDiff()
1249 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1250 …const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2… in computeTextureLookupDiff()
1252 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams… in computeTextureLookupDiff()
1256 const tcu::Vec2 lodOffsets[] = in computeTextureLookupDiff()
1258 tcu::Vec2(-1, 0), in computeTextureLookupDiff()
1259 tcu::Vec2(+1, 0), in computeTextureLookupDiff()
1260 tcu::Vec2( 0, -1), in computeTextureLookupDiff()
1261 tcu::Vec2( 0, +1), in computeTextureLookupDiff()
1264 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureLookupDiff()
1274 …const tcu::Vec4 resPix = (result.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colorS… in computeTextureLookupDiff()
1275 …const tcu::Vec4 refPix = (reference.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colo… in computeTextureLookupDiff()
1278 if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(resPix - refPix), lookupPrec.colorThreshold))) in computeTextureLookupDiff()
1295 tcu::Vec2 lodBounds = tcu::computeLodBoundsFromDerivates(coordDx, coordDy, lodPrec); in computeTextureLookupDiff()
1307 const tcu::Vec2 lodO = tcu::computeLodBoundsFromDerivates(coordDxo, coordDyo, lodPrec); in computeTextureLookupDiff()
1313 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureLookupDiff()
1314 …const bool isOk = tcu::isLookupResultValid(src, sampleParams.sampler, lookupPrec, coord, clamped… in computeTextureLookupDiff()
1318 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureLookupDiff()
1328 int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureLookupDiff()
1329 const tcu::ConstPixelBufferAccess& reference, in computeTextureLookupDiff()
1330 const tcu::PixelBufferAccess& errorMask, in computeTextureLookupDiff()
1331 const tcu::Texture2DView& baseView, in computeTextureLookupDiff()
1334 const tcu::LookupPrecision& lookupPrec, in computeTextureLookupDiff()
1335 const tcu::LodPrecision& lodPrec, in computeTextureLookupDiff()
1341 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in computeTextureLookupDiff()
1342 …const tcu::Texture2DView src = getEffectiveTextureView(getSubView(baseView, sampleParams.b… in computeTextureLookupDiff()
1344 …const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+… in computeTextureLookupDiff()
1345 …const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+… in computeTextureLookupDiff()
1347 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureLookupDiff()
1350 const tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()); in computeTextureLookupDiff()
1353 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1354 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1355 …const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2… in computeTextureLookupDiff()
1357 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams… in computeTextureLookupDiff()
1363 const tcu::Vec2 lodOffsets[] = in computeTextureLookupDiff()
1365 tcu::Vec2(-1, 0), in computeTextureLookupDiff()
1366 tcu::Vec2(+1, 0), in computeTextureLookupDiff()
1367 tcu::Vec2( 0, -1), in computeTextureLookupDiff()
1368 tcu::Vec2( 0, +1), in computeTextureLookupDiff()
1371 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureLookupDiff()
1381 …const tcu::Vec4 resPix = (result.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colorS… in computeTextureLookupDiff()
1382 …const tcu::Vec4 refPix = (reference.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colo… in computeTextureLookupDiff()
1385 if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(resPix - refPix), lookupPrec.colorThreshold))) in computeTextureLookupDiff()
1407 const tcu::Vec2 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureLookupDiff()
1409 const tcu::Vec2 coordDx = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureLookupDiff()
1411 const tcu::Vec2 coordDy = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureLookupDiff()
1414 …tcu::Vec2 lodBounds = tcu::computeLodBoundsFromDerivates(coordDx.x(), coordDx.y(), coordDy.x(), c… in computeTextureLookupDiff()
1424 const tcu::Vec2 coordDxo = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureLookupDiff()
1426 const tcu::Vec2 coordDyo = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureLookupDiff()
1428 …const tcu::Vec2 lodO = tcu::computeLodBoundsFromDerivates(coordDxo.x(), coordDxo.y(), coordDyo.x(… in computeTextureLookupDiff()
1434 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureLookupDiff()
1435 if (tcu::isLookupResultValid(src, sampleParams.sampler, lookupPrec, coord, clampedLod, resPix)) in computeTextureLookupDiff()
1444 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureLookupDiff()
1454 bool verifyTextureResult (tcu::TestContext& testCtx, in verifyTextureResult()
1455 const tcu::ConstPixelBufferAccess& result, in verifyTextureResult()
1456 const tcu::Texture1DView& src, in verifyTextureResult()
1459 const tcu::LookupPrecision& lookupPrec, in verifyTextureResult()
1460 const tcu::LodPrecision& lodPrec, in verifyTextureResult()
1461 const tcu::PixelFormat& pixelFormat) in verifyTextureResult()
1463 tcu::TestLog& log = testCtx.getLog(); in verifyTextureResult()
1464 tcu::Surface reference (result.getWidth(), result.getHeight()); in verifyTextureResult()
1465 tcu::Surface errorMask (result.getWidth(), result.getHeight()); in verifyTextureResult()
1470 sampleTexture(tcu::SurfaceAccess(reference, pixelFormat), src, texCoord, sampleParams); in verifyTextureResult()
1474 …log << tcu::TestLog::Message << "ERROR: Result verification failed, got " << numFailedPixels << " … in verifyTextureResult()
1476 log << tcu::TestLog::ImageSet("VerifyResult", "Verification result") in verifyTextureResult()
1477 << tcu::TestLog::Image("Rendered", "Rendered image", result); in verifyTextureResult()
1481 log << tcu::TestLog::Image("Reference", "Ideal reference image", reference) in verifyTextureResult()
1482 << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in verifyTextureResult()
1485 log << tcu::TestLog::EndImageSet; in verifyTextureResult()
1490 bool verifyTextureResult (tcu::TestContext& testCtx, in verifyTextureResult()
1491 const tcu::ConstPixelBufferAccess& result, in verifyTextureResult()
1492 const tcu::Texture2DView& src, in verifyTextureResult()
1495 const tcu::LookupPrecision& lookupPrec, in verifyTextureResult()
1496 const tcu::LodPrecision& lodPrec, in verifyTextureResult()
1497 const tcu::PixelFormat& pixelFormat) in verifyTextureResult()
1499 tcu::TestLog& log = testCtx.getLog(); in verifyTextureResult()
1500 tcu::Surface reference (result.getWidth(), result.getHeight()); in verifyTextureResult()
1501 tcu::Surface errorMask (result.getWidth(), result.getHeight()); in verifyTextureResult()
1506 sampleTexture(tcu::SurfaceAccess(reference, pixelFormat), src, texCoord, sampleParams); in verifyTextureResult()
1510 …log << tcu::TestLog::Message << "ERROR: Result verification failed, got " << numFailedPixels << " … in verifyTextureResult()
1512 log << tcu::TestLog::ImageSet("VerifyResult", "Verification result") in verifyTextureResult()
1513 << tcu::TestLog::Image("Rendered", "Rendered image", result); in verifyTextureResult()
1517 log << tcu::TestLog::Image("Reference", "Ideal reference image", reference) in verifyTextureResult()
1518 << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in verifyTextureResult()
1521 log << tcu::TestLog::EndImageSet; in verifyTextureResult()
1527 int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureLookupDiff()
1528 const tcu::ConstPixelBufferAccess& reference, in computeTextureLookupDiff()
1529 const tcu::PixelBufferAccess& errorMask, in computeTextureLookupDiff()
1530 const tcu::TextureCubeView& baseView, in computeTextureLookupDiff()
1533 const tcu::LookupPrecision& lookupPrec, in computeTextureLookupDiff()
1534 const tcu::LodPrecision& lodPrec, in computeTextureLookupDiff()
1540 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in computeTextureLookupDiff()
1541 …const tcu::TextureCubeView src = getEffectiveTextureView(getSubView(baseView, sampleParams… in computeTextureLookupDiff()
1543 …const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+… in computeTextureLookupDiff()
1544 …const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+… in computeTextureLookupDiff()
1545 …const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+… in computeTextureLookupDiff()
1547 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureLookupDiff()
1553 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1554 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1555 const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1556 …const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2… in computeTextureLookupDiff()
1558 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams… in computeTextureLookupDiff()
1564 const tcu::Vec2 lodOffsets[] = in computeTextureLookupDiff()
1566 tcu::Vec2(-1, 0), in computeTextureLookupDiff()
1567 tcu::Vec2(+1, 0), in computeTextureLookupDiff()
1568 tcu::Vec2( 0, -1), in computeTextureLookupDiff()
1569 tcu::Vec2( 0, +1), in computeTextureLookupDiff()
1572 tcu::Vec2(-1, -1), in computeTextureLookupDiff()
1573 tcu::Vec2(-1, +1), in computeTextureLookupDiff()
1574 tcu::Vec2(+1, -1), in computeTextureLookupDiff()
1575 tcu::Vec2(+1, +1), in computeTextureLookupDiff()
1578 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureLookupDiff()
1588 …const tcu::Vec4 resPix = (result.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colorS… in computeTextureLookupDiff()
1589 …const tcu::Vec4 refPix = (reference.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colo… in computeTextureLookupDiff()
1592 if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(resPix - refPix), lookupPrec.colorThreshold))) in computeTextureLookupDiff()
1614 const tcu::Vec3 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureLookupDiff()
1617 const tcu::Vec3 coordDx (triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureLookupDiff()
1620 const tcu::Vec3 coordDy (triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureLookupDiff()
1624 …tcu::Vec2 lodBounds = tcu::computeCubeLodBoundsFromDerivates(coord, coordDx, coordDy, srcSize, lo… in computeTextureLookupDiff()
1634 const tcu::Vec3 coordO (projectedTriInterpolate(triS[triNdx], triW[triNdx], nxo, nyo), in computeTextureLookupDiff()
1637 const tcu::Vec3 coordDxo (triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureLookupDiff()
1640 const tcu::Vec3 coordDyo (triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureLookupDiff()
1643 …const tcu::Vec2 lodO = tcu::computeCubeLodBoundsFromDerivates(coordO, coordDxo, coordDyo, srcSize… in computeTextureLookupDiff()
1649 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureLookupDiff()
1651 if (tcu::isLookupResultValid(src, sampleParams.sampler, lookupPrec, coord, clampedLod, resPix)) in computeTextureLookupDiff()
1660 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureLookupDiff()
1670 bool verifyTextureResult (tcu::TestContext& testCtx, in verifyTextureResult()
1671 const tcu::ConstPixelBufferAccess& result, in verifyTextureResult()
1672 const tcu::TextureCubeView& src, in verifyTextureResult()
1675 const tcu::LookupPrecision& lookupPrec, in verifyTextureResult()
1676 const tcu::LodPrecision& lodPrec, in verifyTextureResult()
1677 const tcu::PixelFormat& pixelFormat) in verifyTextureResult()
1679 tcu::TestLog& log = testCtx.getLog(); in verifyTextureResult()
1680 tcu::Surface reference (result.getWidth(), result.getHeight()); in verifyTextureResult()
1681 tcu::Surface errorMask (result.getWidth(), result.getHeight()); in verifyTextureResult()
1686 sampleTexture(tcu::SurfaceAccess(reference, pixelFormat), src, texCoord, sampleParams); in verifyTextureResult()
1690 …log << tcu::TestLog::Message << "ERROR: Result verification failed, got " << numFailedPixels << " … in verifyTextureResult()
1692 log << tcu::TestLog::ImageSet("VerifyResult", "Verification result") in verifyTextureResult()
1693 << tcu::TestLog::Image("Rendered", "Rendered image", result); in verifyTextureResult()
1697 log << tcu::TestLog::Image("Reference", "Ideal reference image", reference) in verifyTextureResult()
1698 << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in verifyTextureResult()
1701 log << tcu::TestLog::EndImageSet; in verifyTextureResult()
1707 int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureLookupDiff()
1708 const tcu::ConstPixelBufferAccess& reference, in computeTextureLookupDiff()
1709 const tcu::PixelBufferAccess& errorMask, in computeTextureLookupDiff()
1710 const tcu::Texture3DView& baseView, in computeTextureLookupDiff()
1713 const tcu::LookupPrecision& lookupPrec, in computeTextureLookupDiff()
1714 const tcu::LodPrecision& lodPrec, in computeTextureLookupDiff()
1720 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in computeTextureLookupDiff()
1721 …const tcu::Texture3DView src = getEffectiveTextureView(getSubView(baseView, sampleParams.b… in computeTextureLookupDiff()
1723 …const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+… in computeTextureLookupDiff()
1724 …const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+… in computeTextureLookupDiff()
1725 …const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+… in computeTextureLookupDiff()
1727 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureLookupDiff()
1730 const tcu::IVec3 srcSize = tcu::IVec3(src.getWidth(), src.getHeight(), src.getDepth()); in computeTextureLookupDiff()
1733 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1734 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1735 const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1736 …const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2… in computeTextureLookupDiff()
1738 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams… in computeTextureLookupDiff()
1744 const tcu::Vec2 lodOffsets[] = in computeTextureLookupDiff()
1746 tcu::Vec2(-1, 0), in computeTextureLookupDiff()
1747 tcu::Vec2(+1, 0), in computeTextureLookupDiff()
1748 tcu::Vec2( 0, -1), in computeTextureLookupDiff()
1749 tcu::Vec2( 0, +1), in computeTextureLookupDiff()
1752 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureLookupDiff()
1762 …const tcu::Vec4 resPix = (result.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colorS… in computeTextureLookupDiff()
1763 …const tcu::Vec4 refPix = (reference.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colo… in computeTextureLookupDiff()
1766 if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(resPix - refPix), lookupPrec.colorThreshold))) in computeTextureLookupDiff()
1788 const tcu::Vec3 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureLookupDiff()
1791 const tcu::Vec3 coordDx = tcu::Vec3(triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureLookupDiff()
1794 const tcu::Vec3 coordDy = tcu::Vec3(triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureLookupDiff()
1798 …tcu::Vec2 lodBounds = tcu::computeLodBoundsFromDerivates(coordDx.x(), coordDx.y(), coordDx.z(), c… in computeTextureLookupDiff()
1808 const tcu::Vec3 coordDxo = tcu::Vec3(triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureLookupDiff()
1811 const tcu::Vec3 coordDyo = tcu::Vec3(triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureLookupDiff()
1814 …const tcu::Vec2 lodO = tcu::computeLodBoundsFromDerivates(coordDxo.x(), coordDxo.y(), coordDxo.z(… in computeTextureLookupDiff()
1820 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureLookupDiff()
1822 if (tcu::isLookupResultValid(src, sampleParams.sampler, lookupPrec, coord, clampedLod, resPix)) in computeTextureLookupDiff()
1831 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureLookupDiff()
1841 bool verifyTextureResult (tcu::TestContext& testCtx, in verifyTextureResult()
1842 const tcu::ConstPixelBufferAccess& result, in verifyTextureResult()
1843 const tcu::Texture3DView& src, in verifyTextureResult()
1846 const tcu::LookupPrecision& lookupPrec, in verifyTextureResult()
1847 const tcu::LodPrecision& lodPrec, in verifyTextureResult()
1848 const tcu::PixelFormat& pixelFormat) in verifyTextureResult()
1850 tcu::TestLog& log = testCtx.getLog(); in verifyTextureResult()
1851 tcu::Surface reference (result.getWidth(), result.getHeight()); in verifyTextureResult()
1852 tcu::Surface errorMask (result.getWidth(), result.getHeight()); in verifyTextureResult()
1857 sampleTexture(tcu::SurfaceAccess(reference, pixelFormat), src, texCoord, sampleParams); in verifyTextureResult()
1861 …log << tcu::TestLog::Message << "ERROR: Result verification failed, got " << numFailedPixels << " … in verifyTextureResult()
1863 log << tcu::TestLog::ImageSet("VerifyResult", "Verification result") in verifyTextureResult()
1864 << tcu::TestLog::Image("Rendered", "Rendered image", result); in verifyTextureResult()
1868 log << tcu::TestLog::Image("Reference", "Ideal reference image", reference) in verifyTextureResult()
1869 << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in verifyTextureResult()
1872 log << tcu::TestLog::EndImageSet; in verifyTextureResult()
1878 int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureLookupDiff()
1879 const tcu::ConstPixelBufferAccess& reference, in computeTextureLookupDiff()
1880 const tcu::PixelBufferAccess& errorMask, in computeTextureLookupDiff()
1881 const tcu::Texture1DArrayView& baseView, in computeTextureLookupDiff()
1884 const tcu::LookupPrecision& lookupPrec, in computeTextureLookupDiff()
1885 const tcu::LodPrecision& lodPrec, in computeTextureLookupDiff()
1891 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in computeTextureLookupDiff()
1892 …const tcu::Texture1DArrayView src = getEffectiveTextureView(baseView, srcLevelStorage, samp… in computeTextureLookupDiff()
1894 …const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+… in computeTextureLookupDiff()
1895 …const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+… in computeTextureLookupDiff()
1897 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureLookupDiff()
1903 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1904 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
1905 …const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2… in computeTextureLookupDiff()
1907 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams… in computeTextureLookupDiff()
1911 const tcu::Vec2 lodOffsets[] = in computeTextureLookupDiff()
1913 tcu::Vec2(-1, 0), in computeTextureLookupDiff()
1914 tcu::Vec2(+1, 0), in computeTextureLookupDiff()
1915 tcu::Vec2( 0, -1), in computeTextureLookupDiff()
1916 tcu::Vec2( 0, +1), in computeTextureLookupDiff()
1919 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureLookupDiff()
1929 …const tcu::Vec4 resPix = (result.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colorS… in computeTextureLookupDiff()
1930 …const tcu::Vec4 refPix = (reference.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colo… in computeTextureLookupDiff()
1933 if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(resPix - refPix), lookupPrec.colorThreshold))) in computeTextureLookupDiff()
1946 const tcu::Vec2 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureLookupDiff()
1951 tcu::Vec2 lodBounds = tcu::computeLodBoundsFromDerivates(coordDx, coordDy, lodPrec); in computeTextureLookupDiff()
1963 const tcu::Vec2 lodO = tcu::computeLodBoundsFromDerivates(coordDxo, coordDyo, lodPrec); in computeTextureLookupDiff()
1969 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureLookupDiff()
1970 …const bool isOk = tcu::isLookupResultValid(src, sampleParams.sampler, lookupPrec, coord, clamped… in computeTextureLookupDiff()
1974 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureLookupDiff()
1985 int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureLookupDiff()
1986 const tcu::ConstPixelBufferAccess& reference, in computeTextureLookupDiff()
1987 const tcu::PixelBufferAccess& errorMask, in computeTextureLookupDiff()
1988 const tcu::Texture2DArrayView& baseView, in computeTextureLookupDiff()
1991 const tcu::LookupPrecision& lookupPrec, in computeTextureLookupDiff()
1992 const tcu::LodPrecision& lodPrec, in computeTextureLookupDiff()
1998 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in computeTextureLookupDiff()
1999 …const tcu::Texture2DArrayView src = getEffectiveTextureView(baseView, srcLevelStorage, samp… in computeTextureLookupDiff()
2001 …const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+… in computeTextureLookupDiff()
2002 …const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+… in computeTextureLookupDiff()
2003 …const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+… in computeTextureLookupDiff()
2005 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureLookupDiff()
2008 …const tcu::Vec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()).asFloat(); // For … in computeTextureLookupDiff()
2011 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
2012 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
2013 const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
2014 …const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2… in computeTextureLookupDiff()
2016 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams… in computeTextureLookupDiff()
2020 const tcu::Vec2 lodOffsets[] = in computeTextureLookupDiff()
2022 tcu::Vec2(-1, 0), in computeTextureLookupDiff()
2023 tcu::Vec2(+1, 0), in computeTextureLookupDiff()
2024 tcu::Vec2( 0, -1), in computeTextureLookupDiff()
2025 tcu::Vec2( 0, +1), in computeTextureLookupDiff()
2028 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureLookupDiff()
2038 …const tcu::Vec4 resPix = (result.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colorS… in computeTextureLookupDiff()
2039 …const tcu::Vec4 refPix = (reference.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colo… in computeTextureLookupDiff()
2042 if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(resPix - refPix), lookupPrec.colorThreshold))) in computeTextureLookupDiff()
2055 const tcu::Vec3 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureLookupDiff()
2058 const tcu::Vec2 coordDx = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureLookupDiff()
2060 const tcu::Vec2 coordDy = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureLookupDiff()
2063 …tcu::Vec2 lodBounds = tcu::computeLodBoundsFromDerivates(coordDx.x(), coordDx.y(), coordDy.x(), c… in computeTextureLookupDiff()
2073 const tcu::Vec2 coordDxo = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureLookupDiff()
2075 const tcu::Vec2 coordDyo = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureLookupDiff()
2077 …const tcu::Vec2 lodO = tcu::computeLodBoundsFromDerivates(coordDxo.x(), coordDxo.y(), coordDyo.x(… in computeTextureLookupDiff()
2083 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureLookupDiff()
2084 …const bool isOk = tcu::isLookupResultValid(src, sampleParams.sampler, lookupPrec, coord, clamped… in computeTextureLookupDiff()
2088 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureLookupDiff()
2098 bool verifyTextureResult (tcu::TestContext& testCtx, in verifyTextureResult()
2099 const tcu::ConstPixelBufferAccess& result, in verifyTextureResult()
2100 const tcu::Texture1DArrayView& src, in verifyTextureResult()
2103 const tcu::LookupPrecision& lookupPrec, in verifyTextureResult()
2104 const tcu::LodPrecision& lodPrec, in verifyTextureResult()
2105 const tcu::PixelFormat& pixelFormat) in verifyTextureResult()
2107 tcu::TestLog& log = testCtx.getLog(); in verifyTextureResult()
2108 tcu::Surface reference (result.getWidth(), result.getHeight()); in verifyTextureResult()
2109 tcu::Surface errorMask (result.getWidth(), result.getHeight()); in verifyTextureResult()
2114 sampleTexture(tcu::SurfaceAccess(reference, pixelFormat), src, texCoord, sampleParams); in verifyTextureResult()
2118 …log << tcu::TestLog::Message << "ERROR: Result verification failed, got " << numFailedPixels << " … in verifyTextureResult()
2120 log << tcu::TestLog::ImageSet("VerifyResult", "Verification result") in verifyTextureResult()
2121 << tcu::TestLog::Image("Rendered", "Rendered image", result); in verifyTextureResult()
2125 log << tcu::TestLog::Image("Reference", "Ideal reference image", reference) in verifyTextureResult()
2126 << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in verifyTextureResult()
2129 log << tcu::TestLog::EndImageSet; in verifyTextureResult()
2134 bool verifyTextureResult (tcu::TestContext& testCtx, in verifyTextureResult()
2135 const tcu::ConstPixelBufferAccess& result, in verifyTextureResult()
2136 const tcu::Texture2DArrayView& src, in verifyTextureResult()
2139 const tcu::LookupPrecision& lookupPrec, in verifyTextureResult()
2140 const tcu::LodPrecision& lodPrec, in verifyTextureResult()
2141 const tcu::PixelFormat& pixelFormat) in verifyTextureResult()
2143 tcu::TestLog& log = testCtx.getLog(); in verifyTextureResult()
2144 tcu::Surface reference (result.getWidth(), result.getHeight()); in verifyTextureResult()
2145 tcu::Surface errorMask (result.getWidth(), result.getHeight()); in verifyTextureResult()
2150 sampleTexture(tcu::SurfaceAccess(reference, pixelFormat), src, texCoord, sampleParams); in verifyTextureResult()
2154 …log << tcu::TestLog::Message << "ERROR: Result verification failed, got " << numFailedPixels << " … in verifyTextureResult()
2156 log << tcu::TestLog::ImageSet("VerifyResult", "Verification result") in verifyTextureResult()
2157 << tcu::TestLog::Image("Rendered", "Rendered image", result); in verifyTextureResult()
2161 log << tcu::TestLog::Image("Reference", "Ideal reference image", reference) in verifyTextureResult()
2162 << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in verifyTextureResult()
2165 log << tcu::TestLog::EndImageSet; in verifyTextureResult()
2171 int computeTextureLookupDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureLookupDiff()
2172 const tcu::ConstPixelBufferAccess& reference, in computeTextureLookupDiff()
2173 const tcu::PixelBufferAccess& errorMask, in computeTextureLookupDiff()
2174 const tcu::TextureCubeArrayView& baseView, in computeTextureLookupDiff()
2177 const tcu::LookupPrecision& lookupPrec, in computeTextureLookupDiff()
2178 const tcu::IVec4& coordBits, in computeTextureLookupDiff()
2179 const tcu::LodPrecision& lodPrec, in computeTextureLookupDiff()
2185 std::vector<tcu::ConstPixelBufferAccess> srcLevelStorage; in computeTextureLookupDiff()
2186 …const tcu::TextureCubeArrayView src = getEffectiveTextureView(getSubView(baseView, samplePa… in computeTextureLookupDiff()
2188 …const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[4+0], texCoord[8+0], texCoord[12… in computeTextureLookupDiff()
2189 …const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[4+1], texCoord[8+1], texCoord[12… in computeTextureLookupDiff()
2190 …const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[4+2], texCoord[8+2], texCoord[12… in computeTextureLookupDiff()
2191 …const tcu::Vec4 qq = tcu::Vec4(texCoord[0+3], texCoord[4+3], texCoord[8+3], texCoord[12… in computeTextureLookupDiff()
2193 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureLookupDiff()
2199 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
2200 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
2201 const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
2202 const tcu::Vec3 triQ[2] = { qq.swizzle(0, 1, 2), qq.swizzle(3, 2, 1) }; in computeTextureLookupDiff()
2203 …const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2… in computeTextureLookupDiff()
2205 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams… in computeTextureLookupDiff()
2211 const tcu::Vec2 lodOffsets[] = in computeTextureLookupDiff()
2213 tcu::Vec2(-1, 0), in computeTextureLookupDiff()
2214 tcu::Vec2(+1, 0), in computeTextureLookupDiff()
2215 tcu::Vec2( 0, -1), in computeTextureLookupDiff()
2216 tcu::Vec2( 0, +1), in computeTextureLookupDiff()
2219 tcu::Vec2(-1, -1), in computeTextureLookupDiff()
2220 tcu::Vec2(-1, +1), in computeTextureLookupDiff()
2221 tcu::Vec2(+1, -1), in computeTextureLookupDiff()
2222 tcu::Vec2(+1, +1), in computeTextureLookupDiff()
2225 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureLookupDiff()
2235 …const tcu::Vec4 resPix = (result.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colorS… in computeTextureLookupDiff()
2236 …const tcu::Vec4 refPix = (reference.getPixel(px, py) - sampleParams.colorBias) / sampleParams.colo… in computeTextureLookupDiff()
2239 if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(resPix - refPix), lookupPrec.colorThreshold))) in computeTextureLookupDiff()
2261 const tcu::Vec4 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureLookupDiff()
2265 const tcu::Vec3 coordDx (triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureLookupDiff()
2268 const tcu::Vec3 coordDy (triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureLookupDiff()
2272 …tcu::Vec2 lodBounds = tcu::computeCubeLodBoundsFromDerivates(coord.toWidth<3>(), coordDx, coordDy… in computeTextureLookupDiff()
2282 const tcu::Vec3 coordO (projectedTriInterpolate(triS[triNdx], triW[triNdx], nxo, nyo), in computeTextureLookupDiff()
2285 const tcu::Vec3 coordDxo (triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureLookupDiff()
2288 const tcu::Vec3 coordDyo (triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureLookupDiff()
2291 …const tcu::Vec2 lodO = tcu::computeCubeLodBoundsFromDerivates(coordO, coordDxo, coordDyo, srcSize… in computeTextureLookupDiff()
2297 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureLookupDiff()
2299 …if (tcu::isLookupResultValid(src, sampleParams.sampler, lookupPrec, coordBits, coord, clampedLod, … in computeTextureLookupDiff()
2308 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureLookupDiff()
2318 bool verifyTextureResult (tcu::TestContext& testCtx, in verifyTextureResult()
2319 const tcu::ConstPixelBufferAccess& result, in verifyTextureResult()
2320 const tcu::TextureCubeArrayView& src, in verifyTextureResult()
2323 const tcu::LookupPrecision& lookupPrec, in verifyTextureResult()
2324 const tcu::IVec4& coordBits, in verifyTextureResult()
2325 const tcu::LodPrecision& lodPrec, in verifyTextureResult()
2326 const tcu::PixelFormat& pixelFormat) in verifyTextureResult()
2328 tcu::TestLog& log = testCtx.getLog(); in verifyTextureResult()
2329 tcu::Surface reference (result.getWidth(), result.getHeight()); in verifyTextureResult()
2330 tcu::Surface errorMask (result.getWidth(), result.getHeight()); in verifyTextureResult()
2335 sampleTexture(tcu::SurfaceAccess(reference, pixelFormat), src, texCoord, sampleParams); in verifyTextureResult()
2339 …log << tcu::TestLog::Message << "ERROR: Result verification failed, got " << numFailedPixels << " … in verifyTextureResult()
2341 log << tcu::TestLog::ImageSet("VerifyResult", "Verification result") in verifyTextureResult()
2342 << tcu::TestLog::Image("Rendered", "Rendered image", result); in verifyTextureResult()
2346 log << tcu::TestLog::Image("Reference", "Ideal reference image", reference) in verifyTextureResult()
2347 << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in verifyTextureResult()
2350 log << tcu::TestLog::EndImageSet; in verifyTextureResult()
2357 int computeTextureCompareDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureCompareDiff()
2358 const tcu::ConstPixelBufferAccess& reference, in computeTextureCompareDiff()
2359 const tcu::PixelBufferAccess& errorMask, in computeTextureCompareDiff()
2360 const tcu::Texture2DView& src, in computeTextureCompareDiff()
2363 const tcu::TexComparePrecision& comparePrec, in computeTextureCompareDiff()
2364 const tcu::LodPrecision& lodPrec, in computeTextureCompareDiff()
2365 const tcu::Vec3& nonShadowThreshold) in computeTextureCompareDiff()
2370 const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[2+0], texCoord[4+0], texCoord[6+0]); in computeTextureCompareDiff()
2371 const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[2+1], texCoord[4+1], texCoord[6+1]); in computeTextureCompareDiff()
2373 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureCompareDiff()
2376 const tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()); in computeTextureCompareDiff()
2379 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2380 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2381 const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2383 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias :… in computeTextureCompareDiff()
2387 const tcu::Vec2 lodOffsets[] = in computeTextureCompareDiff()
2389 tcu::Vec2(-1, 0), in computeTextureCompareDiff()
2390 tcu::Vec2(+1, 0), in computeTextureCompareDiff()
2391 tcu::Vec2( 0, -1), in computeTextureCompareDiff()
2392 tcu::Vec2( 0, +1), in computeTextureCompareDiff()
2395 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureCompareDiff()
2401 const tcu::Vec4 resPix = result.getPixel(px, py); in computeTextureCompareDiff()
2402 const tcu::Vec4 refPix = reference.getPixel(px, py); in computeTextureCompareDiff()
2405 …if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(refPix.swizzle(1,2,3) - resPix.swizzle(1,2,3)), nonS… in computeTextureCompareDiff()
2407 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureCompareDiff()
2427 const tcu::Vec2 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureCompareDiff()
2429 const tcu::Vec2 coordDx = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureCompareDiff()
2431 const tcu::Vec2 coordDy = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureCompareDiff()
2434 …tcu::Vec2 lodBounds = tcu::computeLodBoundsFromDerivates(coordDx.x(), coordDx.y(), coordDy.x(), c… in computeTextureCompareDiff()
2444 const tcu::Vec2 coordDxo = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureCompareDiff()
2446 const tcu::Vec2 coordDyo = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureCompareDiff()
2448 …const tcu::Vec2 lodO = tcu::computeLodBoundsFromDerivates(coordDxo.x(), coordDxo.y(), coordDyo.x(… in computeTextureCompareDiff()
2454 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureCompareDiff()
2455 …const bool isOk = tcu::isTexCompareResultValid(src, sampleParams.sampler, comparePrec, coord, cl… in computeTextureCompareDiff()
2459 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureCompareDiff()
2469 int computeTextureCompareDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureCompareDiff()
2470 const tcu::ConstPixelBufferAccess& reference, in computeTextureCompareDiff()
2471 const tcu::PixelBufferAccess& errorMask, in computeTextureCompareDiff()
2472 const tcu::TextureCubeView& src, in computeTextureCompareDiff()
2475 const tcu::TexComparePrecision& comparePrec, in computeTextureCompareDiff()
2476 const tcu::LodPrecision& lodPrec, in computeTextureCompareDiff()
2477 const tcu::Vec3& nonShadowThreshold) in computeTextureCompareDiff()
2482 const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]); in computeTextureCompareDiff()
2483 const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]); in computeTextureCompareDiff()
2484 const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]); in computeTextureCompareDiff()
2486 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureCompareDiff()
2492 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2493 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2494 const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2495 const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2497 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias :… in computeTextureCompareDiff()
2501 const tcu::Vec2 lodOffsets[] = in computeTextureCompareDiff()
2503 tcu::Vec2(-1, 0), in computeTextureCompareDiff()
2504 tcu::Vec2(+1, 0), in computeTextureCompareDiff()
2505 tcu::Vec2( 0, -1), in computeTextureCompareDiff()
2506 tcu::Vec2( 0, +1), in computeTextureCompareDiff()
2509 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureCompareDiff()
2515 const tcu::Vec4 resPix = result.getPixel(px, py); in computeTextureCompareDiff()
2516 const tcu::Vec4 refPix = reference.getPixel(px, py); in computeTextureCompareDiff()
2519 …if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(refPix.swizzle(1,2,3) - resPix.swizzle(1,2,3)), nonS… in computeTextureCompareDiff()
2521 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureCompareDiff()
2541 const tcu::Vec3 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureCompareDiff()
2544 const tcu::Vec3 coordDx (triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureCompareDiff()
2547 const tcu::Vec3 coordDy (triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureCompareDiff()
2551 …tcu::Vec2 lodBounds = tcu::computeCubeLodBoundsFromDerivates(coord, coordDx, coordDy, srcSize, lo… in computeTextureCompareDiff()
2561 const tcu::Vec3 coordO (projectedTriInterpolate(triS[triNdx], triW[triNdx], nxo, nyo), in computeTextureCompareDiff()
2564 const tcu::Vec3 coordDxo (triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureCompareDiff()
2567 const tcu::Vec3 coordDyo (triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureCompareDiff()
2570 …const tcu::Vec2 lodO = tcu::computeCubeLodBoundsFromDerivates(coordO, coordDxo, coordDyo, srcSize… in computeTextureCompareDiff()
2576 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureCompareDiff()
2577 …const bool isOk = tcu::isTexCompareResultValid(src, sampleParams.sampler, comparePrec, coord, cl… in computeTextureCompareDiff()
2581 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureCompareDiff()
2591 int computeTextureCompareDiff (const tcu::ConstPixelBufferAccess& result, in computeTextureCompareDiff()
2592 const tcu::ConstPixelBufferAccess& reference, in computeTextureCompareDiff()
2593 const tcu::PixelBufferAccess& errorMask, in computeTextureCompareDiff()
2594 const tcu::Texture2DArrayView& src, in computeTextureCompareDiff()
2597 const tcu::TexComparePrecision& comparePrec, in computeTextureCompareDiff()
2598 const tcu::LodPrecision& lodPrec, in computeTextureCompareDiff()
2599 const tcu::Vec3& nonShadowThreshold) in computeTextureCompareDiff()
2604 const tcu::Vec4 sq = tcu::Vec4(texCoord[0+0], texCoord[3+0], texCoord[6+0], texCoord[9+0]); in computeTextureCompareDiff()
2605 const tcu::Vec4 tq = tcu::Vec4(texCoord[0+1], texCoord[3+1], texCoord[6+1], texCoord[9+1]); in computeTextureCompareDiff()
2606 const tcu::Vec4 rq = tcu::Vec4(texCoord[0+2], texCoord[3+2], texCoord[6+2], texCoord[9+2]); in computeTextureCompareDiff()
2608 const tcu::IVec2 dstSize = tcu::IVec2(result.getWidth(), result.getHeight()); in computeTextureCompareDiff()
2611 const tcu::IVec2 srcSize = tcu::IVec2(src.getWidth(), src.getHeight()); in computeTextureCompareDiff()
2614 const tcu::Vec3 triS[2] = { sq.swizzle(0, 1, 2), sq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2615 const tcu::Vec3 triT[2] = { tq.swizzle(0, 1, 2), tq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2616 const tcu::Vec3 triR[2] = { rq.swizzle(0, 1, 2), rq.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2617 const tcu::Vec3 triW[2] = { sampleParams.w.swizzle(0, 1, 2), sampleParams.w.swizzle(3, 2, 1) }; in computeTextureCompareDiff()
2619 …const tcu::Vec2 lodBias ((sampleParams.flags & ReferenceParams::USE_BIAS) ? sampleParams.bias :… in computeTextureCompareDiff()
2623 const tcu::Vec2 lodOffsets[] = in computeTextureCompareDiff()
2625 tcu::Vec2(-1, 0), in computeTextureCompareDiff()
2626 tcu::Vec2(+1, 0), in computeTextureCompareDiff()
2627 tcu::Vec2( 0, -1), in computeTextureCompareDiff()
2628 tcu::Vec2( 0, +1), in computeTextureCompareDiff()
2631 tcu::clear(errorMask, tcu::RGBA::green().toVec()); in computeTextureCompareDiff()
2637 const tcu::Vec4 resPix = result.getPixel(px, py); in computeTextureCompareDiff()
2638 const tcu::Vec4 refPix = reference.getPixel(px, py); in computeTextureCompareDiff()
2641 …if (!tcu::boolAll(tcu::lessThanEqual(tcu::abs(refPix.swizzle(1,2,3) - resPix.swizzle(1,2,3)), nonS… in computeTextureCompareDiff()
2643 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureCompareDiff()
2663 const tcu::Vec3 coord (projectedTriInterpolate(triS[triNdx], triW[triNdx], triNx, triNy), in computeTextureCompareDiff()
2666 const tcu::Vec2 coordDx = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wx, dstW, triNy), in computeTextureCompareDiff()
2668 const tcu::Vec2 coordDy = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wy, dstH, triNx), in computeTextureCompareDiff()
2671 …tcu::Vec2 lodBounds = tcu::computeLodBoundsFromDerivates(coordDx.x(), coordDx.y(), coordDy.x(), c… in computeTextureCompareDiff()
2681 const tcu::Vec2 coordDxo = tcu::Vec2(triDerivateX(triS[triNdx], triW[triNdx], wxo, dstW, nyo), in computeTextureCompareDiff()
2683 const tcu::Vec2 coordDyo = tcu::Vec2(triDerivateY(triS[triNdx], triW[triNdx], wyo, dstH, nxo), in computeTextureCompareDiff()
2685 …const tcu::Vec2 lodO = tcu::computeLodBoundsFromDerivates(coordDxo.x(), coordDxo.y(), coordDyo.x(… in computeTextureCompareDiff()
2691 …const tcu::Vec2 clampedLod = tcu::clampLodBounds(lodBounds + lodBias, tcu::Vec2(sampleParams.minLo… in computeTextureCompareDiff()
2692 …const bool isOk = tcu::isTexCompareResultValid(src, sampleParams.sampler, comparePrec, coord, cl… in computeTextureCompareDiff()
2696 errorMask.setPixel(tcu::RGBA::red().toVec(), px, py); in computeTextureCompareDiff()
2708 …nt compareGenMipmapBilinear (const tcu::ConstPixelBufferAccess& dst, const tcu::ConstPixelBufferAc… in compareGenMipmapBilinear()
2719 …const tcu::Sampler sampler (tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampl… in compareGenMipmapBilinear()
2720 tcu::Sampler::LINEAR, tcu::Sampler::LINEAR, 0.0f, false /* non-normalized coords */); in compareGenMipmapBilinear()
2721 tcu::LookupPrecision lookupPrec; in compareGenMipmapBilinear()
2725 lookupPrec.coordBits = tcu::IVec3(22); in compareGenMipmapBilinear()
2731 const tcu::Vec4 result = dst.getPixel(x, y); in compareGenMipmapBilinear()
2734 …const bool isOk = tcu::isLinearSampleResultValid(src, sampler, lookupPrec, tcu::Vec2(cx, cy), 0, … in compareGenMipmapBilinear()
2736 errorMask.setPixel(isOk ? tcu::RGBA::green().toVec() : tcu::RGBA::red().toVec(), x, y); in compareGenMipmapBilinear()
2744 …tic int compareGenMipmapBox (const tcu::ConstPixelBufferAccess& dst, const tcu::ConstPixelBufferAc… in compareGenMipmapBox()
2755 …const tcu::Sampler sampler (tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampl… in compareGenMipmapBox()
2756 tcu::Sampler::LINEAR, tcu::Sampler::LINEAR, 0.0f, false /* non-normalized coords */); in compareGenMipmapBox()
2757 tcu::LookupPrecision lookupPrec; in compareGenMipmapBox()
2761 lookupPrec.coordBits = tcu::IVec3(22); in compareGenMipmapBox()
2767 const tcu::Vec4 result = dst.getPixel(x, y); in compareGenMipmapBox()
2770 …const bool isOk = tcu::isLinearSampleResultValid(src, sampler, lookupPrec, tcu::Vec2(cx, cy), 0, … in compareGenMipmapBox()
2772 errorMask.setPixel(isOk ? tcu::RGBA::green().toVec() : tcu::RGBA::red().toVec(), x, y); in compareGenMipmapBox()
2780 …compareGenMipmapVeryLenient (const tcu::ConstPixelBufferAccess& dst, const tcu::ConstPixelBufferAc… in compareGenMipmapVeryLenient()
2794 const tcu::Vec4 result = dst.getPixel(x, y); in compareGenMipmapVeryLenient()
2799 tcu::Vec4 minVal, maxVal; in compareGenMipmapVeryLenient()
2810 const tcu::Vec4 sample = src.getPixel(sx, sy); in compareGenMipmapVeryLenient()
2827 errorMask.setPixel(isOk ? tcu::RGBA::green().toVec() : tcu::RGBA::red().toVec(), x, y); in compareGenMipmapVeryLenient()
2835 qpTestResult compareGenMipmapResult (tcu::TestLog& log, const tcu::Texture2D& resultTexture, const … in compareGenMipmapResult()
2841 …const tcu::Vec4 threshold = select(precision.colorThreshold, tcu::Vec4(1.0f), precision.colorMask… in compareGenMipmapResult()
2842 …l level0Ok = tcu::floatThresholdCompare(log, "Level0", "Level 0", level0Reference.getLevel(0), r… in compareGenMipmapResult()
2846 log << tcu::TestLog::Message << "ERROR: Level 0 comparison failed!" << tcu::TestLog::EndMessage; in compareGenMipmapResult()
2853 const tcu::ConstPixelBufferAccess src = resultTexture.getLevel(levelNdx-1); in compareGenMipmapResult()
2854 const tcu::ConstPixelBufferAccess dst = resultTexture.getLevel(levelNdx); in compareGenMipmapResult()
2855 tcu::Surface errorMask (dst.getWidth(), dst.getHeight()); in compareGenMipmapResult()
2866 …<< tcu::TestLog::Message << "WARNING: Level " << levelNdx << " comparison to bilinear method faile… in compareGenMipmapResult()
2875 …g << tcu::TestLog::Message << "WARNING: Level " << levelNdx << " comparison to box method failed, … in compareGenMipmapResult()
2888 …g << tcu::TestLog::Message << "ERROR: Level " << levelNdx << " appears to contain " << numFailed <… in compareGenMipmapResult()
2894 …log << tcu::TestLog::ImageSet(string("Level") + de::toString(levelNdx), string("Level ") + de::toS… in compareGenMipmapResult()
2895 << tcu::TestLog::Image("Result", "Result", dst); in compareGenMipmapResult()
2898 log << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in compareGenMipmapResult()
2900 log << tcu::TestLog::EndImageSet; in compareGenMipmapResult()
2906 qpTestResult compareGenMipmapResult (tcu::TestLog& log, const tcu::TextureCube& resultTexture, cons… in compareGenMipmapResult()
2911 DE_STATIC_ASSERT(DE_LENGTH_OF_ARRAY(s_faceNames) == tcu::CUBEFACE_LAST); in compareGenMipmapResult()
2914 for (int faceNdx = 0; faceNdx < tcu::CUBEFACE_LAST; faceNdx++) in compareGenMipmapResult()
2916 const tcu::CubeFace face = tcu::CubeFace(faceNdx); in compareGenMipmapResult()
2917 …const tcu::Vec4 threshold = select(precision.colorThreshold, tcu::Vec4(1.0f), precision.colorMask… in compareGenMipmapResult()
2918 const bool level0Ok = tcu::floatThresholdCompare(log, in compareGenMipmapResult()
2923 threshold, tcu::COMPARE_LOG_RESULT); in compareGenMipmapResult()
2927 …log << tcu::TestLog::Message << "ERROR: Level 0, face " << s_faceNames[face] << " comparison faile… in compareGenMipmapResult()
2934 for (int faceNdx = 0; faceNdx < tcu::CUBEFACE_LAST; faceNdx++) in compareGenMipmapResult()
2936 const tcu::CubeFace face = tcu::CubeFace(faceNdx); in compareGenMipmapResult()
2938 const tcu::ConstPixelBufferAccess src = resultTexture.getLevelFace(levelNdx-1, face); in compareGenMipmapResult()
2939 const tcu::ConstPixelBufferAccess dst = resultTexture.getLevelFace(levelNdx, face); in compareGenMipmapResult()
2940 tcu::Surface errorMask (dst.getWidth(), dst.getHeight()); in compareGenMipmapResult()
2951 …tcu::TestLog::Message << "WARNING: Level " << levelNdx << ", face " << faceName << " comparison to… in compareGenMipmapResult()
2960 …tcu::TestLog::Message << "WARNING: Level " << levelNdx << ", face " << faceName <<" comparison to … in compareGenMipmapResult()
2973 …tcu::TestLog::Message << "ERROR: Level " << levelNdx << ", face " << faceName << " appears to cont… in compareGenMipmapResult()
2979 …log << tcu::TestLog::ImageSet(string("Level") + de::toString(levelNdx) + "Face" + de::toString(fac… in compareGenMipmapResult()
2980 << tcu::TestLog::Image("Result", "Result", dst); in compareGenMipmapResult()
2983 log << tcu::TestLog::Image("ErrorMask", "Error mask", errorMask); in compareGenMipmapResult()
2985 log << tcu::TestLog::EndImageSet; in compareGenMipmapResult()