summaryrefslogtreecommitdiffstats
path: root/source/slang/emit.cpp
diff options
context:
space:
mode:
authorTim Foley <tfoley@nvidia.com>2017-07-22 14:05:07 -0700
committerTim Foley <tfoley@nvidia.com>2017-07-22 14:05:07 -0700
commitedf8cafe6d3799f58a92ccc83ba70dd41c461f6a (patch)
treeebf5575829ef9bedc9d43821cd556fe596bf2724 /source/slang/emit.cpp
parent30fbf640cd4cd6936e177fdfadb76e8814cffffc (diff)
Make the "hack" sampler explicit for now
- We use this to work around the fact that, e.g., `Texture2D.Load` doesn't take a sampler, but the equivalent GLSL operation `texelFetch` requires one - Previously we tried to hide the sampler from the user, hoping that glslang would drop it and we could just ignore it, but that doesn't work - For now we'll go ahead and explicitly show the sampler in the reflection info so that an app can react appropriately - We also generate a unique binding for the sampler, instead of the old behavior that fixed it with `binding = 0` - We still fix it with `set = 0`, so it might still surprise users
Diffstat (limited to 'source/slang/emit.cpp')
-rw-r--r--source/slang/emit.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/slang/emit.cpp b/source/slang/emit.cpp
index 61e473c7d..5a59674f5 100644
--- a/source/slang/emit.cpp
+++ b/source/slang/emit.cpp
@@ -3848,7 +3848,10 @@ String emitEntryPoint(
if (sharedContext.needHackSamplerForTexelFetch)
{
- finalResultBuilder << "layout(set = 0, binding = 0) uniform sampler SLANG_hack_samplerForTexelFetch;\n";
+ finalResultBuilder
+ << "layout(set = 0, binding = "
+ << programLayout->bindingForHackSampler
+ << ") uniform sampler SLANG_hack_samplerForTexelFetch;\n";
}
finalResultBuilder << code;