summaryrefslogtreecommitdiff
path: root/tests/pipeline
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pipeline')
-rw-r--r--tests/pipeline/rasterization/mesh/hlsl-syntax.slang.glsl34
-rw-r--r--tests/pipeline/ray-tracing/trace-ray-inline.slang.hlsl93
2 files changed, 82 insertions, 45 deletions
diff --git a/tests/pipeline/rasterization/mesh/hlsl-syntax.slang.glsl b/tests/pipeline/rasterization/mesh/hlsl-syntax.slang.glsl
index 01e29f879..0d7a201ef 100644
--- a/tests/pipeline/rasterization/mesh/hlsl-syntax.slang.glsl
+++ b/tests/pipeline/rasterization/mesh/hlsl-syntax.slang.glsl
@@ -2,27 +2,40 @@
#extension GL_EXT_mesh_shader : require
layout(row_major) uniform;
layout(row_major) buffer;
-const vec3 colors_0[3] = { vec3(1.0, 1.0, 0.0), vec3(0.0, 1.0, 1.0), vec3(1.0, 0.0, 1.0) };
-const vec2 positions_0[3] = { vec2(0.0, -0.5), vec2(0.5, 0.5), vec2(-0.5, 0.5) };
-layout(location = 0)
-out vec3 verts_color_0[3];
out gl_MeshPerVertexEXT
{
vec4 gl_Position;
} gl_MeshVerticesEXT[3];
+const vec3 colors_0[3] = { vec3(1.0, 1.0, 0.0), vec3(0.0, 1.0, 1.0), vec3(1.0, 0.0, 1.0) };
+const vec2 positions_0[3] = { vec2(0.0, -0.5), vec2(0.5, 0.5), vec2(-0.5, 0.5) };
+
+struct Vertex_0
+{
+ vec4 pos_0;
+ vec3 color_0;
+};
+
+Vertex_0 Vertex_x24init_0(vec4 pos_1, vec3 color_1)
+{
+ Vertex_0 _S1;
+
+ _S1.pos_0 = pos_1;
+ _S1.color_0 = color_1;
+ return _S1;
+}
+layout(location = 0)
+out vec3 verts_color_0[3];
out uvec3 gl_PrimitiveTriangleIndicesEXT[1];
void foo_0(uint _S2)
{
if(_S2 < 3U)
{
- gl_MeshVerticesEXT[_S2].gl_Position = vec4(positions_0[_S2], 0.0, 1.0);
- verts_color_0[_S2] = colors_0[_S2];
- }
- else
- {
+ Vertex_0 _S3 = Vertex_x24init_0(vec4(positions_0[_S2], 0.0, 1.0), colors_0[_S2]);
+ gl_MeshVerticesEXT[_S2].gl_Position = _S3.pos_0;
+ verts_color_0[_S2] = _S3.color_0;
}
return;
}
@@ -39,8 +52,5 @@ void main()
{
gl_PrimitiveTriangleIndicesEXT[gl_LocalInvocationIndex] = uvec3(0U, 1U, 2U);
}
- else
- {
- }
return;
}
diff --git a/tests/pipeline/ray-tracing/trace-ray-inline.slang.hlsl b/tests/pipeline/ray-tracing/trace-ray-inline.slang.hlsl
index 4ed4c9966..df78f3c79 100644
--- a/tests/pipeline/ray-tracing/trace-ray-inline.slang.hlsl
+++ b/tests/pipeline/ray-tracing/trace-ray-inline.slang.hlsl
@@ -2,7 +2,11 @@
#ifdef SLANG_HLSL_ENABLE_NVAPI
#include "nvHLSLExtns.h"
#endif
-#pragma warning(disable: 3557)
+
+#ifndef __DXC_VERSION_MAJOR
+// warning X3557: loop doesn't seem to do anything, forcing loop to unroll
+#pragma warning(disable : 3557)
+#endif
struct SLANG_ParameterGroup_C_0
{
@@ -23,21 +27,45 @@ RaytracingAccelerationStructure myAccelerationStructure_0 : register(t0);
RWStructuredBuffer<int > resultBuffer_0 : register(u0);
-struct MyProceduralHitAttrs_0
+struct MyRayPayload_0
{
int value_0;
};
-bool myProceduralIntersection_0(inout float tHit_0, inout MyProceduralHitAttrs_0 hitAttrs_0)
+MyRayPayload_0 MyRayPayload_x24init_0(int value_1)
{
- return true;
+ MyRayPayload_0 _S1;
+ _S1.value_0 = value_1;
+ return _S1;
}
-struct MyRayPayload_0
+RayDesc RayDesc_x24init_0(float3 Origin_0, float TMin_0, float3 Direction_0, float TMax_0)
+{
+ RayDesc _S2;
+ _S2.Origin = Origin_0;
+ _S2.TMin = TMin_0;
+ _S2.Direction = Direction_0;
+ _S2.TMax = TMax_0;
+ return _S2;
+}
+
+struct MyProceduralHitAttrs_0
{
- int value_1;
+ int value_2;
};
+MyProceduralHitAttrs_0 MyProceduralHitAttrs_x24init_0(int value_3)
+{
+ MyProceduralHitAttrs_0 _S3;
+ _S3.value_2 = value_3;
+ return _S3;
+}
+
+bool myProceduralIntersection_0(inout float tHit_0, inout MyProceduralHitAttrs_0 hitAttrs_0)
+{
+ return true;
+}
+
bool myProceduralAnyHit_0(inout MyRayPayload_0 payload_0)
{
return true;
@@ -50,61 +78,59 @@ bool myTriangleAnyHit_0(inout MyRayPayload_0 payload_1)
void myTriangleClosestHit_0(inout MyRayPayload_0 payload_2)
{
- payload_2.value_1 = int(1);
+ payload_2.value_0 = int(1);
return;
}
void myProceduralClosestHit_0(inout MyRayPayload_0 payload_3, MyProceduralHitAttrs_0 attrs_0)
{
- payload_3.value_1 = attrs_0.value_0;
+ payload_3.value_0 = attrs_0.value_2;
return;
}
void myMiss_0(inout MyRayPayload_0 payload_4)
{
- payload_4.value_1 = int(0);
+ payload_4.value_0 = int(0);
return;
}
[shader("compute")][numthreads(1, 1, 1)]
-void main(uint3 tid_0 : SV_DISPATCHTHREADID)
+void main(uint3 tid_0 : SV_DispatchThreadID)
{
uint index_0 = tid_0.x;
- MyRayPayload_0 payload_5;
- payload_5.value_1 = int(-1);
- RayDesc ray_0 = { C_0.origin_0, C_0.tMin_0, C_0.direction_0, C_0.tMax_0 };
+ MyRayPayload_0 payload_5 = MyRayPayload_x24init_0(int(-1));
RayQuery<512U > query_0;
- query_0.TraceRayInline(myAccelerationStructure_0, C_0.rayFlags_0, C_0.instanceMask_0, ray_0);
+ query_0.TraceRayInline(myAccelerationStructure_0, C_0.rayFlags_0, C_0.instanceMask_0, RayDesc_x24init_0(C_0.origin_0, C_0.tMin_0, C_0.direction_0, C_0.tMax_0));
MyProceduralHitAttrs_0 committedProceduralAttrs_0;
+ MyProceduralHitAttrs_0 _S4 = MyProceduralHitAttrs_x24init_0(int(0));
for(;;)
{
- bool _S1 = query_0.Proceed();
- if(!_S1)
+ bool _S5 = query_0.Proceed();
+ if(!_S5)
{
break;
}
- uint _S2 = query_0.CandidateType();
+ uint _S6 = query_0.CandidateType();
MyProceduralHitAttrs_0 committedProceduralAttrs_1;
- switch(_S2)
+ switch(_S6)
{
case 1U:
{
- MyProceduralHitAttrs_0 candidateProceduralAttrs_0;
- candidateProceduralAttrs_0.value_0 = int(0);
+ MyProceduralHitAttrs_0 candidateProceduralAttrs_0 = _S4;
float tHit_1 = 0.0;
- bool _S3 = myProceduralIntersection_0(tHit_1, candidateProceduralAttrs_0);
- if(_S3)
+ bool _S7 = myProceduralIntersection_0(tHit_1, candidateProceduralAttrs_0);
+ if(_S7)
{
- bool _S4 = myProceduralAnyHit_0(payload_5);
- if(_S4)
+ bool _S8 = myProceduralAnyHit_0(payload_5);
+ if(_S8)
{
query_0.CommitProceduralPrimitiveHit(tHit_1);
- MyProceduralHitAttrs_0 _S5 = candidateProceduralAttrs_0;
- if(C_0.shouldStopAtFirstHit_0 != 0U)
+ MyProceduralHitAttrs_0 _S9 = candidateProceduralAttrs_0;
+ if((C_0.shouldStopAtFirstHit_0) != 0U)
{
query_0.Abort();
}
- committedProceduralAttrs_1 = _S5;
+ committedProceduralAttrs_1 = _S9;
}
else
{
@@ -119,11 +145,11 @@ void main(uint3 tid_0 : SV_DISPATCHTHREADID)
}
case 0U:
{
- bool _S6 = myTriangleAnyHit_0(payload_5);
- if(_S6)
+ bool _S10 = myTriangleAnyHit_0(payload_5);
+ if(_S10)
{
query_0.CommitNonOpaqueTriangleHit();
- if(C_0.shouldStopAtFirstHit_0 != 0U)
+ if((C_0.shouldStopAtFirstHit_0) != 0U)
{
query_0.Abort();
}
@@ -139,8 +165,8 @@ void main(uint3 tid_0 : SV_DISPATCHTHREADID)
}
committedProceduralAttrs_0 = committedProceduralAttrs_1;
}
- uint _S7 = query_0.CommittedStatus();
- switch(_S7)
+ uint _S11 = query_0.CommittedStatus();
+ switch(_S11)
{
case 1U:
{
@@ -162,6 +188,7 @@ void main(uint3 tid_0 : SV_DISPATCHTHREADID)
break;
}
}
- resultBuffer_0[index_0] = payload_5.value_1;
+ resultBuffer_0[index_0] = payload_5.value_0;
return;
}
+