Changeset 249453 in webkit


Ignore:
Timestamp:
Sep 3, 2019 8:30:21 PM (5 years ago)
Author:
mmaxfield@apple.com
Message:

[WHLSL] Implement SampleLevel(), SampleBias(), and SampleGrad()
https://bugs.webkit.org/show_bug.cgi?id=201385

Reviewed by Dean Jackson.

Source/WebCore:

These are used in the Babylon.js demo.

Tests: webgpu/whlsl/textures-sample-bias.html

webgpu/whlsl/textures-sample-grad.html
webgpu/whlsl/textures-sample-level.html

  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::sampleType):
(WebCore::WHLSL::Metal::inlineNativeFunction):

  • Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:

(WebCore::WHLSL::Intrinsics::addFullTexture):
(WebCore::WHLSL::Intrinsics::addDepthTexture):

  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

LayoutTests:

  • webgpu/whlsl/textures-sample-bias-expected.html: Added.
  • webgpu/whlsl/textures-sample-bias.html: Added.
  • webgpu/whlsl/textures-sample-grad-expected.html: Added.
  • webgpu/whlsl/textures-sample-grad.html: Added.
  • webgpu/whlsl/textures-sample-level-expected.html: Added.
  • webgpu/whlsl/textures-sample-level.html: Added.
Location:
trunk
Files:
6 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r249450 r249453  
     12019-09-03  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [WHLSL] Implement SampleLevel(), SampleBias(), and SampleGrad()
     4        https://bugs.webkit.org/show_bug.cgi?id=201385
     5
     6        Reviewed by Dean Jackson.
     7
     8        * webgpu/whlsl/textures-sample-bias-expected.html: Added.
     9        * webgpu/whlsl/textures-sample-bias.html: Added.
     10        * webgpu/whlsl/textures-sample-grad-expected.html: Added.
     11        * webgpu/whlsl/textures-sample-grad.html: Added.
     12        * webgpu/whlsl/textures-sample-level-expected.html: Added.
     13        * webgpu/whlsl/textures-sample-level.html: Added.
     14
    1152019-09-03  Devin Rousso  <drousso@apple.com>
    216
  • trunk/Source/WebCore/ChangeLog

    r249452 r249453  
     12019-09-03  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [WHLSL] Implement SampleLevel(), SampleBias(), and SampleGrad()
     4        https://bugs.webkit.org/show_bug.cgi?id=201385
     5
     6        Reviewed by Dean Jackson.
     7
     8        These are used in the Babylon.js demo.
     9
     10        Tests: webgpu/whlsl/textures-sample-bias.html
     11               webgpu/whlsl/textures-sample-grad.html
     12               webgpu/whlsl/textures-sample-level.html
     13
     14        * Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:
     15        * Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
     16        (WebCore::WHLSL::Metal::sampleType):
     17        (WebCore::WHLSL::Metal::inlineNativeFunction):
     18        * Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:
     19        (WebCore::WHLSL::Intrinsics::addFullTexture):
     20        (WebCore::WHLSL::Intrinsics::addDepthTexture):
     21        * Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
     22
    1232019-09-03  Chris Dumez  <cdumez@apple.com>
    224
  • trunk/Source/WebCore/Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h

    r249351 r249453  
    6868    bool isDepthTexture() const { return m_isDepthTexture; }
    6969    bool isWritableTexture() const { return m_isWritableTexture; }
     70    bool isCubeTexture() const { return m_isCubeTexture; }
    7071    uint textureDimension() const { return m_textureDimension; }
    7172    bool isSigned() const { return m_isSigned; }
     
    123124    void setIsDepthTexture() { m_isDepthTexture = true; }
    124125    void setIsWritableTexture() { m_isWritableTexture = true; }
     126    void setIsCubeTexture() { m_isCubeTexture = true; }
    125127    void setTextureDimension(uint textureDimension) { m_textureDimension = textureDimension; }
    126128    void setIsSigned() { m_isSigned = true; }
     
    154156    bool m_isDepthTexture { false };
    155157    bool m_isWritableTexture { false };
     158    bool m_isCubeTexture { false };
    156159    bool m_isSigned { false };
    157160};
  • trunk/Source/WebCore/Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp

    r249351 r249453  
    109109        return "4";
    110110    }
     111}
     112
     113enum class SampleType {
     114    Sample,
     115    SampleLevel,
     116    SampleBias,
     117    SampleGrad
     118};
     119
     120static Optional<SampleType> sampleType(const String& functionName)
     121{
     122    if (functionName == "Sample")
     123        return SampleType::Sample;
     124    if (functionName == "SampleLevel")
     125        return SampleType::SampleLevel;
     126    if (functionName == "SampleBias")
     127        return SampleType::SampleBias;
     128    if (functionName == "SampleGrad")
     129        return SampleType::SampleGrad;
     130    return WTF::nullopt;
    111131}
    112132
     
    344364    }
    345365
    346     if (nativeFunctionDeclaration.name() == "Sample") {
    347         ASSERT(nativeFunctionDeclaration.parameters().size() == 3 || nativeFunctionDeclaration.parameters().size() == 4);
     366    if (auto sampleType = WHLSL::Metal::sampleType(nativeFunctionDeclaration.name())) {
     367        size_t baseArgumentCount = 0;
     368        switch (*sampleType) {
     369        case SampleType::Sample:
     370            baseArgumentCount = 3;
     371            break;
     372        case SampleType::SampleLevel:
     373        case SampleType::SampleBias:
     374            baseArgumentCount = 4;
     375            break;
     376        case SampleType::SampleGrad:
     377            baseArgumentCount = 5;
     378            break;
     379        }
     380        ASSERT(nativeFunctionDeclaration.parameters().size() == baseArgumentCount || nativeFunctionDeclaration.parameters().size() == baseArgumentCount + 1);
    348381       
    349382        auto& textureType = downcast<AST::NativeTypeDeclaration>(downcast<AST::NamedType>(nativeFunctionDeclaration.parameters()[0]->type()->unifyNode()));
     
    353386        auto returnVectorLength = vectorLength(returnType);
    354387
    355         stringBuilder.append(
    356             args[0], ".sample(", args[1], ", ");
     388        int argumentIndex = 0;
     389        stringBuilder.append(args[argumentIndex], ".sample(", args[argumentIndex + 1], ", ");
     390        argumentIndex += 2;
    357391
    358392        if (textureType.isTextureArray()) {
    359393            ASSERT(locationVectorLength > 1);
    360             stringBuilder.append(args[2], '.', "xyzw"_str.substring(0, locationVectorLength - 1), ", ", args[2], '.', "xyzw"_str.substring(locationVectorLength - 1, 1));
     394            stringBuilder.append(args[argumentIndex], '.', "xyzw"_str.substring(0, locationVectorLength - 1), ", ", args[argumentIndex], '.', "xyzw"_str.substring(locationVectorLength - 1, 1));
     395            ++argumentIndex;
    361396        } else
    362             stringBuilder.append(args[2]);
    363         if (nativeFunctionDeclaration.parameters().size() == 4)
    364             stringBuilder.append(", ", args[3]);
     397            stringBuilder.append(args[argumentIndex++]);
     398
     399        switch (*sampleType) {
     400        case SampleType::Sample:
     401            break;
     402        case SampleType::SampleLevel:
     403            stringBuilder.append(", level(", args[argumentIndex++], ")");
     404            break;
     405        case SampleType::SampleBias:
     406            stringBuilder.append(", bias(", args[argumentIndex++], ")");
     407            break;
     408        case SampleType::SampleGrad:
     409            if (textureType.isCubeTexture())
     410                stringBuilder.append(", gradientcube(", args[argumentIndex], ", ", args[argumentIndex + 1], ")");
     411            else
     412                stringBuilder.append(", gradient2d(", args[argumentIndex], ", ", args[argumentIndex + 1], ")");
     413            argumentIndex += 2;
     414            break;
     415        }
     416
     417        if (nativeFunctionDeclaration.parameters().size() == baseArgumentCount + 1)
     418            stringBuilder.append(", ", args[argumentIndex++]);
    365419        stringBuilder.append(")");
    366420        if (!textureType.isDepthTexture())
     
    510564    }
    511565
    512     if (nativeFunctionDeclaration.name() == "SampleBias") {
    513         // FIXME: https://bugs.webkit.org/show_bug.cgi?id=195813 Implement this
    514         notImplemented();
    515     }
    516 
    517     if (nativeFunctionDeclaration.name() == "SampleGrad") {
    518         // FIXME: https://bugs.webkit.org/show_bug.cgi?id=195813 Implement this
    519         notImplemented();
    520     }
    521 
    522     if (nativeFunctionDeclaration.name() == "SampleLevel") {
    523         // FIXME: https://bugs.webkit.org/show_bug.cgi?id=195813 Implement this
    524         notImplemented();
    525     }
    526 
    527566    if (nativeFunctionDeclaration.name() == "Gather") {
    528567        // FIXME: https://bugs.webkit.org/show_bug.cgi?id=195813 Implement this
  • trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp

    r248795 r249453  
    232232    if (nativeTypeDeclaration.name() == "Texture3D" || nativeTypeDeclaration.name() == "RWTexture3D")
    233233        nativeTypeDeclaration.setTextureDimension(3);
     234    if (nativeTypeDeclaration.name() == "TextureCube")
     235        nativeTypeDeclaration.setIsCubeTexture();
    234236    m_fullTextures[textureTypeIndex][innerTypeIndex][vectorLength - 1] = &nativeTypeDeclaration;
    235237    return true;
     
    253255    if (texture == m_textureDepth2DArray)
    254256        nativeTypeDeclaration.setIsTextureArray();
     257    if (texture == m_textureDepthCube)
     258        nativeTypeDeclaration.setIsCubeTexture();
    255259    nativeTypeDeclaration.setTextureDimension(2);
    256260    nativeTypeDeclaration.setIsDepthTexture();
  • trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt

    r249351 r249453  
    1369413694native float Sample(TextureDepthCube<float>, sampler, float3 location);
    1369513695
     13696/* Functions named SampleLevel */
     13697native uint SampleLevel(Texture2D<uint>, sampler, float2 location, float LOD);
     13698native uint SampleLevel(Texture2D<uint>, sampler, float2 location, float LOD, int2 offset);
     13699native uint SampleLevel(Texture2DArray<uint>, sampler, float3 location, float LOD);
     13700native uint SampleLevel(Texture2DArray<uint>, sampler, float3 location, float LOD, int2 offset);
     13701native uint SampleLevel(TextureCube<uint>, sampler, float3 location, float LOD);
     13702native uint2 SampleLevel(Texture2D<uint2>, sampler, float2 location, float LOD);
     13703native uint2 SampleLevel(Texture2D<uint2>, sampler, float2 location, float LOD, int2 offset);
     13704native uint2 SampleLevel(Texture2DArray<uint2>, sampler, float3 location, float LOD);
     13705native uint2 SampleLevel(Texture2DArray<uint2>, sampler, float3 location, float LOD, int2 offset);
     13706native uint2 SampleLevel(TextureCube<uint2>, sampler, float3 location, float LOD);
     13707native uint3 SampleLevel(Texture2D<uint3>, sampler, float2 location, float LOD);
     13708native uint3 SampleLevel(Texture2D<uint3>, sampler, float2 location, float LOD, int2 offset);
     13709native uint3 SampleLevel(Texture2DArray<uint3>, sampler, float3 location, float LOD);
     13710native uint3 SampleLevel(Texture2DArray<uint3>, sampler, float3 location, float LOD, int2 offset);
     13711native uint3 SampleLevel(TextureCube<uint3>, sampler, float3 location, float LOD);
     13712native uint4 SampleLevel(Texture2D<uint4>, sampler, float2 location, float LOD);
     13713native uint4 SampleLevel(Texture2D<uint4>, sampler, float2 location, float LOD, int2 offset);
     13714native uint4 SampleLevel(Texture2DArray<uint4>, sampler, float3 location, float LOD);
     13715native uint4 SampleLevel(Texture2DArray<uint4>, sampler, float3 location, float LOD, int2 offset);
     13716native uint4 SampleLevel(TextureCube<uint4>, sampler, float3 location, float LOD);
     13717native int SampleLevel(Texture2D<int>, sampler, float2 location, float LOD);
     13718native int SampleLevel(Texture2D<int>, sampler, float2 location, float LOD, int2 offset);
     13719native int SampleLevel(Texture2DArray<int>, sampler, float3 location, float LOD);
     13720native int SampleLevel(Texture2DArray<int>, sampler, float3 location, float LOD, int2 offset);
     13721native int SampleLevel(TextureCube<int>, sampler, float3 location, float LOD);
     13722native int2 SampleLevel(Texture2D<int2>, sampler, float2 location, float LOD);
     13723native int2 SampleLevel(Texture2D<int2>, sampler, float2 location, float LOD, int2 offset);
     13724native int2 SampleLevel(Texture2DArray<int2>, sampler, float3 location, float LOD);
     13725native int2 SampleLevel(Texture2DArray<int2>, sampler, float3 location, float LOD, int2 offset);
     13726native int2 SampleLevel(TextureCube<int2>, sampler, float3 location, float LOD);
     13727native int3 SampleLevel(Texture2D<int3>, sampler, float2 location, float LOD);
     13728native int3 SampleLevel(Texture2D<int3>, sampler, float2 location, float LOD, int2 offset);
     13729native int3 SampleLevel(Texture2DArray<int3>, sampler, float3 location, float LOD);
     13730native int3 SampleLevel(Texture2DArray<int3>, sampler, float3 location, float LOD, int2 offset);
     13731native int3 SampleLevel(TextureCube<int3>, sampler, float3 location, float LOD);
     13732native int4 SampleLevel(Texture2D<int4>, sampler, float2 location, float LOD);
     13733native int4 SampleLevel(Texture2D<int4>, sampler, float2 location, float LOD, int2 offset);
     13734native int4 SampleLevel(Texture2DArray<int4>, sampler, float3 location, float LOD);
     13735native int4 SampleLevel(Texture2DArray<int4>, sampler, float3 location, float LOD, int2 offset);
     13736native int4 SampleLevel(TextureCube<int4>, sampler, float3 location, float LOD);
     13737native float SampleLevel(Texture2D<float>, sampler, float2 location, float LOD);
     13738native float SampleLevel(Texture2D<float>, sampler, float2 location, float LOD, int2 offset);
     13739native float SampleLevel(Texture2DArray<float>, sampler, float3 location, float LOD);
     13740native float SampleLevel(Texture2DArray<float>, sampler, float3 location, float LOD, int2 offset);
     13741native float SampleLevel(TextureCube<float>, sampler, float3 location, float LOD);
     13742native float2 SampleLevel(Texture2D<float2>, sampler, float2 location, float LOD);
     13743native float2 SampleLevel(Texture2D<float2>, sampler, float2 location, float LOD, int2 offset);
     13744native float2 SampleLevel(Texture2DArray<float2>, sampler, float3 location, float LOD);
     13745native float2 SampleLevel(Texture2DArray<float2>, sampler, float3 location, float LOD, int2 offset);
     13746native float2 SampleLevel(TextureCube<float2>, sampler, float3 location, float LOD);
     13747native float3 SampleLevel(Texture2D<float3>, sampler, float2 location, float LOD);
     13748native float3 SampleLevel(Texture2D<float3>, sampler, float2 location, float LOD, int2 offset);
     13749native float3 SampleLevel(Texture2DArray<float3>, sampler, float3 location, float LOD);
     13750native float3 SampleLevel(Texture2DArray<float3>, sampler, float3 location, float LOD, int2 offset);
     13751native float3 SampleLevel(TextureCube<float3>, sampler, float3 location, float LOD);
     13752native float4 SampleLevel(Texture2D<float4>, sampler, float2 location, float LOD);
     13753native float4 SampleLevel(Texture2D<float4>, sampler, float2 location, float LOD, int2 offset);
     13754native float4 SampleLevel(Texture2DArray<float4>, sampler, float3 location, float LOD);
     13755native float4 SampleLevel(Texture2DArray<float4>, sampler, float3 location, float LOD, int2 offset);
     13756native float4 SampleLevel(TextureCube<float4>, sampler, float3 location, float LOD);
     13757native float SampleLevel(TextureDepth2D<float>, sampler, float2 location, float LOD);
     13758native float SampleLevel(TextureDepth2D<float>, sampler, float2 location, float LOD, int2 offset);
     13759native float SampleLevel(TextureDepth2DArray<float>, sampler, float3 location, float LOD);
     13760native float SampleLevel(TextureDepth2DArray<float>, sampler, float3 location, float LOD, int2 offset);
     13761native float SampleLevel(TextureDepthCube<float>, sampler, float3 location, float LOD);
     13762
     13763/* Functions named SampleBias */
     13764native uint SampleBias(Texture2D<uint>, sampler, float2 location, float Bias);
     13765native uint SampleBias(Texture2D<uint>, sampler, float2 location, float Bias, int2 offset);
     13766native uint SampleBias(Texture2DArray<uint>, sampler, float3 location, float Bias);
     13767native uint SampleBias(Texture2DArray<uint>, sampler, float3 location, float Bias, int2 offset);
     13768native uint SampleBias(TextureCube<uint>, sampler, float3 location, float Bias);
     13769native uint2 SampleBias(Texture2D<uint2>, sampler, float2 location, float Bias);
     13770native uint2 SampleBias(Texture2D<uint2>, sampler, float2 location, float Bias, int2 offset);
     13771native uint2 SampleBias(Texture2DArray<uint2>, sampler, float3 location, float Bias);
     13772native uint2 SampleBias(Texture2DArray<uint2>, sampler, float3 location, float Bias, int2 offset);
     13773native uint2 SampleBias(TextureCube<uint2>, sampler, float3 location, float Bias);
     13774native uint3 SampleBias(Texture2D<uint3>, sampler, float2 location, float Bias);
     13775native uint3 SampleBias(Texture2D<uint3>, sampler, float2 location, float Bias, int2 offset);
     13776native uint3 SampleBias(Texture2DArray<uint3>, sampler, float3 location, float Bias);
     13777native uint3 SampleBias(Texture2DArray<uint3>, sampler, float3 location, float Bias, int2 offset);
     13778native uint3 SampleBias(TextureCube<uint3>, sampler, float3 location, float Bias);
     13779native uint4 SampleBias(Texture2D<uint4>, sampler, float2 location, float Bias);
     13780native uint4 SampleBias(Texture2D<uint4>, sampler, float2 location, float Bias, int2 offset);
     13781native uint4 SampleBias(Texture2DArray<uint4>, sampler, float3 location, float Bias);
     13782native uint4 SampleBias(Texture2DArray<uint4>, sampler, float3 location, float Bias, int2 offset);
     13783native uint4 SampleBias(TextureCube<uint4>, sampler, float3 location, float Bias);
     13784native int SampleBias(Texture2D<int>, sampler, float2 location, float Bias);
     13785native int SampleBias(Texture2D<int>, sampler, float2 location, float Bias, int2 offset);
     13786native int SampleBias(Texture2DArray<int>, sampler, float3 location, float Bias);
     13787native int SampleBias(Texture2DArray<int>, sampler, float3 location, float Bias, int2 offset);
     13788native int SampleBias(TextureCube<int>, sampler, float3 location, float Bias);
     13789native int2 SampleBias(Texture2D<int2>, sampler, float2 location, float Bias);
     13790native int2 SampleBias(Texture2D<int2>, sampler, float2 location, float Bias, int2 offset);
     13791native int2 SampleBias(Texture2DArray<int2>, sampler, float3 location, float Bias);
     13792native int2 SampleBias(Texture2DArray<int2>, sampler, float3 location, float Bias, int2 offset);
     13793native int2 SampleBias(TextureCube<int2>, sampler, float3 location, float Bias);
     13794native int3 SampleBias(Texture2D<int3>, sampler, float2 location, float Bias);
     13795native int3 SampleBias(Texture2D<int3>, sampler, float2 location, float Bias, int2 offset);
     13796native int3 SampleBias(Texture2DArray<int3>, sampler, float3 location, float Bias);
     13797native int3 SampleBias(Texture2DArray<int3>, sampler, float3 location, float Bias, int2 offset);
     13798native int3 SampleBias(TextureCube<int3>, sampler, float3 location, float Bias);
     13799native int4 SampleBias(Texture2D<int4>, sampler, float2 location, float Bias);
     13800native int4 SampleBias(Texture2D<int4>, sampler, float2 location, float Bias, int2 offset);
     13801native int4 SampleBias(Texture2DArray<int4>, sampler, float3 location, float Bias);
     13802native int4 SampleBias(Texture2DArray<int4>, sampler, float3 location, float Bias, int2 offset);
     13803native int4 SampleBias(TextureCube<int4>, sampler, float3 location, float Bias);
     13804native float SampleBias(Texture2D<float>, sampler, float2 location, float Bias);
     13805native float SampleBias(Texture2D<float>, sampler, float2 location, float Bias, int2 offset);
     13806native float SampleBias(Texture2DArray<float>, sampler, float3 location, float Bias);
     13807native float SampleBias(Texture2DArray<float>, sampler, float3 location, float Bias, int2 offset);
     13808native float SampleBias(TextureCube<float>, sampler, float3 location, float Bias);
     13809native float2 SampleBias(Texture2D<float2>, sampler, float2 location, float Bias);
     13810native float2 SampleBias(Texture2D<float2>, sampler, float2 location, float Bias, int2 offset);
     13811native float2 SampleBias(Texture2DArray<float2>, sampler, float3 location, float Bias);
     13812native float2 SampleBias(Texture2DArray<float2>, sampler, float3 location, float Bias, int2 offset);
     13813native float2 SampleBias(TextureCube<float2>, sampler, float3 location, float Bias);
     13814native float3 SampleBias(Texture2D<float3>, sampler, float2 location, float Bias);
     13815native float3 SampleBias(Texture2D<float3>, sampler, float2 location, float Bias, int2 offset);
     13816native float3 SampleBias(Texture2DArray<float3>, sampler, float3 location, float Bias);
     13817native float3 SampleBias(Texture2DArray<float3>, sampler, float3 location, float Bias, int2 offset);
     13818native float3 SampleBias(TextureCube<float3>, sampler, float3 location, float Bias);
     13819native float4 SampleBias(Texture2D<float4>, sampler, float2 location, float Bias);
     13820native float4 SampleBias(Texture2D<float4>, sampler, float2 location, float Bias, int2 offset);
     13821native float4 SampleBias(Texture2DArray<float4>, sampler, float3 location, float Bias);
     13822native float4 SampleBias(Texture2DArray<float4>, sampler, float3 location, float Bias, int2 offset);
     13823native float4 SampleBias(TextureCube<float4>, sampler, float3 location, float Bias);
     13824native float SampleBias(TextureDepth2D<float>, sampler, float2 location, float Bias);
     13825native float SampleBias(TextureDepth2D<float>, sampler, float2 location, float Bias, int2 offset);
     13826native float SampleBias(TextureDepth2DArray<float>, sampler, float3 location, float Bias);
     13827native float SampleBias(TextureDepth2DArray<float>, sampler, float3 location, float Bias, int2 offset);
     13828native float SampleBias(TextureDepthCube<float>, sampler, float3 location, float Bias);
     13829
     13830/* Functions named SampleGrad */
     13831native uint SampleGrad(Texture2D<uint>, sampler, float2 location, float2 DDX, float2 DDY);
     13832native uint SampleGrad(Texture2D<uint>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13833native uint SampleGrad(Texture2DArray<uint>, sampler, float3 location, float2 DDX, float2 DDY);
     13834native uint SampleGrad(Texture2DArray<uint>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13835native uint SampleGrad(TextureCube<uint>, sampler, float3 location, float3 DDX, float3 DDY);
     13836native uint2 SampleGrad(Texture2D<uint2>, sampler, float2 location, float2 DDX, float2 DDY);
     13837native uint2 SampleGrad(Texture2D<uint2>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13838native uint2 SampleGrad(Texture2DArray<uint2>, sampler, float3 location, float2 DDX, float2 DDY);
     13839native uint2 SampleGrad(Texture2DArray<uint2>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13840native uint2 SampleGrad(TextureCube<uint2>, sampler, float3 location, float3 DDX, float3 DDY);
     13841native uint3 SampleGrad(Texture2D<uint3>, sampler, float2 location, float2 DDX, float2 DDY);
     13842native uint3 SampleGrad(Texture2D<uint3>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13843native uint3 SampleGrad(Texture2DArray<uint3>, sampler, float3 location, float2 DDX, float2 DDY);
     13844native uint3 SampleGrad(Texture2DArray<uint3>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13845native uint3 SampleGrad(TextureCube<uint3>, sampler, float3 location, float3 DDX, float3 DDY);
     13846native uint4 SampleGrad(Texture2D<uint4>, sampler, float2 location, float2 DDX, float2 DDY);
     13847native uint4 SampleGrad(Texture2D<uint4>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13848native uint4 SampleGrad(Texture2DArray<uint4>, sampler, float3 location, float2 DDX, float2 DDY);
     13849native uint4 SampleGrad(Texture2DArray<uint4>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13850native uint4 SampleGrad(TextureCube<uint4>, sampler, float3 location, float3 DDX, float3 DDY);
     13851native int SampleGrad(Texture2D<int>, sampler, float2 location, float2 DDX, float2 DDY);
     13852native int SampleGrad(Texture2D<int>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13853native int SampleGrad(Texture2DArray<int>, sampler, float3 location, float2 DDX, float2 DDY);
     13854native int SampleGrad(Texture2DArray<int>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13855native int SampleGrad(TextureCube<int>, sampler, float3 location, float3 DDX, float3 DDY);
     13856native int2 SampleGrad(Texture2D<int2>, sampler, float2 location, float2 DDX, float2 DDY);
     13857native int2 SampleGrad(Texture2D<int2>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13858native int2 SampleGrad(Texture2DArray<int2>, sampler, float3 location, float2 DDX, float2 DDY);
     13859native int2 SampleGrad(Texture2DArray<int2>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13860native int2 SampleGrad(TextureCube<int2>, sampler, float3 location, float3 DDX, float3 DDY);
     13861native int3 SampleGrad(Texture2D<int3>, sampler, float2 location, float2 DDX, float2 DDY);
     13862native int3 SampleGrad(Texture2D<int3>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13863native int3 SampleGrad(Texture2DArray<int3>, sampler, float3 location, float2 DDX, float2 DDY);
     13864native int3 SampleGrad(Texture2DArray<int3>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13865native int3 SampleGrad(TextureCube<int3>, sampler, float3 location, float3 DDX, float3 DDY);
     13866native int4 SampleGrad(Texture2D<int4>, sampler, float2 location, float2 DDX, float2 DDY);
     13867native int4 SampleGrad(Texture2D<int4>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13868native int4 SampleGrad(Texture2DArray<int4>, sampler, float3 location, float2 DDX, float2 DDY);
     13869native int4 SampleGrad(Texture2DArray<int4>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13870native int4 SampleGrad(TextureCube<int4>, sampler, float3 location, float3 DDX, float3 DDY);
     13871native float SampleGrad(Texture2D<float>, sampler, float2 location, float2 DDX, float2 DDY);
     13872native float SampleGrad(Texture2D<float>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13873native float SampleGrad(Texture2DArray<float>, sampler, float3 location, float2 DDX, float2 DDY);
     13874native float SampleGrad(Texture2DArray<float>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13875native float SampleGrad(TextureCube<float>, sampler, float3 location, float3 DDX, float3 DDY);
     13876native float2 SampleGrad(Texture2D<float2>, sampler, float2 location, float2 DDX, float2 DDY);
     13877native float2 SampleGrad(Texture2D<float2>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13878native float2 SampleGrad(Texture2DArray<float2>, sampler, float3 location, float2 DDX, float2 DDY);
     13879native float2 SampleGrad(Texture2DArray<float2>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13880native float2 SampleGrad(TextureCube<float2>, sampler, float3 location, float3 DDX, float3 DDY);
     13881native float3 SampleGrad(Texture2D<float3>, sampler, float2 location, float2 DDX, float2 DDY);
     13882native float3 SampleGrad(Texture2D<float3>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13883native float3 SampleGrad(Texture2DArray<float3>, sampler, float3 location, float2 DDX, float2 DDY);
     13884native float3 SampleGrad(Texture2DArray<float3>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13885native float3 SampleGrad(TextureCube<float3>, sampler, float3 location, float3 DDX, float3 DDY);
     13886native float4 SampleGrad(Texture2D<float4>, sampler, float2 location, float2 DDX, float2 DDY);
     13887native float4 SampleGrad(Texture2D<float4>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13888native float4 SampleGrad(Texture2DArray<float4>, sampler, float3 location, float2 DDX, float2 DDY);
     13889native float4 SampleGrad(Texture2DArray<float4>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13890native float4 SampleGrad(TextureCube<float4>, sampler, float3 location, float3 DDX, float3 DDY);
     13891native float SampleGrad(TextureDepth2D<float>, sampler, float2 location, float2 DDX, float2 DDY);
     13892native float SampleGrad(TextureDepth2D<float>, sampler, float2 location, float2 DDX, float2 DDY, int2 offset);
     13893native float SampleGrad(TextureDepth2DArray<float>, sampler, float3 location, float2 DDX, float2 DDY);
     13894native float SampleGrad(TextureDepth2DArray<float>, sampler, float3 location, float2 DDX, float2 DDY, int2 offset);
     13895native float SampleGrad(TextureDepthCube<float>, sampler, float3 location, float3 DDX, float3 DDY);
     13896
    1369613897/* Functions named sinh */
    1369713898native float sinh(float);
Note: See TracChangeset for help on using the changeset viewer.