diff options
| author | Yong He <yonghe@outlook.com> | 2023-02-07 18:36:35 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-07 18:36:35 -0800 |
| commit | 4be623c52a6518eb86756a0369706c1d6670f6bb (patch) | |
| tree | c24f54e34db9f1f02c2d51808b15121eba9195a9 /tests/cross-compile | |
| parent | 101f164b036d0c1c012243df69179559b6f40fb8 (diff) | |
Arithmetic simplifications and more IR clean up logic. (#2632)
Diffstat (limited to 'tests/cross-compile')
| -rw-r--r-- | tests/cross-compile/array-of-buffers.slang.glsl | 23 | ||||
| -rw-r--r-- | tests/cross-compile/array-of-buffers.slang.hlsl | 27 | ||||
| -rw-r--r-- | tests/cross-compile/dual-source-blending.slang.glsl | 8 | ||||
| -rw-r--r-- | tests/cross-compile/geometry-shader.slang.glsl | 17 | ||||
| -rw-r--r-- | tests/cross-compile/unknown-image-format.slang.glsl | 25 | ||||
| -rw-r--r-- | tests/cross-compile/vector-comparison.slang.glsl | 4 |
6 files changed, 50 insertions, 54 deletions
diff --git a/tests/cross-compile/array-of-buffers.slang.glsl b/tests/cross-compile/array-of-buffers.slang.glsl index 3dfe31d8d..1f436fad0 100644 --- a/tests/cross-compile/array-of-buffers.slang.glsl +++ b/tests/cross-compile/array-of-buffers.slang.glsl @@ -1,5 +1,7 @@ //TEST_IGNORE_FILE: #version 450 +layout(row_major) uniform; +layout(row_major) buffer; struct SLANG_ParameterGroup_C_0 { @@ -23,19 +25,15 @@ layout(std140) uniform _S2 S_0 _data; } cb_0[3]; - -layout(std430, binding = 2) -readonly buffer _S3 { +layout(std430, binding = 2) readonly buffer _S3 { S_0 _data[]; } sb1_0[4]; -layout(std430, binding = 3) -buffer _S4 { +layout(std430, binding = 3) buffer _S4 { vec4 _data[]; } sb2_0[5]; -layout(std430, binding = 4) -readonly buffer _S5 +layout(std430, binding = 4) readonly buffer _S5 { uint _data[]; } bb_0[6]; @@ -45,13 +43,12 @@ out vec4 _S6; void main() { - vec4 _S7 = cb_0[C_0._data.index_0]._data.f_0; + S_0 _S7 = ((sb1_0[C_0._data.index_0])._data[(C_0._data.index_0)]); + vec4 _S8 = cb_0[C_0._data.index_0]._data.f_0 + _S7.f_0; + vec4 _S9 = _S8 + ((sb2_0[C_0._data.index_0])._data[(C_0._data.index_0)]); + uint _S10 = ((bb_0[C_0._data.index_0])._data[(int(C_0._data.index_0 * 4U))/4]); - S_0 _S8 = sb1_0[C_0._data.index_0]._data[C_0._data.index_0]; + _S6 = _S9 + vec4(float(_S10)); - vec4 _S9 = _S7 + _S8.f_0; - vec4 _S10 = _S9 + sb2_0[C_0._data.index_0]._data[C_0._data.index_0]; - uint _S11 = bb_0[C_0._data.index_0]._data[int(C_0._data.index_0 * uint(4))/4]; - _S6 = _S10 + vec4(_S11); return; } diff --git a/tests/cross-compile/array-of-buffers.slang.hlsl b/tests/cross-compile/array-of-buffers.slang.hlsl index 37f4639a7..501b9c6db 100644 --- a/tests/cross-compile/array-of-buffers.slang.hlsl +++ b/tests/cross-compile/array-of-buffers.slang.hlsl @@ -1,5 +1,11 @@ //TEST_IGNORE_FILE: +#pragma pack_matrix(column_major) +#ifdef SLANG_HLSL_ENABLE_NVAPI +#include "nvHLSLExtns.h" +#endif +#pragma warning(disable: 3557) + struct SLANG_ParameterGroup_C_0 { uint index_0; @@ -15,21 +21,18 @@ struct S_0 float4 f_0; }; -ConstantBuffer<S_0> cb_0 [3] : register(b1); -StructuredBuffer<S_0> sb1_0[4] : register(t0); -RWStructuredBuffer<float4> sb2_0[5] : register(u0); -ByteAddressBuffer bb_0[6] : register(t4); +ConstantBuffer<S_0 > cb_0[int(3)] : register(b1); +StructuredBuffer<S_0 > sb1_0[int(4)] : register(t0); +RWStructuredBuffer<float4 > sb2_0[int(5)] : register(u0); +ByteAddressBuffer bb_0[int(6)] : register(t4); float4 main() : SV_TARGET { - float4 _S1 = cb_0[C_0.index_0].f_0; - - S_0 _S2 = sb1_0[C_0.index_0][C_0.index_0]; + S_0 _S1 = sb1_0[C_0.index_0][C_0.index_0]; - float4 _S3 = _S1 + _S2.f_0; - float4 _S4 = _S3 + sb2_0[C_0.index_0][C_0.index_0]; - uint _S5 = bb_0[C_0.index_0].Load( - (int) (C_0.index_0 * (uint) 4)); + float4 _S2 = cb_0[C_0.index_0].f_0 + _S1.f_0; + float4 _S3 = _S2 + sb2_0[C_0.index_0][C_0.index_0]; + uint _S4 = bb_0[C_0.index_0].Load(int(C_0.index_0 * 4U)); - return _S4 + (float4) _S5; + return _S3 + (float4)float(_S4); } diff --git a/tests/cross-compile/dual-source-blending.slang.glsl b/tests/cross-compile/dual-source-blending.slang.glsl index f10eb77a0..aa550b451 100644 --- a/tests/cross-compile/dual-source-blending.slang.glsl +++ b/tests/cross-compile/dual-source-blending.slang.glsl @@ -21,16 +21,16 @@ struct FragmentOutput_0 void main() { + const vec4 _S4 = vec4(0.0, 0.0, 0.0, 0.0); FragmentOutput_0 f_0; - FragmentOutput_0 _S4 = { vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0) }; - f_0 = _S4; + f_0.a_0 = _S4; + f_0.b_0 = _S4; f_0.a_0 = _S3; f_0.b_0 = _S3; - FragmentOutput_0 _S5 = f_0; - _S1 = _S5.a_0; + _S1 = f_0.a_0; _S2 = _S5.b_0; return; diff --git a/tests/cross-compile/geometry-shader.slang.glsl b/tests/cross-compile/geometry-shader.slang.glsl index 1664e8468..38dbd72ba 100644 --- a/tests/cross-compile/geometry-shader.slang.glsl +++ b/tests/cross-compile/geometry-shader.slang.glsl @@ -64,8 +64,8 @@ void main() CoarseVertex_0 _S10[3] = { _S7, _S8, _S9 }; - int ii_0; - ii_0 = 0; + int ii_0 = 0; + for(;;) { if(ii_0 < 3) @@ -75,17 +75,14 @@ void main() break; } - CoarseVertex_0 coarseVertex_0 = _S10[ii_0]; - RasterVertex_0 rasterVertex_0; - rasterVertex_0.position_0 = coarseVertex_0.position_1; - rasterVertex_0.color_0 = coarseVertex_0.color_1; - rasterVertex_0.id_0 = coarseVertex_0.id_1 + _S6; - + rasterVertex_0.position_0 = _S10[ii_0].position_1; + rasterVertex_0.color_0 = _S10[ii_0].color_1; + rasterVertex_0.id_0 = _S10[ii_0].id_1 + _S6; RasterVertex_0 _S11 = rasterVertex_0; + _S4 = rasterVertex_0.position_0; + _S5 = _S11.color_0; - output_position = _S11.position_0; - output_color = _S11.color_0; gl_Layer = int(_S11.id_0); EmitVertex(); diff --git a/tests/cross-compile/unknown-image-format.slang.glsl b/tests/cross-compile/unknown-image-format.slang.glsl index 329405ab6..5ccc30767 100644 --- a/tests/cross-compile/unknown-image-format.slang.glsl +++ b/tests/cross-compile/unknown-image-format.slang.glsl @@ -3,6 +3,8 @@ #version 450 #extension GL_EXT_shader_image_load_formatted : require +layout(row_major) uniform; +layout(row_major) buffer; struct SLANG_ParameterGroup_C_0 { @@ -41,25 +43,24 @@ out vec4 _S2; void main() { - const vec4 result_0 = vec4(0); float _S3 = (imageLoad((gNoFormat_0), ivec2((C_0._data.index_0))).x); - vec4 result_1 = result_0 + _S3; + vec4 _S4 = vec4(_S3); - float _S4 = (imageLoad((gExplicitFormat_0), ivec2((C_0._data.index_0))).x); - vec4 result_2 = result_1 + _S4; + float _S5 = (imageLoad((gExplicitFormat_0), ivec2((C_0._data.index_0))).x); + vec4 result_0 = _S4 + _S5; - vec4 _S5 = (imageLoad((gBlock_noFormat_0), ivec2((C_0._data.index_0)))); - vec4 result_3 = result_2 + _S5; + vec4 _S6 = (imageLoad((gBlock_noFormat_0), ivec2((C_0._data.index_0)))); + vec4 result_1 = result_0 + _S6; - vec4 _S6 = (imageLoad((gBlock_explicitFormat_0), ivec2((C_0._data.index_0)))); - vec4 result_4 = result_3 + _S6; + vec4 _S7 = (imageLoad((gBlock_explicitFormat_0), ivec2((C_0._data.index_0)))); + vec4 result_2 = result_1 + _S7; - vec4 _S7 = (imageLoad((entryPointParams_noFormat_0), ivec2((C_0._data.index_0)))); - vec4 result_5 = result_4 + _S7; + vec4 _S8 = (imageLoad((entryPointParams_noFormat_0), ivec2((C_0._data.index_0)))); + vec4 result_3 = result_2 + _S8; - vec4 _S8 = (imageLoad((entryPointParams_explicitFormat_0), ivec2((C_0._data.index_0)))); - _S2 = result_5 + _S8; + vec4 _S9 = (imageLoad((entryPointParams_explicitFormat_0), ivec2((C_0._data.index_0)))); + _S2 = result_3 + _S9; return; } diff --git a/tests/cross-compile/vector-comparison.slang.glsl b/tests/cross-compile/vector-comparison.slang.glsl index 77578a368..2497055a0 100644 --- a/tests/cross-compile/vector-comparison.slang.glsl +++ b/tests/cross-compile/vector-comparison.slang.glsl @@ -19,8 +19,6 @@ out vec4 _S2; void main() { - vec4 v0_0 = params_0._data.a_0; - vec4 v1_0 = params_0._data.b_0; - _S2 = mix(vec4(3.00000000000000000000), vec4(2.00000000000000000000), equal(v0_0,v1_0)) + mix(vec4(3.00000000000000000000), vec4(2.00000000000000000000), lessThan(v0_0,v1_0)) + mix(vec4(3.00000000000000000000), vec4(2.00000000000000000000), greaterThan(v0_0,v1_0)) + mix(vec4(3.00000000000000000000), vec4(2.00000000000000000000), lessThanEqual(v0_0,v1_0)) + mix(vec4(3.00000000000000000000), vec4(2.00000000000000000000), greaterThanEqual(v0_0,v1_0)) + mix(vec4(3.00000000000000000000), vec4(2.00000000000000000000), notEqual(v0_0,v1_0)); + _S2 = mix(vec4(3.0), vec4(2.0), (equal(params_0._data.a_0,params_0._data.b_0))) + mix(vec4(3.0), vec4(2.0), (lessThan(params_0._data.a_0,params_0._data.b_0))) + mix(vec4(3.0), vec4(2.0), (greaterThan(params_0._data.a_0,params_0._data.b_0))) + mix(vec4(3.0), vec4(2.0), (lessThanEqual(params_0._data.a_0,params_0._data.b_0))) + mix(vec4(3.0), vec4(2.0), (greaterThanEqual(params_0._data.a_0,params_0._data.b_0))) + mix(vec4(3.0), vec4(2.0), (notEqual(params_0._data.a_0,params_0._data.b_0))); return; } |
