Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions checkout_glslang_spirv_tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# Copyright 2016-2021 The Khronos Group Inc.
# SPDX-License-Identifier: Apache-2.0

GLSLANG_REV=5f6c7176c5483da9af6432afb3dd962e4f8873a1
SPIRV_TOOLS_REV=021f92a757002fcdba6a73154ed46a203d3a56b8
SPIRV_HEADERS_REV=9268f3057354a2cb65991ba5f38b16d81e803692
GLSLANG_REV=a3a83d095e358aae4d63ece088dcca71828e2de0
SPIRV_TOOLS_REV=7f586c9b065d76341ba9477f374daf1836a464e5
SPIRV_HEADERS_REV=ad9184e76a66b1001c29db9b0a3e87f646c64de0
PROTOCOL=https

if [ -d external/glslang ]; then
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ void comp_main()
{
uint _24;
u0_counter.InterlockedAdd(0, -1, _24);
u0[asint(asfloat(_24))] = uint(int(gl_GlobalInvocationID.x)).x;
u0[int(_24)] = uint(int(gl_GlobalInvocationID.x)).x;
}

[numthreads(4, 1, 1)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ void comp_main()
{
uint _24;
u0_counter.InterlockedAdd(0, 1, _24);
u0[asint(asfloat(_24))] = uint(int(gl_GlobalInvocationID.x)).x;
u0[int(_24)] = uint(int(gl_GlobalInvocationID.x)).x;
}

[numthreads(4, 1, 1)]
Expand Down
177 changes: 104 additions & 73 deletions reference/opt/shaders-hlsl/comp/access-chain-load-composite.comp
Original file line number Diff line number Diff line change
Expand Up @@ -22,83 +22,114 @@ RWByteAddressBuffer _31 : register(u0);

void comp_main()
{
Foo _36;
_36.a = asfloat(uint2x2(_31.Load(0), _31.Load(8), _31.Load(4), _31.Load(12)));
_36.b = asfloat(_31.Load2(16));
[unroll]
for (int _4ident = 0; _4ident < 5; _4ident++)
{
[unroll]
for (int _5ident = 0; _5ident < 2; _5ident++)
{
[unroll]
for (int _6ident = 0; _6ident < 4; _6ident++)
{
_36.c[_4ident].d[_5ident][_6ident] = asfloat(_31.Load(_6ident * 4 + _5ident * 16 + _4ident * 40 + 24));
}
}
[unroll]
for (int _7ident = 0; _7ident < 2; _7ident++)
{
_36.c[_4ident].baz[_7ident].c = asfloat(_31.Load(_7ident * 4 + _4ident * 40 + 56));
}
}
float2x2 _234 = float2x2(_36.a[0] + 1.0f.xx, _36.a[1] + 1.0f.xx);
float2x2 _662 = asfloat(uint2x2(_31.Load(0), _31.Load(8), _31.Load(4), _31.Load(12)));
float2 _664 = asfloat(_31.Load2(16));
float _674 = asfloat(_31.Load(24));
float _676 = asfloat(_31.Load(28));
float _678 = asfloat(_31.Load(32));
float _681 = asfloat(_31.Load(36));
float _685 = asfloat(_31.Load(40));
float _687 = asfloat(_31.Load(44));
float _689 = asfloat(_31.Load(48));
float _691 = asfloat(_31.Load(52));
float _697 = asfloat(_31.Load(56));
float _701 = asfloat(_31.Load(60));
float _709 = asfloat(_31.Load(64));
float _711 = asfloat(_31.Load(68));
float _713 = asfloat(_31.Load(72));
float _715 = asfloat(_31.Load(76));
float _719 = asfloat(_31.Load(80));
float _721 = asfloat(_31.Load(84));
float _723 = asfloat(_31.Load(88));
float _725 = asfloat(_31.Load(92));
float _731 = asfloat(_31.Load(96));
float _735 = asfloat(_31.Load(100));
float _743 = asfloat(_31.Load(104));
float _745 = asfloat(_31.Load(108));
float _747 = asfloat(_31.Load(112));
float _749 = asfloat(_31.Load(116));
float _753 = asfloat(_31.Load(120));
float _755 = asfloat(_31.Load(124));
float _757 = asfloat(_31.Load(128));
float _759 = asfloat(_31.Load(132));
float _765 = asfloat(_31.Load(136));
float _769 = asfloat(_31.Load(140));
float _777 = asfloat(_31.Load(144));
float _779 = asfloat(_31.Load(148));
float _781 = asfloat(_31.Load(152));
float _783 = asfloat(_31.Load(156));
float _787 = asfloat(_31.Load(160));
float _789 = asfloat(_31.Load(164));
float _791 = asfloat(_31.Load(168));
float _793 = asfloat(_31.Load(172));
float _799 = asfloat(_31.Load(176));
float _803 = asfloat(_31.Load(180));
float _811 = asfloat(_31.Load(184));
float _813 = asfloat(_31.Load(188));
float _815 = asfloat(_31.Load(192));
float _817 = asfloat(_31.Load(196));
float _821 = asfloat(_31.Load(200));
float _823 = asfloat(_31.Load(204));
float _825 = asfloat(_31.Load(208));
float _827 = asfloat(_31.Load(212));
float _833 = asfloat(_31.Load(216));
float _837 = asfloat(_31.Load(220));
float2x2 _234 = float2x2(_662[0] + 1.0f.xx, _662[1] + 1.0f.xx);
_31.Store(224, asuint(_234[0].x));
_31.Store(228, asuint(_234[1].x));
_31.Store(232, asuint(_234[0].y));
_31.Store(236, asuint(_234[1].y));
_31.Store2(240, asuint(_36.b + 2.0f.xx));
_31.Store(248, asuint(_36.c[0].d[0][0]));
_31.Store(252, asuint(_36.c[0].d[0][1]));
_31.Store(256, asuint(_36.c[0].d[0][2]));
_31.Store(260, asuint(_36.c[0].d[0][3]));
_31.Store(264, asuint(_36.c[0].d[1][0]));
_31.Store(268, asuint(_36.c[0].d[1][1]));
_31.Store(272, asuint(_36.c[0].d[1][2]));
_31.Store(276, asuint(_36.c[0].d[1][3]));
_31.Store(280, asuint(_36.c[0].baz[0].c));
_31.Store(284, asuint(_36.c[0].baz[1].c));
_31.Store(288, asuint(_36.c[1].d[0][0]));
_31.Store(292, asuint(_36.c[1].d[0][1]));
_31.Store(296, asuint(_36.c[1].d[0][2]));
_31.Store(300, asuint(_36.c[1].d[0][3]));
_31.Store(304, asuint(_36.c[1].d[1][0]));
_31.Store(308, asuint(_36.c[1].d[1][1]));
_31.Store(312, asuint(_36.c[1].d[1][2]));
_31.Store(316, asuint(_36.c[1].d[1][3]));
_31.Store(320, asuint(_36.c[1].baz[0].c));
_31.Store(324, asuint(_36.c[1].baz[1].c));
_31.Store(328, asuint(_36.c[2].d[0][0]));
_31.Store(332, asuint(_36.c[2].d[0][1]));
_31.Store(336, asuint(_36.c[2].d[0][2]));
_31.Store(340, asuint(_36.c[2].d[0][3]));
_31.Store(344, asuint(_36.c[2].d[1][0]));
_31.Store(348, asuint(_36.c[2].d[1][1]));
_31.Store(352, asuint(_36.c[2].d[1][2]));
_31.Store(356, asuint(_36.c[2].d[1][3]));
_31.Store(360, asuint(_36.c[2].baz[0].c));
_31.Store(364, asuint(_36.c[2].baz[1].c));
_31.Store(368, asuint(_36.c[3].d[0][0]));
_31.Store(372, asuint(_36.c[3].d[0][1]));
_31.Store(376, asuint(_36.c[3].d[0][2]));
_31.Store(380, asuint(_36.c[3].d[0][3]));
_31.Store(384, asuint(_36.c[3].d[1][0]));
_31.Store(388, asuint(_36.c[3].d[1][1] + 5.0f));
_31.Store(392, asuint(_36.c[3].d[1][2]));
_31.Store(396, asuint(_36.c[3].d[1][3]));
_31.Store(400, asuint(_36.c[3].baz[0].c));
_31.Store(404, asuint(_36.c[3].baz[1].c));
_31.Store(408, asuint(_36.c[4].d[0][0]));
_31.Store(412, asuint(_36.c[4].d[0][1]));
_31.Store(416, asuint(_36.c[4].d[0][2]));
_31.Store(420, asuint(_36.c[4].d[0][3]));
_31.Store(424, asuint(_36.c[4].d[1][0]));
_31.Store(428, asuint(_36.c[4].d[1][1]));
_31.Store(432, asuint(_36.c[4].d[1][2]));
_31.Store(436, asuint(_36.c[4].d[1][3]));
_31.Store(440, asuint(_36.c[4].baz[0].c));
_31.Store(444, asuint(_36.c[4].baz[1].c));
_31.Store2(240, asuint(_664 + 2.0f.xx));
_31.Store(248, asuint(_674));
_31.Store(252, asuint(_676));
_31.Store(256, asuint(_678));
_31.Store(260, asuint(_681));
_31.Store(264, asuint(_685));
_31.Store(268, asuint(_687));
_31.Store(272, asuint(_689));
_31.Store(276, asuint(_691));
_31.Store(280, asuint(_697));
_31.Store(284, asuint(_701));
_31.Store(288, asuint(_709));
_31.Store(292, asuint(_711));
_31.Store(296, asuint(_713));
_31.Store(300, asuint(_715));
_31.Store(304, asuint(_719));
_31.Store(308, asuint(_721));
_31.Store(312, asuint(_723));
_31.Store(316, asuint(_725));
_31.Store(320, asuint(_731));
_31.Store(324, asuint(_735));
_31.Store(328, asuint(_743));
_31.Store(332, asuint(_745));
_31.Store(336, asuint(_747));
_31.Store(340, asuint(_749));
_31.Store(344, asuint(_753));
_31.Store(348, asuint(_755));
_31.Store(352, asuint(_757));
_31.Store(356, asuint(_759));
_31.Store(360, asuint(_765));
_31.Store(364, asuint(_769));
_31.Store(368, asuint(_777));
_31.Store(372, asuint(_779));
_31.Store(376, asuint(_781));
_31.Store(380, asuint(_783));
_31.Store(384, asuint(_787));
_31.Store(388, asuint(_789 + 5.0f));
_31.Store(392, asuint(_791));
_31.Store(396, asuint(_793));
_31.Store(400, asuint(_799));
_31.Store(404, asuint(_803));
_31.Store(408, asuint(_811));
_31.Store(412, asuint(_813));
_31.Store(416, asuint(_815));
_31.Store(420, asuint(_817));
_31.Store(424, asuint(_821));
_31.Store(428, asuint(_823));
_31.Store(432, asuint(_825));
_31.Store(436, asuint(_827));
_31.Store(440, asuint(_833));
_31.Store(444, asuint(_837));
}

[numthreads(1, 1, 1)]
Expand Down
2 changes: 1 addition & 1 deletion reference/opt/shaders-hlsl/comp/ssbo-array-length.comp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ void comp_main()
uint _14;
_11.GetDimensions(_14);
_14 = (_14 - 16) / 16;
_11.Store(0, uint(int(_14)));
_11.Store(0, _14);
}

[numthreads(1, 1, 1)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,8 @@ struct SPIRV_Cross_Output
void vert_main()
{
Foo _19 = {transpose(float4x3(UBO[0].xyz, UBO[1].xyz, UBO[2].xyz, UBO[3].xyz)), transpose(float4x3(UBO[4].xyz, UBO[5].xyz, UBO[6].xyz, UBO[7].xyz))};
Foo _20 = _19;
V0 = mul(_20.MVP0, v0);
V1 = mul(_20.MVP1, v1);
V0 = mul(_19.MVP0, v0);
V1 = mul(_19.MVP1, v1);
}

SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
static const float _17[5] = { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f };

static float4 FragColor;
static float4 v0;

struct SPIRV_Cross_Input
{
float4 v0 : TEXCOORD0;
};

struct SPIRV_Cross_Output
{
Expand All @@ -24,9 +18,8 @@ void frag_main()
}
}

SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
SPIRV_Cross_Output main()
{
v0 = stage_input.v0;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
Expand Down
2 changes: 1 addition & 1 deletion reference/opt/shaders-hlsl/frag/bit-conversions.frag
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct SPIRV_Cross_Output

void frag_main()
{
FragColor = float4(1.0f, 0.0f, asfloat(asint(value.x)), 1.0f);
FragColor = float4(1.0f, 0.0f, value.x, 1.0f);
}

SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
Expand Down
10 changes: 1 addition & 9 deletions reference/opt/shaders-hlsl/frag/no-return2.frag
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
static float4 vColor;

struct SPIRV_Cross_Input
{
float4 vColor : TEXCOORD0;
};

void frag_main()
{
}

void main(SPIRV_Cross_Input stage_input)
void main()
{
vColor = stage_input.vColor;
frag_main();
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ void frag_main()
{
#line 137 "test.frag"
#line 106 "test.frag"
bool _288 = iv.x < 0.0f;
if (_288)
bool _294 = iv.x < 0.0f;
if (_294)
{
#line 107 "test.frag"
ov.x = 50.0f;
Expand All @@ -27,10 +27,10 @@ void frag_main()
ov.x = 60.0f;
}
#line 114 "test.frag"
for (int _519 = 0; _519 < 4; _519++)
for (int _525 = 0; _525 < 4; _525++)
{
#line 106 "test.frag"
if (_288)
if (_294)
{
#line 107 "test.frag"
ov.x = 50.0f;
Expand All @@ -53,10 +53,10 @@ void frag_main()
}
}
#line 126 "test.frag"
for (int _523 = 0; _523 < 4; _523++)
for (int _529 = 0; _529 < 4; _529++)
{
#line 106 "test.frag"
if (_288)
if (_294)
{
#line 107 "test.frag"
ov.x = 50.0f;
Expand All @@ -67,10 +67,10 @@ void frag_main()
ov.x = 60.0f;
}
#line 114 "test.frag"
for (int _527 = 0; _527 < 4; _527++)
for (int _533 = 0; _533 < 4; _533++)
{
#line 106 "test.frag"
if (_288)
if (_294)
{
#line 107 "test.frag"
ov.x = 50.0f;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,6 @@ cbuffer UBO : register(b0)


static float4 FragColor;
static float4 vInput;

struct SPIRV_Cross_Input
{
float4 vInput : TEXCOORD0;
};

struct SPIRV_Cross_Output
{
Expand Down Expand Up @@ -46,9 +40,8 @@ void frag_main()
FragColor = float4(_45.x ? 10.0f.xxxx.x : 20.0f.xxxx.x, _45.y ? 10.0f.xxxx.y : 20.0f.xxxx.y, _45.z ? 10.0f.xxxx.z : 20.0f.xxxx.z, _45.w ? 10.0f.xxxx.w : 20.0f.xxxx.w);
}

SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
SPIRV_Cross_Output main()
{
vInput = stage_input.vInput;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
Expand Down
3 changes: 0 additions & 3 deletions reference/opt/shaders-hlsl/frag/unary-enclose.frag
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
static float4 FragColor;
static float4 vIn;
static int4 vIn1;

struct SPIRV_Cross_Input
{
float4 vIn : TEXCOORD0;
nointerpolation int4 vIn1 : TEXCOORD1;
};

struct SPIRV_Cross_Output
Expand All @@ -21,7 +19,6 @@ void frag_main()
SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
{
vIn = stage_input.vIn;
vIn1 = stage_input.vIn1;
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ struct gl_MeshPerPrimitiveEXT
bool gl_CullPrimitiveEXT : SV_CullPrimitive;
};

groupshared float shared_float[16];

void mesh_main(out gl_MeshPerVertexEXT gl_MeshVerticesEXT[24], out gl_MeshPerPrimitiveEXT gl_MeshPrimitivesEXT[22], TaskPayload _payload, inout uint2 gl_PrimitiveLineIndicesEXT[22])
{
SetMeshOutputCounts(24u, 22u);
Expand Down
Loading
Loading