[hlsl] Emit mip level 0 for storage textures
Bug: 42251045
Bug: 357896925
Change-Id: Icbf5f6f4f4b06ea337ad8fe6c2efe76366105f1c
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/202363
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
index 334e6e8e..2ecc2ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.ir.dxc.hlsl
@@ -1,9 +1,45 @@
-SKIP: FAILED
+struct VertexOutput {
+ float4 pos;
+ int4 prevent_dce;
+};
-..\..\src\tint\utils\containers\slice.h:216 internal compiler error: TINT_ASSERT(i < Length())
-********************************************************************
-* The tint shader compiler has encountered an unexpected error. *
-* *
-* Please help us fix this issue by submitting a bug report at *
-* crbug.com/tint with the source program that triggered the bug. *
-********************************************************************
+struct vertex_main_outputs {
+ nointerpolation int4 VertexOutput_prevent_dce : TEXCOORD0;
+ float4 VertexOutput_pos : SV_Position;
+};
+
+
+RWByteAddressBuffer prevent_dce : register(u0);
+Texture2DArray<int4> arg_0 : register(t0, space1);
+int4 textureLoad_582015() {
+ Texture2DArray<int4> v = arg_0;
+ int2 v_1 = int2((1).xx);
+ int4 res = int4(v.Load(int4(v_1, int(1), 0)));
+ return res;
+}
+
+void fragment_main() {
+ prevent_dce.Store4(0u, asuint(textureLoad_582015()));
+}
+
+[numthreads(1, 1, 1)]
+void compute_main() {
+ prevent_dce.Store4(0u, asuint(textureLoad_582015()));
+}
+
+VertexOutput vertex_main_inner() {
+ VertexOutput tint_symbol = (VertexOutput)0;
+ tint_symbol.pos = (0.0f).xxxx;
+ tint_symbol.prevent_dce = textureLoad_582015();
+ VertexOutput v_2 = tint_symbol;
+ return v_2;
+}
+
+vertex_main_outputs vertex_main() {
+ VertexOutput v_3 = vertex_main_inner();
+ VertexOutput v_4 = v_3;
+ VertexOutput v_5 = v_3;
+ vertex_main_outputs v_6 = {v_5.prevent_dce, v_4.pos};
+ return v_6;
+}
+