summaryrefslogtreecommitdiff
path: root/tests/cross-compile
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-02-07 18:36:35 -0800
committerGitHub <noreply@github.com>2023-02-07 18:36:35 -0800
commit4be623c52a6518eb86756a0369706c1d6670f6bb (patch)
treec24f54e34db9f1f02c2d51808b15121eba9195a9 /tests/cross-compile
parent101f164b036d0c1c012243df69179559b6f40fb8 (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.glsl23
-rw-r--r--tests/cross-compile/array-of-buffers.slang.hlsl27
-rw-r--r--tests/cross-compile/dual-source-blending.slang.glsl8
-rw-r--r--tests/cross-compile/geometry-shader.slang.glsl17
-rw-r--r--tests/cross-compile/unknown-image-format.slang.glsl25
-rw-r--r--tests/cross-compile/vector-comparison.slang.glsl4
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;
}