Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Kristian Arntzen <post@arntzen-software.no>2019-10-25 17:41:02 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2019-10-26 17:10:12 +0300
commit27d6d45671b39f7bef848ec1149d9683c9a965db (patch)
treea25e73851239d299cccc5a59c1bdbefd2369cdee /reference/shaders-ue4/asm
parentbac2c34590eeaa1fcf284af1646406c07ad9481a (diff)
MSL: Rewrite tessellation_access_chain.
To support loading array of array properly in tessellation, we need a rewrite of how tessellation access chains are handled. The major change is to remove the implicit unflatten step inside access_chain which does not take into account the case where you load directly from a control point array variable. We defer unflatten step until OpLoad time instead. This fixes cases where we load array of {array,matrix,struct}. Removes the hacky path for MSL access chain index workaround.
Diffstat (limited to 'reference/shaders-ue4/asm')
-rw-r--r--reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc10
-rw-r--r--reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc6
-rw-r--r--reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc7
-rw-r--r--reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc5
-rw-r--r--reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese18
-rw-r--r--reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese36
-rw-r--r--reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese9
-rw-r--r--reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese25
8 files changed, 82 insertions, 34 deletions
diff --git a/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc b/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc
index 6fe14630..9add475f 100644
--- a/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/hs-incorrect-base-type.asm.tesc
@@ -308,7 +308,15 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
threadgroup_barrier(mem_flags::mem_threadgroup);
if (gl_InvocationID >= 3)
return;
- spvUnsafeArray<FBasePassVSToDS, 12> _282 = { FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[0].in_var_TEXCOORD11_centroid, gl_in[0].in_var_COLOR0, { gl_in[0].in_var_TEXCOORD0_0 }, gl_in[0].in_var_TEXCOORD4, gl_in[0].in_var_PRIMITIVE_ID, gl_in[0].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[0].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[1].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[1].in_var_COLOR0, { gl_in[1].in_var_TEXCOORD0_0 }, gl_in[1].in_var_TEXCOORD4, gl_in[1].in_var_PRIMITIVE_ID, gl_in[1].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[1].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[2].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[2].in_var_COLOR0, { gl_in[2].in_var_TEXCOORD0_0 }, gl_in[2].in_var_TEXCOORD4, gl_in[2].in_var_PRIMITIVE_ID, gl_in[2].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[2].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[3].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[3].in_var_COLOR0, { gl_in[3].in_var_TEXCOORD0_0 }, gl_in[3].in_var_TEXCOORD4, gl_in[3].in_var_PRIMITIVE_ID, gl_in[3].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[3].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[4].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[4].in_var_COLOR0, { gl_in[4].in_var_TEXCOORD0_0 }, gl_in[4].in_var_TEXCOORD4, gl_in[4].in_var_PRIMITIVE_ID, gl_in[4].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[4].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[5].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[5].in_var_COLOR0, { gl_in[5].in_var_TEXCOORD0_0 }, gl_in[5].in_var_TEXCOORD4, gl_in[5].in_var_PRIMITIVE_ID, gl_in[5].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[5].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[6].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[6].in_var_COLOR0, { gl_in[6].in_var_TEXCOORD0_0 }, gl_in[6].in_var_TEXCOORD4, gl_in[6].in_var_PRIMITIVE_ID, gl_in[6].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[6].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[7].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[7].in_var_COLOR0, { gl_in[7].in_var_TEXCOORD0_0 }, gl_in[7].in_var_TEXCOORD4, gl_in[7].in_var_PRIMITIVE_ID, gl_in[7].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[7].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[8].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[8].in_var_COLOR0, { gl_in[8].in_var_TEXCOORD0_0 }, gl_in[8].in_var_TEXCOORD4, gl_in[8].in_var_PRIMITIVE_ID, gl_in[8].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[8].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[9].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[9].in_var_COLOR0, { gl_in[9].in_var_TEXCOORD0_0 }, gl_in[9].in_var_TEXCOORD4, gl_in[9].in_var_PRIMITIVE_ID, gl_in[9].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[9].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[10].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[10].in_var_COLOR0, { gl_in[10].in_var_TEXCOORD0_0 }, gl_in[10].in_var_TEXCOORD4, gl_in[10].in_var_PRIMITIVE_ID, gl_in[10].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[10].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[11].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD11_centroid, gl_in[11].in_var_COLOR0, { gl_in[11].in_var_TEXCOORD0_0 }, gl_in[11].in_var_TEXCOORD4, gl_in[11].in_var_PRIMITIVE_ID, gl_in[11].in_var_LIGHTMAP_ID } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[11].in_var_VS_To_DS_Position } };
+ spvUnsafeArray<float4, 12> _142 = { gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 12> _143 = { gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<float4, 12> _144 = { gl_in[0].in_var_COLOR0, gl_in[1].in_var_COLOR0, gl_in[2].in_var_COLOR0, gl_in[3].in_var_COLOR0, gl_in[4].in_var_COLOR0, gl_in[5].in_var_COLOR0, gl_in[6].in_var_COLOR0, gl_in[7].in_var_COLOR0, gl_in[8].in_var_COLOR0, gl_in[9].in_var_COLOR0, gl_in[10].in_var_COLOR0, gl_in[11].in_var_COLOR0 };
+ spvUnsafeArray<spvUnsafeArray<float4, 12>, 1> _145 = { { gl_in[0].in_var_TEXCOORD0_0 }, { gl_in[1].in_var_TEXCOORD0_0 }, { gl_in[2].in_var_TEXCOORD0_0 }, { gl_in[3].in_var_TEXCOORD0_0 }, { gl_in[4].in_var_TEXCOORD0_0 }, { gl_in[5].in_var_TEXCOORD0_0 }, { gl_in[6].in_var_TEXCOORD0_0 }, { gl_in[7].in_var_TEXCOORD0_0 }, { gl_in[8].in_var_TEXCOORD0_0 }, { gl_in[9].in_var_TEXCOORD0_0 }, { gl_in[10].in_var_TEXCOORD0_0 }, { gl_in[11].in_var_TEXCOORD0_0 } };
+ spvUnsafeArray<float4, 12> _146 = { gl_in[0].in_var_TEXCOORD4, gl_in[1].in_var_TEXCOORD4, gl_in[2].in_var_TEXCOORD4, gl_in[3].in_var_TEXCOORD4, gl_in[4].in_var_TEXCOORD4, gl_in[5].in_var_TEXCOORD4, gl_in[6].in_var_TEXCOORD4, gl_in[7].in_var_TEXCOORD4, gl_in[8].in_var_TEXCOORD4, gl_in[9].in_var_TEXCOORD4, gl_in[10].in_var_TEXCOORD4, gl_in[11].in_var_TEXCOORD4 };
+ spvUnsafeArray<uint, 12> _147 = { gl_in[0].in_var_PRIMITIVE_ID, gl_in[1].in_var_PRIMITIVE_ID, gl_in[2].in_var_PRIMITIVE_ID, gl_in[3].in_var_PRIMITIVE_ID, gl_in[4].in_var_PRIMITIVE_ID, gl_in[5].in_var_PRIMITIVE_ID, gl_in[6].in_var_PRIMITIVE_ID, gl_in[7].in_var_PRIMITIVE_ID, gl_in[8].in_var_PRIMITIVE_ID, gl_in[9].in_var_PRIMITIVE_ID, gl_in[10].in_var_PRIMITIVE_ID, gl_in[11].in_var_PRIMITIVE_ID };
+ spvUnsafeArray<uint, 12> _148 = { gl_in[0].in_var_LIGHTMAP_ID, gl_in[1].in_var_LIGHTMAP_ID, gl_in[2].in_var_LIGHTMAP_ID, gl_in[3].in_var_LIGHTMAP_ID, gl_in[4].in_var_LIGHTMAP_ID, gl_in[5].in_var_LIGHTMAP_ID, gl_in[6].in_var_LIGHTMAP_ID, gl_in[7].in_var_LIGHTMAP_ID, gl_in[8].in_var_LIGHTMAP_ID, gl_in[9].in_var_LIGHTMAP_ID, gl_in[10].in_var_LIGHTMAP_ID, gl_in[11].in_var_LIGHTMAP_ID };
+ spvUnsafeArray<float4, 12> _257 = { gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position };
+ spvUnsafeArray<FBasePassVSToDS, 12> _282 = { FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[0], _143[0], _144[0], _145[0], _146[0], _147[0], _148[0] } }, FBasePassInterpolantsVSToDS{ { } }, _257[0] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[1], _143[1], _144[1], _145[1], _146[1], _147[1], _148[1] } }, FBasePassInterpolantsVSToDS{ { } }, _257[1] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[2], _143[2], _144[2], _145[2], _146[2], _147[2], _148[2] } }, FBasePassInterpolantsVSToDS{ { } }, _257[2] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[3], _143[3], _144[3], _145[3], _146[3], _147[3], _148[3] } }, FBasePassInterpolantsVSToDS{ { } }, _257[3] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[4], _143[4], _144[4], _145[4], _146[4], _147[4], _148[4] } }, FBasePassInterpolantsVSToDS{ { } }, _257[4] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[5], _143[5], _144[5], _145[5], _146[5], _147[5], _148[5] } }, FBasePassInterpolantsVSToDS{ { } }, _257[5] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[6], _143[6], _144[6], _145[6], _146[6], _147[6], _148[6] } }, FBasePassInterpolantsVSToDS{ { } }, _257[6] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[7], _143[7], _144[7], _145[7], _146[7], _147[7], _148[7] } }, FBasePassInterpolantsVSToDS{ { } }, _257[7] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[8], _143[8], _144[8], _145[8], _146[8], _147[8], _148[8] } }, FBasePassInterpolantsVSToDS{ { } }, _257[8] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[9], _143[9], _144[9], _145[9], _146[9], _147[9], _148[9] } }, FBasePassInterpolantsVSToDS{ { } }, _257[9] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[10], _143[10], _144[10], _145[10], _146[10], _147[10], _148[10] } }, FBasePassInterpolantsVSToDS{ { } }, _257[10] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _142[11], _143[11], _144[11], _145[11], _146[11], _147[11], _148[11] } }, FBasePassInterpolantsVSToDS{ { } }, _257[11] } };
spvUnsafeArray<FBasePassVSToDS, 12> param_var_I;
param_var_I = _282;
float4 _299 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
diff --git a/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc b/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc
index 346dbac5..a9eb611c 100644
--- a/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/hs-input-array-access.asm.tesc
@@ -350,7 +350,11 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
threadgroup_barrier(mem_flags::mem_threadgroup);
if (gl_InvocationID >= 3)
return;
- spvUnsafeArray<FHitProxyVSToDS, 12> _226 = { FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[0].in_var_TEXCOORD11_centroid } }, gl_in[0].in_var_VS_To_DS_Position, gl_in[0].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[1].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD11_centroid } }, gl_in[1].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[2].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD11_centroid } }, gl_in[2].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[3].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD11_centroid } }, gl_in[3].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[4].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD11_centroid } }, gl_in[4].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[5].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD11_centroid } }, gl_in[5].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[6].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD11_centroid } }, gl_in[6].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[7].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD11_centroid } }, gl_in[7].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[8].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD11_centroid } }, gl_in[8].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[9].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD11_centroid } }, gl_in[9].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[10].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD11_centroid } }, gl_in[10].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_VertexID }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[11].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD11_centroid } }, gl_in[11].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_VertexID } };
+ spvUnsafeArray<float4, 12> _138 = { gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 12> _139 = { gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<float4, 12> _188 = { gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position };
+ spvUnsafeArray<uint, 12> _189 = { gl_in[0].in_var_VS_To_DS_VertexID, gl_in[1].in_var_VS_To_DS_VertexID, gl_in[2].in_var_VS_To_DS_VertexID, gl_in[3].in_var_VS_To_DS_VertexID, gl_in[4].in_var_VS_To_DS_VertexID, gl_in[5].in_var_VS_To_DS_VertexID, gl_in[6].in_var_VS_To_DS_VertexID, gl_in[7].in_var_VS_To_DS_VertexID, gl_in[8].in_var_VS_To_DS_VertexID, gl_in[9].in_var_VS_To_DS_VertexID, gl_in[10].in_var_VS_To_DS_VertexID, gl_in[11].in_var_VS_To_DS_VertexID };
+ spvUnsafeArray<FHitProxyVSToDS, 12> _226 = { FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[0], _139[0] } }, _188[0], _189[0] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[1], _139[1] } }, _188[1], _189[1] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[2], _139[2] } }, _188[2], _189[2] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[3], _139[3] } }, _188[3], _189[3] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[4], _139[4] } }, _188[4], _189[4] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[5], _139[5] } }, _188[5], _189[5] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[6], _139[6] } }, _188[6], _189[6] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[7], _139[7] } }, _188[7], _189[7] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[8], _139[8] } }, _188[8], _189[8] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[9], _139[9] } }, _188[9], _189[9] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[10], _139[10] } }, _188[10], _189[10] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _138[11], _139[11] } }, _188[11], _189[11] } };
spvUnsafeArray<FHitProxyVSToDS, 12> param_var_I;
param_var_I = _226;
float4 _243 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
diff --git a/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc b/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc
index d527e1d1..ad49fe9d 100644
--- a/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/hs-texcoord-array.asm.tesc
@@ -326,7 +326,12 @@ kernel void main0(main0_in in [[stage_in]], constant type_View& View [[buffer(0)
threadgroup_barrier(mem_flags::mem_threadgroup);
if (gl_InvocationID >= 3)
return;
- spvUnsafeArray<FHitProxyVSToDS, 12> _226 = { FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[0].in_var_TEXCOORD11_centroid, gl_in[0].in_var_COLOR0, { gl_in[0].in_var_TEXCOORD0_0, gl_in[0].in_var_TEXCOORD0_1 } } }, gl_in[0].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[1].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[1].in_var_COLOR0, { gl_in[1].in_var_TEXCOORD0_0, gl_in[1].in_var_TEXCOORD0_1 } } }, gl_in[1].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[2].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[2].in_var_COLOR0, { gl_in[2].in_var_TEXCOORD0_0, gl_in[2].in_var_TEXCOORD0_1 } } }, gl_in[2].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[3].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[3].in_var_COLOR0, { gl_in[3].in_var_TEXCOORD0_0, gl_in[3].in_var_TEXCOORD0_1 } } }, gl_in[3].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[4].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[4].in_var_COLOR0, { gl_in[4].in_var_TEXCOORD0_0, gl_in[4].in_var_TEXCOORD0_1 } } }, gl_in[4].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[5].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[5].in_var_COLOR0, { gl_in[5].in_var_TEXCOORD0_0, gl_in[5].in_var_TEXCOORD0_1 } } }, gl_in[5].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[6].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[6].in_var_COLOR0, { gl_in[6].in_var_TEXCOORD0_0, gl_in[6].in_var_TEXCOORD0_1 } } }, gl_in[6].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[7].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[7].in_var_COLOR0, { gl_in[7].in_var_TEXCOORD0_0, gl_in[7].in_var_TEXCOORD0_1 } } }, gl_in[7].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[8].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[8].in_var_COLOR0, { gl_in[8].in_var_TEXCOORD0_0, gl_in[8].in_var_TEXCOORD0_1 } } }, gl_in[8].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[9].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[9].in_var_COLOR0, { gl_in[9].in_var_TEXCOORD0_0, gl_in[9].in_var_TEXCOORD0_1 } } }, gl_in[9].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[10].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[10].in_var_COLOR0, { gl_in[10].in_var_TEXCOORD0_0, gl_in[10].in_var_TEXCOORD0_1 } } }, gl_in[10].in_var_VS_To_DS_Position }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[11].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD11_centroid, gl_in[11].in_var_COLOR0, { gl_in[11].in_var_TEXCOORD0_0, gl_in[11].in_var_TEXCOORD0_1 } } }, gl_in[11].in_var_VS_To_DS_Position } };
+ spvUnsafeArray<float4, 12> _125 = { gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid, gl_in[3].in_var_TEXCOORD10_centroid, gl_in[4].in_var_TEXCOORD10_centroid, gl_in[5].in_var_TEXCOORD10_centroid, gl_in[6].in_var_TEXCOORD10_centroid, gl_in[7].in_var_TEXCOORD10_centroid, gl_in[8].in_var_TEXCOORD10_centroid, gl_in[9].in_var_TEXCOORD10_centroid, gl_in[10].in_var_TEXCOORD10_centroid, gl_in[11].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 12> _126 = { gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid, gl_in[3].in_var_TEXCOORD11_centroid, gl_in[4].in_var_TEXCOORD11_centroid, gl_in[5].in_var_TEXCOORD11_centroid, gl_in[6].in_var_TEXCOORD11_centroid, gl_in[7].in_var_TEXCOORD11_centroid, gl_in[8].in_var_TEXCOORD11_centroid, gl_in[9].in_var_TEXCOORD11_centroid, gl_in[10].in_var_TEXCOORD11_centroid, gl_in[11].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<float4, 12> _127 = { gl_in[0].in_var_COLOR0, gl_in[1].in_var_COLOR0, gl_in[2].in_var_COLOR0, gl_in[3].in_var_COLOR0, gl_in[4].in_var_COLOR0, gl_in[5].in_var_COLOR0, gl_in[6].in_var_COLOR0, gl_in[7].in_var_COLOR0, gl_in[8].in_var_COLOR0, gl_in[9].in_var_COLOR0, gl_in[10].in_var_COLOR0, gl_in[11].in_var_COLOR0 };
+ spvUnsafeArray<spvUnsafeArray<float2, 12>, 2> _128 = { { gl_in[0].in_var_TEXCOORD0_0, gl_in[0].in_var_TEXCOORD0_1 }, { gl_in[1].in_var_TEXCOORD0_0, gl_in[1].in_var_TEXCOORD0_1 }, { gl_in[2].in_var_TEXCOORD0_0, gl_in[2].in_var_TEXCOORD0_1 }, { gl_in[3].in_var_TEXCOORD0_0, gl_in[3].in_var_TEXCOORD0_1 }, { gl_in[4].in_var_TEXCOORD0_0, gl_in[4].in_var_TEXCOORD0_1 }, { gl_in[5].in_var_TEXCOORD0_0, gl_in[5].in_var_TEXCOORD0_1 }, { gl_in[6].in_var_TEXCOORD0_0, gl_in[6].in_var_TEXCOORD0_1 }, { gl_in[7].in_var_TEXCOORD0_0, gl_in[7].in_var_TEXCOORD0_1 }, { gl_in[8].in_var_TEXCOORD0_0, gl_in[8].in_var_TEXCOORD0_1 }, { gl_in[9].in_var_TEXCOORD0_0, gl_in[9].in_var_TEXCOORD0_1 }, { gl_in[10].in_var_TEXCOORD0_0, gl_in[10].in_var_TEXCOORD0_1 }, { gl_in[11].in_var_TEXCOORD0_0, gl_in[11].in_var_TEXCOORD0_1 } };
+ spvUnsafeArray<float4, 12> _201 = { gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position, gl_in[3].in_var_VS_To_DS_Position, gl_in[4].in_var_VS_To_DS_Position, gl_in[5].in_var_VS_To_DS_Position, gl_in[6].in_var_VS_To_DS_Position, gl_in[7].in_var_VS_To_DS_Position, gl_in[8].in_var_VS_To_DS_Position, gl_in[9].in_var_VS_To_DS_Position, gl_in[10].in_var_VS_To_DS_Position, gl_in[11].in_var_VS_To_DS_Position };
+ spvUnsafeArray<FHitProxyVSToDS, 12> _226 = { FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[0], _126[0], _127[0], _128[0] } }, _201[0] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[1], _126[1], _127[1], _128[1] } }, _201[1] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[2], _126[2], _127[2], _128[2] } }, _201[2] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[3], _126[3], _127[3], _128[3] } }, _201[3] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[4], _126[4], _127[4], _128[4] } }, _201[4] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[5], _126[5], _127[5], _128[5] } }, _201[5] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[6], _126[6], _127[6], _128[6] } }, _201[6] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[7], _126[7], _127[7], _128[7] } }, _201[7] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[8], _126[8], _127[8], _128[8] } }, _201[8] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[9], _126[9], _127[9], _128[9] } }, _201[9] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[10], _126[10], _127[10], _128[10] } }, _201[10] }, FHitProxyVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _125[11], _126[11], _127[11], _128[11] } }, _201[11] } };
spvUnsafeArray<FHitProxyVSToDS, 12> param_var_I;
param_var_I = _226;
float4 _243 = float4(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, 0.0);
diff --git a/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc b/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc
index c624175b..51a11a95 100644
--- a/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc
+++ b/reference/shaders-ue4/asm/tesc/tess-factor-must-be-threadgroup.asm.tesc
@@ -143,7 +143,10 @@ kernel void main0(main0_in in [[stage_in]], constant type_Primitive& Primitive [
threadgroup_barrier(mem_flags::mem_threadgroup);
if (gl_InvocationID >= 3)
return;
- spvUnsafeArray<FBasePassVSToDS, 3> _108 = { FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[0].in_var_TEXCOORD10_centroid, gl_in[0].in_var_TEXCOORD11_centroid } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[0].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[1].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD11_centroid } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[1].in_var_VS_To_DS_Position }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ gl_in[2].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD11_centroid } }, FBasePassInterpolantsVSToDS{ { } }, gl_in[2].in_var_VS_To_DS_Position } };
+ spvUnsafeArray<float4, 3> _87 = { gl_in[0].in_var_TEXCOORD10_centroid, gl_in[1].in_var_TEXCOORD10_centroid, gl_in[2].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 3> _88 = { gl_in[0].in_var_TEXCOORD11_centroid, gl_in[1].in_var_TEXCOORD11_centroid, gl_in[2].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<float4, 3> _101 = { gl_in[0].in_var_VS_To_DS_Position, gl_in[1].in_var_VS_To_DS_Position, gl_in[2].in_var_VS_To_DS_Position };
+ spvUnsafeArray<FBasePassVSToDS, 3> _108 = { FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _87[0], _88[0] } }, FBasePassInterpolantsVSToDS{ { } }, _101[0] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _87[1], _88[1] } }, FBasePassInterpolantsVSToDS{ { } }, _101[1] }, FBasePassVSToDS{ FVertexFactoryInterpolantsVSToDS{ FVertexFactoryInterpolantsVSToPS{ _87[2], _88[2] } }, FBasePassInterpolantsVSToDS{ { } }, _101[2] } };
spvUnsafeArray<FBasePassVSToDS, 3> param_var_I;
param_var_I = _108;
float3 _125 = Primitive.Primitive_NonUniformScale.xyz * float3x3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz, cross(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz, param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld0.xyz) * float3(param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.w), param_var_I[gl_InvocationID].FactoryInterpolants.InterpolantsVSToPS.TangentToWorld2.xyz);
diff --git a/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese b/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese
index 5c28e92a..4f8d9be7 100644
--- a/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese
+++ b/reference/shaders-ue4/asm/tese/ds-double-gl-in-deref.asm.tese
@@ -366,6 +366,12 @@ struct main0_patchIn
{
main0_out out = {};
spvUnsafeArray<float4, 1> out_var_TEXCOORD0 = {};
+ spvUnsafeArray<float4, 3> _117 = { patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 3> _118 = { patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<float4, 3> _119 = { patchIn.gl_in[0].in_var_COLOR0, patchIn.gl_in[1].in_var_COLOR0, patchIn.gl_in[2].in_var_COLOR0 };
+ spvUnsafeArray<spvUnsafeArray<float4, 3>, 1> _120 = { { patchIn.gl_in[0].in_var_TEXCOORD0_0 }, { patchIn.gl_in[1].in_var_TEXCOORD0_0 }, { patchIn.gl_in[2].in_var_TEXCOORD0_0 } };
+ spvUnsafeArray<spvUnsafeArray<float4, 3>, 3> _135 = { { patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }, { patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }, { patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 } };
+ spvUnsafeArray<float, 3> _136 = { patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier };
float _157 = gl_TessCoord.x * gl_TessCoord.x;
float _158 = gl_TessCoord.y * gl_TessCoord.y;
float _159 = gl_TessCoord.z * gl_TessCoord.z;
@@ -375,14 +381,14 @@ struct main0_patchIn
float4 _177 = float4(_157 * 3.0);
float4 _181 = float4(_158 * 3.0);
float4 _188 = float4(_159 * 3.0);
- float4 _202 = (((((((((((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[0]) * float4(_157)) * _165) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[0]) * float4(_158)) * _169)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[0]) * float4(_159)) * _174)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[1]) * _177) * _169)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[2]) * _181) * _165)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[1]) * _181) * _174)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[2]) * _188) * _169)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[1]) * _188) * _165)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[2]) * _177) * _174)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _174) * _165) * _169);
- float3 _226 = ((patchIn.gl_in[0].in_var_TEXCOORD10_centroid.xyz * float3(gl_TessCoord.x)) + (patchIn.gl_in[1].in_var_TEXCOORD10_centroid.xyz * float3(gl_TessCoord.y))).xyz + (patchIn.gl_in[2].in_var_TEXCOORD10_centroid.xyz * float3(gl_TessCoord.z));
- float4 _229 = ((patchIn.gl_in[0].in_var_TEXCOORD11_centroid * _165) + (patchIn.gl_in[1].in_var_TEXCOORD11_centroid * _169)) + (patchIn.gl_in[2].in_var_TEXCOORD11_centroid * _174);
- float4 _231 = ((patchIn.gl_in[0].in_var_COLOR0 * _165) + (patchIn.gl_in[1].in_var_COLOR0 * _169)) + (patchIn.gl_in[2].in_var_COLOR0 * _174);
- float4 _233 = (((spvUnsafeArray<float4, 1>({ patchIn.gl_in[0].in_var_TEXCOORD0_0 })[0]) * _165) + ((spvUnsafeArray<float4, 1>({ patchIn.gl_in[1].in_var_TEXCOORD0_0 })[0]) * _169)) + ((spvUnsafeArray<float4, 1>({ patchIn.gl_in[2].in_var_TEXCOORD0_0 })[0]) * _174);
+ float4 _202 = ((((((((((_135[0][0] * float4(_157)) * _165) + ((_135[1][0] * float4(_158)) * _169)) + ((_135[2][0] * float4(_159)) * _174)) + ((_135[0][1] * _177) * _169)) + ((_135[0][2] * _181) * _165)) + ((_135[1][1] * _181) * _174)) + ((_135[1][2] * _188) * _169)) + ((_135[2][1] * _188) * _165)) + ((_135[2][2] * _177) * _174)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _174) * _165) * _169);
+ float3 _226 = ((_117[0].xyz * float3(gl_TessCoord.x)) + (_117[1].xyz * float3(gl_TessCoord.y))).xyz + (_117[2].xyz * float3(gl_TessCoord.z));
+ float4 _229 = ((_118[0] * _165) + (_118[1] * _169)) + (_118[2] * _174);
+ float4 _231 = ((_119[0] * _165) + (_119[1] * _169)) + (_119[2] * _174);
+ float4 _233 = ((_120[0][0] * _165) + (_120[1][0] * _169)) + (_120[2][0] * _174);
spvUnsafeArray<float4, 1> _234 = { _233 };
float3 _236 = _229.xyz;
- float3 _264 = _202.xyz + (((float3((Material_Texture2D_3.sample(Material_Texture2D_3Sampler, (float2(View.View_GameTime * 0.20000000298023223876953125, View.View_GameTime * (-0.699999988079071044921875)) + (_233.zw * float2(1.0, 2.0))), level(-1.0)).x * 10.0) * (1.0 - _231.x)) * _236) * float3(0.5)) * float3(((patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier * gl_TessCoord.x) + (patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier * gl_TessCoord.y)) + (patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier * gl_TessCoord.z)));
+ float3 _264 = _202.xyz + (((float3((Material_Texture2D_3.sample(Material_Texture2D_3Sampler, (float2(View.View_GameTime * 0.20000000298023223876953125, View.View_GameTime * (-0.699999988079071044921875)) + (_233.zw * float2(1.0, 2.0))), level(-1.0)).x * 10.0) * (1.0 - _231.x)) * _236) * float3(0.5)) * float3(((_136[0] * gl_TessCoord.x) + (_136[1] * gl_TessCoord.y)) + (_136[2] * gl_TessCoord.z)));
float4x4 _116 = ShadowDepthPass.ShadowDepthPass_ViewMatrix;
float4 _270 = ShadowDepthPass.ShadowDepthPass_ProjectionMatrix * float4(_264.x, _264.y, _264.z, _202.w);
float4 _281;
diff --git a/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese b/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese
index 5f9adc7d..9691b8e2 100644
--- a/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese
+++ b/reference/shaders-ue4/asm/tese/ds-patch-input-fixes.asm.tese
@@ -277,6 +277,18 @@ struct main0_patchIn
[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_View& View [[buffer(0)]], constant type_Material& Material [[buffer(1)]], texture3d<float> View_GlobalDistanceFieldTexture0 [[texture(0)]], texture3d<float> View_GlobalDistanceFieldTexture1 [[texture(1)]], texture3d<float> View_GlobalDistanceFieldTexture2 [[texture(2)]], texture3d<float> View_GlobalDistanceFieldTexture3 [[texture(3)]], sampler View_GlobalDistanceFieldSampler0 [[sampler(0)]], float3 gl_TessCoord [[position_in_patch]])
{
main0_out out = {};
+ spvUnsafeArray<float4, 3> _120 = { patchIn.gl_in[0].in_var_TEXCOORD6, patchIn.gl_in[1].in_var_TEXCOORD6, patchIn.gl_in[2].in_var_TEXCOORD6 };
+ spvUnsafeArray<float4, 3> _121 = { patchIn.gl_in[0].in_var_TEXCOORD8, patchIn.gl_in[1].in_var_TEXCOORD8, patchIn.gl_in[2].in_var_TEXCOORD8 };
+ spvUnsafeArray<float4, 3> _128 = { patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 3> _129 = { patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<spvUnsafeArray<float4, 3>, 3> _136 = { { patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }, { patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }, { patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 } };
+ spvUnsafeArray<float, 3> _137 = { patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier, patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier };
+ spvUnsafeArray<float4, 3> _138 = { patchIn.gl_in[0].in_var_PN_DominantVertex1, patchIn.gl_in[1].in_var_PN_DominantVertex1, patchIn.gl_in[2].in_var_PN_DominantVertex1 };
+ spvUnsafeArray<float3, 3> _139 = { patchIn.gl_in[0].in_var_PN_DominantVertex2, patchIn.gl_in[1].in_var_PN_DominantVertex2, patchIn.gl_in[2].in_var_PN_DominantVertex2 };
+ spvUnsafeArray<float4, 3> _146 = { patchIn.gl_in[0].in_var_PN_DominantEdge2, patchIn.gl_in[1].in_var_PN_DominantEdge2, patchIn.gl_in[2].in_var_PN_DominantEdge2 };
+ spvUnsafeArray<float4, 3> _147 = { patchIn.gl_in[0].in_var_PN_DominantEdge3, patchIn.gl_in[1].in_var_PN_DominantEdge3, patchIn.gl_in[2].in_var_PN_DominantEdge3 };
+ spvUnsafeArray<float3, 3> _148 = { patchIn.gl_in[0].in_var_PN_DominantEdge4, patchIn.gl_in[1].in_var_PN_DominantEdge4, patchIn.gl_in[2].in_var_PN_DominantEdge4 };
+ spvUnsafeArray<float3, 3> _149 = { patchIn.gl_in[0].in_var_PN_DominantEdge5, patchIn.gl_in[1].in_var_PN_DominantEdge5, patchIn.gl_in[2].in_var_PN_DominantEdge5 };
float _190 = gl_TessCoord.x * gl_TessCoord.x;
float _191 = gl_TessCoord.y * gl_TessCoord.y;
float _192 = gl_TessCoord.z * gl_TessCoord.z;
@@ -286,12 +298,12 @@ struct main0_patchIn
float4 _210 = float4(_190 * 3.0);
float4 _214 = float4(_191 * 3.0);
float4 _221 = float4(_192 * 3.0);
- float4 _235 = (((((((((((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[0]) * float4(_190)) * _198) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[0]) * float4(_191)) * _202)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[0]) * float4(_192)) * _207)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[1]) * _210) * _202)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[2]) * _214) * _198)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[1]) * _214) * _207)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[2]) * _221) * _202)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[1]) * _221) * _198)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[2]) * _210) * _207)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _207) * _198) * _202);
+ float4 _235 = ((((((((((_136[0][0] * float4(_190)) * _198) + ((_136[1][0] * float4(_191)) * _202)) + ((_136[2][0] * float4(_192)) * _207)) + ((_136[0][1] * _210) * _202)) + ((_136[0][2] * _214) * _198)) + ((_136[1][1] * _214) * _207)) + ((_136[1][2] * _221) * _202)) + ((_136[2][1] * _221) * _198)) + ((_136[2][2] * _210) * _207)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _207) * _198) * _202);
float3 _237 = float3(gl_TessCoord.x);
float3 _240 = float3(gl_TessCoord.y);
float3 _254 = float3(gl_TessCoord.z);
- float3 _256 = ((patchIn.gl_in[0].in_var_TEXCOORD10_centroid.xyz * _237) + (patchIn.gl_in[1].in_var_TEXCOORD10_centroid.xyz * _240)).xyz + (patchIn.gl_in[2].in_var_TEXCOORD10_centroid.xyz * _254);
- float4 _259 = ((patchIn.gl_in[0].in_var_TEXCOORD11_centroid * _198) + (patchIn.gl_in[1].in_var_TEXCOORD11_centroid * _202)) + (patchIn.gl_in[2].in_var_TEXCOORD11_centroid * _207);
+ float3 _256 = ((_128[0].xyz * _237) + (_128[1].xyz * _240)).xyz + (_128[2].xyz * _254);
+ float4 _259 = ((_129[0] * _198) + (_129[1] * _202)) + (_129[2] * _207);
float3 _264 = _235.xyz;
float3 _265 = _256.xyz;
float3 _266 = _259.xyz;
@@ -308,8 +320,8 @@ struct main0_patchIn
float _363 = float(int((_282 + _285) == 2.0));
float _367 = float(int((_285 + _279) == 2.0));
float _370 = float(int(_286 == 2.0));
- _387 = ((float4(_363) * patchIn.gl_in[0].in_var_PN_DominantVertex1) + (float4(_367) * patchIn.gl_in[1].in_var_PN_DominantVertex1)) + (float4(_370) * patchIn.gl_in[2].in_var_PN_DominantVertex1);
- _388 = ((float3(_363) * patchIn.gl_in[0].in_var_PN_DominantVertex2) + (float3(_367) * patchIn.gl_in[1].in_var_PN_DominantVertex2)) + (float3(_370) * patchIn.gl_in[2].in_var_PN_DominantVertex2);
+ _387 = ((float4(_363) * _138[0]) + (float4(_367) * _138[1])) + (float4(_370) * _138[2]);
+ _388 = ((float3(_363) * _139[0]) + (float3(_367) * _139[1])) + (float3(_370) * _139[2]);
}
else
{
@@ -320,13 +332,13 @@ struct main0_patchIn
float4 _304 = float4(_279);
float4 _306 = float4(_282);
float4 _309 = float4(_285);
- float4 _311 = ((_304 * patchIn.gl_in[0].in_var_PN_DominantEdge2) + (_306 * patchIn.gl_in[1].in_var_PN_DominantEdge2)) + (_309 * patchIn.gl_in[2].in_var_PN_DominantEdge2);
- float4 _316 = ((_304 * patchIn.gl_in[0].in_var_PN_DominantEdge3) + (_306 * patchIn.gl_in[1].in_var_PN_DominantEdge3)) + (_309 * patchIn.gl_in[2].in_var_PN_DominantEdge3);
+ float4 _311 = ((_304 * _146[0]) + (_306 * _146[1])) + (_309 * _146[2]);
+ float4 _316 = ((_304 * _147[0]) + (_306 * _147[1])) + (_309 * _147[2]);
float3 _331 = float3(_279);
float3 _333 = float3(_282);
float3 _336 = float3(_285);
- float3 _338 = ((_331 * patchIn.gl_in[0].in_var_PN_DominantEdge4) + (_333 * patchIn.gl_in[1].in_var_PN_DominantEdge4)) + (_336 * patchIn.gl_in[2].in_var_PN_DominantEdge4);
- float3 _343 = ((_331 * patchIn.gl_in[0].in_var_PN_DominantEdge5) + (_333 * patchIn.gl_in[1].in_var_PN_DominantEdge5)) + (_336 * patchIn.gl_in[2].in_var_PN_DominantEdge5);
+ float3 _338 = ((_331 * _148[0]) + (_333 * _148[1])) + (_336 * _148[2]);
+ float3 _343 = ((_331 * _149[0]) + (_333 * _149[1])) + (_336 * _149[2]);
_358 = ((_304 * ((_202 * _311) + (_207 * _316))) + (_306 * ((_207 * _311) + (_198 * _316)))) + (_309 * ((_198 * _311) + (_202 * _316)));
_359 = ((_331 * ((_240 * _338) + (_254 * _343))) + (_333 * ((_254 * _338) + (_237 * _343)))) + (_336 * ((_237 * _338) + (_240 * _343)));
}
@@ -388,13 +400,13 @@ struct main0_patchIn
}
_547 = _535;
}
- float3 _565 = _264 + ((_398[2] * float3(fast::min(_547 + Material.Material_ScalarExpressions[0].z, 0.0) * Material.Material_ScalarExpressions[0].w)) * float3(((patchIn.gl_in[0].in_var_PN_WorldDisplacementMultiplier * gl_TessCoord.x) + (patchIn.gl_in[1].in_var_PN_WorldDisplacementMultiplier * gl_TessCoord.y)) + (patchIn.gl_in[2].in_var_PN_WorldDisplacementMultiplier * gl_TessCoord.z)));
+ float3 _565 = _264 + ((_398[2] * float3(fast::min(_547 + Material.Material_ScalarExpressions[0].z, 0.0) * Material.Material_ScalarExpressions[0].w)) * float3(((_137[0] * gl_TessCoord.x) + (_137[1] * gl_TessCoord.y)) + (_137[2] * gl_TessCoord.z)));
float4 _574 = View.View_TranslatedWorldToClip * float4(_565.x, _565.y, _565.z, _235.w);
float4 _579 = _574;
_579.z = _574.z + (0.001000000047497451305389404296875 * _574.w);
out.gl_Position = _579;
- out.out_var_TEXCOORD6 = ((patchIn.gl_in[0].in_var_TEXCOORD6 * _198) + (patchIn.gl_in[1].in_var_TEXCOORD6 * _202)) + (patchIn.gl_in[2].in_var_TEXCOORD6 * _207);
- out.out_var_TEXCOORD7 = ((patchIn.gl_in[0].in_var_TEXCOORD8 * _198) + (patchIn.gl_in[1].in_var_TEXCOORD8 * _202)) + (patchIn.gl_in[2].in_var_TEXCOORD8 * _207);
+ out.out_var_TEXCOORD6 = ((_120[0] * _198) + (_120[1] * _202)) + (_120[2] * _207);
+ out.out_var_TEXCOORD7 = ((_121[0] * _198) + (_121[1] * _202)) + (_121[2] * _207);
out.out_var_TEXCOORD10_centroid = float4(_256.x, _256.y, _256.z, _118.w);
out.out_var_TEXCOORD11_centroid = _259;
out.gl_ClipDistance[0u] = dot(View.View_GlobalClippingPlane, float4(_565.xyz - float3(View.View_PreViewTranslation), 1.0));
diff --git a/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese b/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese
index a6101846..5e93b3d8 100644
--- a/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese
+++ b/reference/shaders-ue4/asm/tese/ds-patch-inputs.asm.tese
@@ -174,6 +174,9 @@ struct main0_patchIn
[[ patch(triangle, 0) ]] vertex main0_out main0(main0_patchIn patchIn [[stage_in]], constant type_ShadowDepthPass& ShadowDepthPass [[buffer(0)]], float3 gl_TessCoord [[position_in_patch]])
{
main0_out out = {};
+ spvUnsafeArray<float4, 3> _93 = { patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 3> _94 = { patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<spvUnsafeArray<float4, 3>, 3> _101 = { { patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 }, { patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 }, { patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 } };
float _119 = gl_TessCoord.x * gl_TessCoord.x;
float _120 = gl_TessCoord.y * gl_TessCoord.y;
float _121 = gl_TessCoord.z * gl_TessCoord.z;
@@ -183,9 +186,9 @@ struct main0_patchIn
float4 _139 = float4(_119 * 3.0);
float4 _143 = float4(_120 * 3.0);
float4 _150 = float4(_121 * 3.0);
- float4 _164 = (((((((((((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[0]) * float4(_119)) * _127) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[0]) * float4(_120)) * _131)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[0]) * float4(_121)) * _136)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[1]) * _139) * _131)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[0].in_var_PN_POSITION_0, patchIn.gl_in[0].in_var_PN_POSITION_1, patchIn.gl_in[0].in_var_PN_POSITION_2 })[2]) * _143) * _127)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[1]) * _143) * _136)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[1].in_var_PN_POSITION_0, patchIn.gl_in[1].in_var_PN_POSITION_1, patchIn.gl_in[1].in_var_PN_POSITION_2 })[2]) * _150) * _131)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[1]) * _150) * _127)) + (((spvUnsafeArray<float4, 3>({ patchIn.gl_in[2].in_var_PN_POSITION_0, patchIn.gl_in[2].in_var_PN_POSITION_1, patchIn.gl_in[2].in_var_PN_POSITION_2 })[2]) * _139) * _136)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _136) * _127) * _131);
- float3 _179 = ((patchIn.gl_in[0].in_var_TEXCOORD10_centroid.xyz * float3(gl_TessCoord.x)) + (patchIn.gl_in[1].in_var_TEXCOORD10_centroid.xyz * float3(gl_TessCoord.y))).xyz + (patchIn.gl_in[2].in_var_TEXCOORD10_centroid.xyz * float3(gl_TessCoord.z));
- float4 _182 = ((patchIn.gl_in[0].in_var_TEXCOORD11_centroid * _127) + (patchIn.gl_in[1].in_var_TEXCOORD11_centroid * _131)) + (patchIn.gl_in[2].in_var_TEXCOORD11_centroid * _136);
+ float4 _164 = ((((((((((_101[0][0] * float4(_119)) * _127) + ((_101[1][0] * float4(_120)) * _131)) + ((_101[2][0] * float4(_121)) * _136)) + ((_101[0][1] * _139) * _131)) + ((_101[0][2] * _143) * _127)) + ((_101[1][1] * _143) * _136)) + ((_101[1][2] * _150) * _131)) + ((_101[2][1] * _150) * _127)) + ((_101[2][2] * _139) * _136)) + ((((patchIn.in_var_PN_POSITION9 * float4(6.0)) * _136) * _127) * _131);
+ float3 _179 = ((_93[0].xyz * float3(gl_TessCoord.x)) + (_93[1].xyz * float3(gl_TessCoord.y))).xyz + (_93[2].xyz * float3(gl_TessCoord.z));
+ float4 _182 = ((_94[0] * _127) + (_94[1] * _131)) + (_94[2] * _136);
float4x4 _92 = ShadowDepthPass.ShadowDepthPass_ViewMatrix;
float4 _189 = ShadowDepthPass.ShadowDepthPass_ProjectionMatrix * float4(_164.x, _164.y, _164.z, _164.w);
float4 _200;
diff --git a/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese b/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese
index 3b845580..228b1720 100644
--- a/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese
+++ b/reference/shaders-ue4/asm/tese/ds-texcoord-array.asm.tese
@@ -266,14 +266,21 @@ struct main0_patchIn
{
main0_out out = {};
spvUnsafeArray<float4, 1> out_var_TEXCOORD0 = {};
+ spvUnsafeArray<float4, 3> _77 = { patchIn.gl_in[0].in_var_TEXCOORD10_centroid, patchIn.gl_in[1].in_var_TEXCOORD10_centroid, patchIn.gl_in[2].in_var_TEXCOORD10_centroid };
+ spvUnsafeArray<float4, 3> _78 = { patchIn.gl_in[0].in_var_TEXCOORD11_centroid, patchIn.gl_in[1].in_var_TEXCOORD11_centroid, patchIn.gl_in[2].in_var_TEXCOORD11_centroid };
+ spvUnsafeArray<spvUnsafeArray<float4, 3>, 1> _79 = { { patchIn.gl_in[0].in_var_TEXCOORD0_0 }, { patchIn.gl_in[1].in_var_TEXCOORD0_0 }, { patchIn.gl_in[2].in_var_TEXCOORD0_0 } };
+ spvUnsafeArray<float4, 3> _80 = { patchIn.gl_in[0].in_var_COLOR1, patchIn.gl_in[1].in_var_COLOR1, patchIn.gl_in[2].in_var_COLOR1 };
+ spvUnsafeArray<float4, 3> _81 = { patchIn.gl_in[0].in_var_COLOR2, patchIn.gl_in[1].in_var_COLOR2, patchIn.gl_in[2].in_var_COLOR2 };
+ spvUnsafeArray<float4, 3> _97 = { patchIn.gl_in[0].in_var_VS_To_DS_Position, patchIn.gl_in[1].in_var_VS_To_DS_Position, patchIn.gl_in[2].in_var_VS_To_DS_Position };
+ spvUnsafeArray<float3, 3> _98 = { patchIn.gl_in[0].in_var_TEXCOORD7, patchIn.gl_in[1].in_var_TEXCOORD7, patchIn.gl_in[2].in_var_TEXCOORD7 };
float4 _111 = float4(gl_TessCoord.x);
float4 _113 = float4(gl_TessCoord.y);
float4 _116 = float4(gl_TessCoord.z);
- float4 _118 = ((patchIn.gl_in[0].in_var_VS_To_DS_Position * _111) + (patchIn.gl_in[1].in_var_VS_To_DS_Position * _113)) + (patchIn.gl_in[2].in_var_VS_To_DS_Position * _116);
+ float4 _118 = ((_97[0] * _111) + (_97[1] * _113)) + (_97[2] * _116);
spvUnsafeArray<float4, 1> _72;
- _72 = { patchIn.gl_in[0].in_var_TEXCOORD0_0 };
+ _72 = _79[0];
spvUnsafeArray<float4, 1> _71;
- _71 = { patchIn.gl_in[1].in_var_TEXCOORD0_0 };
+ _71 = _79[1];
float3 _120 = float3(gl_TessCoord.x);
float3 _123 = float3(gl_TessCoord.y);
spvUnsafeArray<float4, 1> _73;
@@ -286,9 +293,9 @@ struct main0_patchIn
spvUnsafeArray<float4, 1> _75;
_75 = _73;
spvUnsafeArray<float4, 1> _74;
- _74 = { patchIn.gl_in[2].in_var_TEXCOORD0_0 };
+ _74 = _79[2];
float3 _155 = float3(gl_TessCoord.z);
- float3 _157 = ((patchIn.gl_in[0].in_var_TEXCOORD10_centroid.xyz * _120) + (patchIn.gl_in[1].in_var_TEXCOORD10_centroid.xyz * _123)).xyz + (patchIn.gl_in[2].in_var_TEXCOORD10_centroid.xyz * _155);
+ float3 _157 = ((_77[0].xyz * _120) + (_77[1].xyz * _123)).xyz + (_77[2].xyz * _155);
spvUnsafeArray<float4, 1> _76;
for (int _164 = 0; _164 < 1; )
{
@@ -298,12 +305,12 @@ struct main0_patchIn
}
float4 _181 = float4(_118.x, _118.y, _118.z, _118.w);
out.out_var_TEXCOORD10_centroid = float4(_157.x, _157.y, _157.z, _68.w);
- out.out_var_TEXCOORD11_centroid = ((patchIn.gl_in[0].in_var_TEXCOORD11_centroid * _111) + (patchIn.gl_in[1].in_var_TEXCOORD11_centroid * _113)) + (patchIn.gl_in[2].in_var_TEXCOORD11_centroid * _116);
+ out.out_var_TEXCOORD11_centroid = ((_78[0] * _111) + (_78[1] * _113)) + (_78[2] * _116);
out_var_TEXCOORD0 = _76;
- out.out_var_COLOR1 = ((patchIn.gl_in[0].in_var_COLOR1 * _111) + (patchIn.gl_in[1].in_var_COLOR1 * _113)) + (patchIn.gl_in[2].in_var_COLOR1 * _116);
- out.out_var_COLOR2 = ((patchIn.gl_in[0].in_var_COLOR2 * _111) + (patchIn.gl_in[1].in_var_COLOR2 * _113)) + (patchIn.gl_in[2].in_var_COLOR2 * _116);
+ out.out_var_COLOR1 = ((_80[0] * _111) + (_80[1] * _113)) + (_80[2] * _116);
+ out.out_var_COLOR2 = ((_81[0] * _111) + (_81[1] * _113)) + (_81[2] * _116);
out.out_var_TEXCOORD6 = _181;
- out.out_var_TEXCOORD7 = ((patchIn.gl_in[0].in_var_TEXCOORD7 * _120) + (patchIn.gl_in[1].in_var_TEXCOORD7 * _123)) + (patchIn.gl_in[2].in_var_TEXCOORD7 * _155);
+ out.out_var_TEXCOORD7 = ((_98[0] * _120) + (_98[1] * _123)) + (_98[2] * _155);
out.gl_Position = View.View_TranslatedWorldToClip * _181;
out.out_var_TEXCOORD0_0 = out_var_TEXCOORD0[0];
return out;