yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Yong HeCapability type checking. (#3530)14764896c

master
1.0 KiB50 linesraw
1#version 460
2#extension GL_EXT_ray_tracing : require
3layout(row_major) uniform;
4layout(row_major) buffer;
5layout(std430, binding = 1) readonly buffer StructuredBuffer_float_t_0 {
6    float _data[];
7} gParamBlock_sbuf_0;
8float rcp_0(float x_0)
9{
10    return 1.0 / x_0;
11}
12
13struct RayHitInfoPacked_0
14{
15    vec4 PackedHitInfoA_0;
16};
17
18rayPayloadInEXT RayHitInfoPacked_0 _S1;
19
20struct BuiltInTriangleIntersectionAttributes_0
21{
22    vec2 barycentrics_0;
23};
24
25hitAttributeEXT BuiltInTriangleIntersectionAttributes_0 _S2;
26
27void main()
28{
29    float HitT_0 = ((gl_RayTmaxEXT));
30    _S1.PackedHitInfoA_0[0] = HitT_0;
31
32    float offsfloat_0 = gParamBlock_sbuf_0._data[0];
33    uint use_rcp_0 = 0U | uint(HitT_0 > 0.0);
34    if(use_rcp_0 != 0U)
35    {
36        _S1.PackedHitInfoA_0[1] = rcp_0(offsfloat_0);
37    }
38    else
39    {
40        if(use_rcp_0 > 0U&&offsfloat_0 == 0.0)
41        {
42            _S1.PackedHitInfoA_0[1] = (inversesqrt((offsfloat_0 + 1.0)));
43        }
44        else
45        {
46            _S1.PackedHitInfoA_0[1] = (inversesqrt((offsfloat_0)));
47        }
48    }
49    return;
50}