summaryrefslogtreecommitdiffstats
path: root/source/core/slang-string-slice-pool.cpp
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2019-11-06 14:01:53 -0800
committerGitHub <noreply@github.com>2019-11-06 14:01:53 -0800
commit13a2ca6135284a63a178918bd0c7c7becc56eaf2 (patch)
tree2b067bef2f9d42e288ddb56a3b66e32217cd6dea /source/core/slang-string-slice-pool.cpp
parent835eb1b6a6d75c206fc65cf5e9e5ac132c5200a0 (diff)
Fixes to how "pending" data is reported in type layouts (#1108)
These fixes were needed to get a Falcor example that uses Slang `interface`s for shader specialization to work. The basic fixes are: * In `applyOffsetToTypeLayout`, we need to account for the case where the type being offset had "pending" data, and make sure to offset it as well. This also means that when computing if offsetting is needed, we also need to check the pending data, if any. * In `_createParameterGroupTypeLayout` make sure to call `applyOffsetToTypeLayout` *after* the layout for "pending" data, if any, has been computed. * In `_createTypeLayout`, when computing layout for an `ExistentialSpecializedType` (a type that has had existential/interface-type slots specialized to known types), don't forget to set the type layout of the variable layout we create to store pending data. The first two items relate a "legacy" reflection API that the client code really shouldn't be using (but it was easier to fix the "do what I mean" behavior in Slang than to refactor the client), and the last is a detailed corner case in the layout of interface-based types that we are not currently equiped to test directly.
Diffstat (limited to 'source/core/slang-string-slice-pool.cpp')
0 files changed, 0 insertions, 0 deletions