From e59aee131b6d51236613bc374cfa2d5f3b54efe1 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 17 Feb 2021 15:09:09 -0800 Subject: Add `SampleGrad` overload for lod clamp. (#1711) * Add `SampleGrad` overload for lod clamp. * Fix gfx to run the test on vulkan. * Whitespace change to trigger CI build * remove presentFrame call in render-test Co-authored-by: Yong He Co-authored-by: Tim Foley --- source/slang/core.meta.slang | 10 ++++++++++ source/slang/slang-reflection-api.cpp | 4 ++++ 2 files changed, 14 insertions(+) (limited to 'source') diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index 970ed1fa8..d63311985 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -1358,6 +1358,16 @@ for (int tt = 0; tt < kBaseTextureTypeCount; ++tt) sb << "float" << kBaseTextureTypes[tt].coordCount << " gradX, "; sb << "float" << kBaseTextureTypes[tt].coordCount << " gradY, "; sb << "constexpr int" << kBaseTextureTypes[tt].coordCount << " offset);\n"; + + sb << "__glsl_extension(GL_ARB_sparse_texture_clamp)"; + sb << "__target_intrinsic(glsl, \"$ctextureGradOffsetClampARB($p, $2, $3, $4, $5, $6)$z\")\n"; + sb << "T SampleGrad(SamplerState s, "; + sb << "float" << kBaseTextureTypes[tt].coordCount + isArray << " location, "; + sb << "float" << kBaseTextureTypes[tt].coordCount << " gradX, "; + sb << "float" << kBaseTextureTypes[tt].coordCount << " gradY, "; + sb << "constexpr int" << kBaseTextureTypes[tt].coordCount << " offset, "; + sb << "float lodClamp);\n"; + } // `SampleLevel` diff --git a/source/slang/slang-reflection-api.cpp b/source/slang/slang-reflection-api.cpp index 1cfb8fecc..cd141a622 100644 --- a/source/slang/slang-reflection-api.cpp +++ b/source/slang/slang-reflection-api.cpp @@ -1148,6 +1148,10 @@ namespace Slang { return SLANG_BINDING_TYPE_CONSTANT_BUFFER; } + else if( as(type) ) + { + return SLANG_BINDING_TYPE_SAMPLER; + } else { return SLANG_BINDING_TYPE_UNKNOWN; -- cgit v1.2.3