Lines Matching +full:fetch +full:- +full:depth
3 // Use of this source code is governed by a BSD-style license that can be
41 << "Offset)), 0, int(" << size << ") - 1);\n"; in OutputIntTexCoordWrap()
48 out << " " << texCoordOutName << " = clamp(texCoordInt, 0, int(" << size << ") - 1);\n"; in OutputIntTexCoordWrap()
56 out << " float coordWrapped = 1.0 - abs(frac(abs(" << texCoordOutName in OutputIntTexCoordWrap()
57 << "Offset) * 0.5) * 2.0 - 1.0);\n"; in OutputIntTexCoordWrap()
75 // Convert from normalized floating-point to integer in OutputIntTexCoordWraps()
101 *texCoordZ = ImmutableString("int(max(0, min(layers - 1, floor(0.5 + t.z))))"); in OutputIntTexCoordWraps()
108 OutputIntTexCoordWrap(out, "wrapR", "depth", *texCoordZ, "offset.z", "tiz"); in OutputIntTexCoordWraps()
112 OutputIntTexCoordWrap(out, "wrapR", "depth", *texCoordZ, "0", "tiz"); in OutputIntTexCoordWraps()
129 textureFunction.method == TextureFunctionHLSL::TextureFunction::FETCH) in OutputHLSL4SampleFunctionPrefix()
184 // https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/dx-graphics-hlsl-to-gather in GetSamplerCoordinateTypeString()
187 textureFunction.method == TextureFunctionHLSL::TextureFunction::FETCH) in GetSamplerCoordinateTypeString()
316 TextureFunctionHLSL::TextureFunction::FETCH) // Integer coordinates in OutputTextureFunctionArgumentList()
330 else // Floating-point coordinates (except textureSize) in OutputTextureFunctionArgumentList()
398 case TextureFunctionHLSL::TextureFunction::FETCH: in OutputTextureFunctionArgumentList()
486 out << " const uint textureIndex = samplerIndex - textureIndexOffset" in GetTextureReference()
493 out << " const uint samplerArrayIndex = samplerIndex - samplerIndexOffset" in GetTextureReference()
520 out << " uint width; uint height; uint depth; uint samples;\n" in OutputTextureSizeFunctionBody()
521 << " " << textureReference << ".GetDimensions(width, height, depth, samples);\n"; in OutputTextureSizeFunctionBody()
537 // "depth" stores either the number of layers in an array texture or 3D depth in OutputTextureSizeFunctionBody()
538 out << " uint width; uint height; uint depth; uint numberOfLevels;\n" in OutputTextureSizeFunctionBody()
540 << ".GetDimensions(baseLevel, width, height, depth, numberOfLevels);\n" in OutputTextureSizeFunctionBody()
546 out << " depth = max(depth >> lod, 1);\n"; in OutputTextureSizeFunctionBody()
563 out << " return int3(width, height, depth);\n"; in OutputTextureSizeFunctionBody()
590 ImmutableStringBuilder texCoordXBuilder(texCoordX->length() + proj.length() + 2u); in ProjectTextureCoordinates()
593 ImmutableStringBuilder texCoordYBuilder(texCoordY->length() + proj.length() + 2u); in ProjectTextureCoordinates()
596 ImmutableStringBuilder texCoordZBuilder(texCoordZ->length() + proj.length() + 2u); in ProjectTextureCoordinates()
649 out << " float u = xMajor ? -t.z : (yMajor && t.y < 0.0f ? -t.x : t.x);\n"; in OutputIntegerTextureSampleFunctionComputations()
650 out << " float v = yMajor ? t.z : (negative ? t.y : -t.y);\n"; in OutputIntegerTextureSampleFunctionComputations()
668 // simplicity, assume that z-axis is the major axis. By symmetry, we can assume that in OutputIntegerTextureSampleFunctionComputations()
675 // Dp(r) = s |1 0 -r.x/r.z| in OutputIntegerTextureSampleFunctionComputations()
676 // |0 1 -r.y/r.z| |ddx(r) ddy(r)| / r.z in OutputIntegerTextureSampleFunctionComputations()
679 // where a = w * vec3(1, 0, -r.x/r.z) in OutputIntegerTextureSampleFunctionComputations()
680 // b = h * vec3(0, 1, -r.y/r.z) in OutputIntegerTextureSampleFunctionComputations()
690 // n4 = (n1 - n2) / |n1 - n2| = (n1 - n2)/sqrt(2). in OutputIntegerTextureSampleFunctionComputations()
705 // L(n4) = |Dp(r)n1 - Dp(r)n2|^2/2 = (dpxx + dpyy)/2 - dpxy in OutputIntegerTextureSampleFunctionComputations()
709 // So the extra cost is: one dot, one abs, one add, one multiply-add and one max. in OutputIntegerTextureSampleFunctionComputations()
718 // Swap coordinates such that we can assume that the positive z-axis is major, in in OutputIntegerTextureSampleFunctionComputations()
725 " float2 dpx = s * (ddxr.xy - ddxr.z*r.xy/r.z)/r.z;\n" in OutputIntegerTextureSampleFunctionComputations()
726 " float2 dpy = s * (ddyr.xy - ddyr.z*r.xy/r.z)/r.z;\n" in OutputIntegerTextureSampleFunctionComputations()
744 out << " float dudx = xMajor ? ddx[2] : (yMajor && t.y < 0.0f ? -ddx[0] " in OutputIntegerTextureSampleFunctionComputations()
746 " float dudy = xMajor ? ddy[2] : (yMajor && t.y < 0.0f ? -ddy[0] " in OutputIntegerTextureSampleFunctionComputations()
748 " float dvdx = yMajor ? ddx[2] : (negative ? ddx[1] : -ddx[1]);\n" in OutputIntegerTextureSampleFunctionComputations()
749 " float dvdy = yMajor ? ddy[2] : (negative ? ddy[1] : -ddy[1]);\n" in OutputIntegerTextureSampleFunctionComputations()
755 // = 0.5 * (m(x) * u'(x) - u(x) * m'(x)) / m(x)^2 in OutputIntegerTextureSampleFunctionComputations()
756 out << " float dfacexdx = 0.5f * (m * dudx - u * dmdx) / (m * m);\n" in OutputIntegerTextureSampleFunctionComputations()
757 " float dfaceydx = 0.5f * (m * dvdx - v * dmdx) / (m * m);\n" in OutputIntegerTextureSampleFunctionComputations()
758 " float dfacexdy = 0.5f * (m * dudy - u * dmdy) / (m * m);\n" in OutputIntegerTextureSampleFunctionComputations()
759 " float dfaceydy = 0.5f * (m * dvdy - v * dmdy) / (m * m);\n" in OutputIntegerTextureSampleFunctionComputations()
769 out << " mip = uint(min(max(round(lod), 0), levels - 1));\n" in OutputIntegerTextureSampleFunctionComputations()
774 // Convert from normalized floating-point to integer in OutputIntegerTextureSampleFunctionComputations()
778 ImmutableStringBuilder texCoordXBuilder(kXPrefix.length() + texCoordX->length() + in OutputIntegerTextureSampleFunctionComputations()
782 ImmutableStringBuilder texCoordYBuilder(kYPrefix.length() + texCoordX->length() + in OutputIntegerTextureSampleFunctionComputations()
788 else if (textureFunction.method != TextureFunctionHLSL::TextureFunction::FETCH) in OutputIntegerTextureSampleFunctionComputations()
828 out << " uint mip = uint(min(max(round(lod), 0), levels - 1));\n"; in OutputIntegerTextureSampleFunctionComputations()
873 out << " uint mip = uint(min(max(round(lod), 0), levels - 1));\n"; in OutputIntegerTextureSampleFunctionComputations()
881 out << " float width; float height; float depth; float levels;\n"; in OutputIntegerTextureSampleFunctionComputations()
894 << ".GetDimensions(baseLevel, width, height, depth, levels);\n"; in OutputIntegerTextureSampleFunctionComputations()
899 out << " float3 tSized = float3(t.x * width, t.y * height, t.z * depth);\n" in OutputIntegerTextureSampleFunctionComputations()
911 out << " float3 sizeVec = float3(width, height, depth);\n" in OutputIntegerTextureSampleFunctionComputations()
918 out << " uint mip = uint(min(max(round(lod), 0), levels - 1));\n"; in OutputIntegerTextureSampleFunctionComputations()
922 << ".GetDimensions(baseLevel + mip, width, height, depth, levels);\n"; in OutputIntegerTextureSampleFunctionComputations()
1010 textureFunction.method != TextureFunctionHLSL::TextureFunction::FETCH) in OutputTextureSampleFunctionReturnStatement()
1156 textureFunction.method == TextureFunctionHLSL::TextureFunction::FETCH) in OutputTextureSampleFunctionReturnStatement()
1214 textureFunction.method == TextureFunctionHLSL::TextureFunction::FETCH)) in OutputTextureSampleFunctionReturnStatement()
1231 ImmutableString suffix(TextureTypeSuffix(this->sampler)); in name()
1269 case FETCH: in name()
1270 name << "Fetch"; in name()
1433 textureFunction.method = TextureFunction::FETCH; in useTextureFunction()
1437 textureFunction.method = TextureFunction::FETCH; in useTextureFunction()
1527 // arrays. The bug was found using dEQP-GLES3.functional.shaders.discard*loop_texture* in textureFunctionHeader()