//shadows
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.16 on Sat Aug 15 16:07:28 2020
//
//
// Buffer Definitions:
//
// cbuffer Civ6ParticleDynamicConsts
// {
//
//   float g_fInvSoftParticleFadeDistance;// Offset:    0 Size:     4 [unused]
//   float g_fSoftParticleFadeBias;     // Offset:    4 Size:     4 [unused]
//   float g_fDepthBias;                // Offset:    8 Size:     4 [unused]
//   float g_fForceZToZero;             // Offset:   12 Size:     4 [unused]
//   int g_i;                           // Offset:   16 Size:     4
//
// }
//
// cbuffer Civ6ForkDefaultShaderGlobal
// {
//
//   row_major float4x4 g_aViewProj[13];// Offset:    0 Size:   832
//   row_major float4x4 g_aView[13];    // Offset:  832 Size:   832 [unused]
//   row_major float4x4 g_aNDCToWorld[13];// Offset: 1664 Size:   832 [unused]
//   row_major float4x4 g_aShadowMapSamplingMatrix[13];// Offset: 2496 Size:   832 [unused]
//   float4 g_aRenderTargetDimensions[13];// Offset: 3328 Size:   208 [unused]
//   float3 g_vLightDirection;          // Offset: 3536 Size:    12 [unused]
//   float4 g_ShadowMapDimensions;      // Offset: 3552 Size:    16 [unused]
//   int g_bShadowsEnabled;             // Offset: 3568 Size:     4 [unused]
//   float2 g_vNearFar;                 // Offset: 3572 Size:     8 [unused]
//   float3 g_vLightColor;              // Offset: 3584 Size:    12 [unused]
//   float4 g_EnvSHRadiance[7];         // Offset: 3600 Size:   112 [unused]
//   float g_SceneExposure;             // Offset: 3712 Size:     4 [unused]
//   float g_IntermediateExposure;      // Offset: 3716 Size:     4 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// Civ6ParticleDynamicConsts         cbuffer      NA          NA    0        1
// Civ6ForkDefaultShaderGlobal       cbuffer      NA          NA    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xyzw
// TEXCOORD                 1   xyzw        1     NONE   float   xyzw
// TEXCOORD                 2   xy          2     NONE   float   xy
// COLOR                    0   xyzw        3     NONE   float   xyzw
// COLOR                    1   xyzw        4     NONE   float   xyzw
// POSITION                 0   xyzw        5     NONE   float   xyz
// TEXCOORD                 3   xyz         6     NONE   float   xyz
// TANGENT                  0   xyz         7     NONE   float   xyz
// BINORMAL                 0   xyz         8     NONE   float   xyz
// NORMAL                   0   xyz         9     NONE   float   xyz
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// COLOR                    0   xyzw        1     NONE   float   xyzw
// TEXCOORD                 0   xy          2     NONE   float   xy
// TEXCOORD                 1     zw        2     NONE   float     zw
// TEXCOORD                 2   xyz         3     NONE   float   xyz
// TEXCOORD                 3   xyz         4     NONE   float   xyz
//
vs_5_0

dcl_constantbuffer cb12[0], immediateIndexed

dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[2], immediateIndexed
dcl_constantbuffer cb1[52], dynamicIndexed
dcl_input v0.xyzw
dcl_input v1.xyzw
dcl_input v2.xy
dcl_input v3.xyzw
dcl_input v4.xyzw
dcl_input v5.xyz
dcl_input v6.xyz
dcl_input v7.xyz
dcl_input v8.xyz
dcl_input v9.xyz
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xy
dcl_output o2.zw
dcl_output o3.xyz
dcl_output o4.xyz
dcl_temps 7
mul r0.xy, v1.zzzz, v1.yxyy
mul r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mul r0.zw, v6.zzzz, v6.yyyz
add r1.x, v2.y, v2.x
sincos r1.x, r2.x, r1.x
add r1.y, -r2.x, l(1.000000)
mad r3.w, r0.w, r1.y, r2.x
mul r2.yzw, r1.xxxx, v6.yyzx
mad r3.z, r0.z, r1.y, r2.w
mad r4.z, r0.z, r1.y, -r2.w
mul r5.xyzw, v6.xyzy, v6.xxxy
mad r3.xy, r5.zyzz, r1.yyyy, -r2.yzyy
mad r4.xy, r5.yzyy, r1.yyyy, r2.zyzz
mad r5.xy, r5.xwxx, r1.yyyy, r2.xxxx
dp3 r6.z, v7.xyzx, r3.xzwx
mov r5.z, r3.y
mov r5.w, r4.y
dp3 r6.x, v7.xyzx, r5.xzwx
mov r4.w, r5.y
dp3 r6.y, v7.xzyx, r4.xzwx
mad r0.xzw, r6.xxyz, r0.xxxx, v5.xxyz
dp3 r6.z, v8.xyzx, r3.xzwx
dp3 r3.z, v9.xyzx, r3.xzwx
dp3 r6.x, v8.xyzx, r5.xzwx
dp3 r3.x, v9.xyzx, r5.xzwx
dp3 r6.y, v8.xzyx, r4.xzwx
dp3 r3.y, v9.xzyx, r4.xzwx
mad r0.xyz, r6.xyzx, r0.yyyy, r0.xzwx
mad r0.xyz, r3.xyzx, v1.wwww, r0.xyzx
ishl r0.w, cb0[1].x, l(2)
mul r3.xyzw, r0.yyyy, cb1[r0.w + 1].xyzw
mad r3.xyzw, r0.xxxx, cb1[r0.w + 0].xyzw, r3.xyzw
mad r3.xyzw, r0.zzzz, cb1[r0.w + 2].xyzw, r3.xyzw
mov o3.xyz, r0.xyzx
add r0.xyzw, r3.xyzw, cb1[r0.w + 3].xyzw
max r0.z, r0.z, l(0.000000)
min o0.z, r0.w, r0.z
mov o0.xyw, r0.xyxw
mul o1.xyzw, v3.xyzw, v4.xyzw
mov o2.z, r1.x
mov o2.w, r2.x
add o2.xy, v0.zwzz, v0.xyxx
mov o4.xyz, l(0,0,0,0)
ret
// Approximately 44 instruction slots used

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
