summaryrefslogtreecommitdiffstats
path: root/tests/reflection/thread-group-size.hlsl.expected
diff options
context:
space:
mode:
authorTim Foley <tfoley@nvidia.com>2017-07-18 07:49:33 -0700
committerTim Foley <tfoley@nvidia.com>2017-07-18 12:58:48 -0700
commit1c022e2c3654de868c45658683f9e04cf4d68cc0 (patch)
treed4a5f0cefd50c96aaf22921f9fef715b6359c0c5 /tests/reflection/thread-group-size.hlsl.expected
parent361e29572ff8e2cdd1e4ffe2cb62599e9ef06461 (diff)
Support scalarization of varying input/output for GLSL
GLSL technically supports varying (`in`, `out`) parameters of `struct` type, but there are some annoying constraints (not allowed for VS input), and it doesn't work with how an HLSL user would usually put "system-value" inputs/outputs into a `struct` together with ordinary inputs/outputs. To work around this, this change adds support for using an imported Slang `struct` type for an `in` or `out` parameter, in which case it will (1) be scalarized and (2) will have system-value semantics mapped appropriately, just as for an entry-point parameter when cross-compiling an HLSL-style `main()`. Changes: - Add a notion of a `VaryingTupleExpr` and `VaryingTupleVarDecl`, similar to those for the resources-in-structs case - Trigger use of these when we have a global-scope varying in/out using an imported `struct` type - Also use these in the cross-compilation case for ordinary varying input/output (since this approach seems like it should be more general, and can hopefully handle stuff like GS input/output some day) - When generating parameter binding information, special case global-scope input/output, and treat it the same as entry-point-parameter input/output - Revamp how used resource ranges are computed so that we can eventually make this specific to an entry point - Actually implement first signs of life for `maybeMoveTemp` so that assignments to the tuple-ified outputs will work better - Add first test case that actually seems to work - Add diagnostics for conflicting explicit bindings on a parameter - Add diagnostic for different parameters with overlapping bindings - Make global-scope varying input/output use a tracking data structure specific to the translation unit for computing locations (so that they are independent of other TUs)
Diffstat (limited to 'tests/reflection/thread-group-size.hlsl.expected')
-rw-r--r--tests/reflection/thread-group-size.hlsl.expected4
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/reflection/thread-group-size.hlsl.expected b/tests/reflection/thread-group-size.hlsl.expected
index 60d5e822c..d139c5b64 100644
--- a/tests/reflection/thread-group-size.hlsl.expected
+++ b/tests/reflection/thread-group-size.hlsl.expected
@@ -21,7 +21,9 @@ standard output = {
"parameters": [
{
"name": "tid",
- "binding": {"kind": "vertexInput", "index": 0},
+ "bindings": [
+
+ ],
"type": {
"kind": "vector",
"elementCount": 3,