[tint] Add read-only storage texture builtins
Most backends "just worked", except HLSL which uses a different
register space for read-only textures.
Bug: tint:2007
Change-Id: I7925b3bdf7389e3b429e0a570e988adde0443452
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/146961
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..89e41fe
--- /dev/null
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.dxc.hlsl
@@ -0,0 +1,34 @@
+Texture3D<uint4> arg_0 : register(t0, space1);
+RWByteAddressBuffer prevent_dce : register(u0, space2);
+
+void textureLoad_374351() {
+ uint4 res = arg_0.Load(uint4((1u).xxx, uint(0)));
+ prevent_dce.Store4(0u, asuint(res));
+}
+
+struct tint_symbol {
+ float4 value : SV_Position;
+};
+
+float4 vertex_main_inner() {
+ textureLoad_374351();
+ return (0.0f).xxxx;
+}
+
+tint_symbol vertex_main() {
+ const float4 inner_result = vertex_main_inner();
+ tint_symbol wrapper_result = (tint_symbol)0;
+ wrapper_result.value = inner_result;
+ return wrapper_result;
+}
+
+void fragment_main() {
+ textureLoad_374351();
+ return;
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ textureLoad_374351();
+ return;
+}