spirv-reader: builtin in/out keep their signedness as private vars
Update the plan for pipeline I/O.
Bug: tint:508
Change-Id: I263d954403134a78106b3372ec9df3d9d868ef1d
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/54462
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/docs/spirv-input-output-variables.md b/docs/spirv-input-output-variables.md
index 4814dda..d4b2553 100644
--- a/docs/spirv-input-output-variables.md
+++ b/docs/spirv-input-output-variables.md
@@ -36,19 +36,22 @@
is the same as the original SPIR-V entry point.
- Original input variables are mapped to pseudo-in Private variables
with the same store types, but no other attributes or properties copied.
+ In Vulkan, Input variables don't have initalizers.
- Original output variables are mapped to pseudo-out Private variables
- with the same store types, but no other attributes or properties are copied.
+ with the same store types and optional initializer, but no other attributes
+ or properties are copied.
- A wrapper entry point function whose arguments correspond in type, location
and builtin attributes the original input variables, and whose return type is
a structure containing members correspond in type, location, and builtin
attributes to the original output variables.
The body of the wrapper function the following phases:
- Copy formal parameter values into pseudo-in variables.
- - Use stores to initialize pseudo-out variables:
- - If the original variable had an initializer, store that value.
- - Otherwise, store a zero value for the store type.
+ - Insert a bitcast if the WGSL builtin variable has different signedness
+ from the SPIR-V declared type.
- Execute the inner function.
- Copy pseudo-out variables into the return structure.
+ - Insert a bitcast if the WGSL builtin variable has different signedness
+ from the SPIR-V declared type.
- Return the return structure.
- Replace uses of the the original input/output variables to the pseudo-in and