summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/core.meta.slang10
-rw-r--r--source/slang/slang-reflection-api.cpp4
2 files changed, 14 insertions, 0 deletions
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<SamplerStateType>(type) )
+ {
+ return SLANG_BINDING_TYPE_SAMPLER;
+ }
else
{
return SLANG_BINDING_TYPE_UNKNOWN;