diff options
| author | Tim Foley <tfoley@nvidia.com> | 2017-07-22 14:05:07 -0700 |
|---|---|---|
| committer | Tim Foley <tfoley@nvidia.com> | 2017-07-22 14:05:07 -0700 |
| commit | edf8cafe6d3799f58a92ccc83ba70dd41c461f6a (patch) | |
| tree | ebf5575829ef9bedc9d43821cd556fe596bf2724 /source/slang/emit.cpp | |
| parent | 30fbf640cd4cd6936e177fdfadb76e8814cffffc (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.cpp | 5 |
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; |
