123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- SamplerState g_sSamp;
- RWTexture1D <float> g_tTex1df1;
- RWTexture1D <int> g_tTex1di1;
- RWTexture1D <uint> g_tTex1du1;
- RWTexture2D <float> g_tTex2df1;
- RWTexture2D <int> g_tTex2di1;
- RWTexture2D <uint> g_tTex2du1;
- RWTexture3D <float> g_tTex3df1;
- RWTexture3D <int> g_tTex3di1;
- RWTexture3D <uint> g_tTex3du1;
- RWTexture1DArray <float> g_tTex1df1a;
- RWTexture1DArray <int> g_tTex1di1a;
- RWTexture1DArray <uint> g_tTex1du1a;
- RWTexture2DArray <float> g_tTex2df1a;
- RWTexture2DArray <int> g_tTex2di1a;
- RWTexture2DArray <uint> g_tTex2du1a;
- RWBuffer <float> g_tBuffF;
- RWBuffer <int> g_tBuffI;
- RWBuffer <uint> g_tBuffU;
- struct PS_OUTPUT
- {
- float4 Color : SV_Target0;
- };
- uniform uint u1;
- uniform uint2 u2;
- uniform uint3 u3;
- uniform uint u1b;
- uniform uint u1c;
- uniform int i1;
- uniform int2 i2;
- uniform int3 i3;
- uniform int i1b;
- uniform int i1c;
- PS_OUTPUT main()
- {
- uint out_u1;
- int out_i1;
- // 1D int
- InterlockedAdd(g_tTex1di1[i1], i1b);
- InterlockedAdd(g_tTex1di1[i1], i1, out_i1);
- InterlockedAnd(g_tTex1di1[i1], i1b);
- InterlockedAnd(g_tTex1di1[i1], i1, out_i1);
- InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1);
- InterlockedExchange(g_tTex1di1[i1], i1, out_i1);
- InterlockedMax(g_tTex1di1[i1], i1b);
- InterlockedMax(g_tTex1di1[i1], i1, out_i1);
- InterlockedMin(g_tTex1di1[i1], i1b);
- InterlockedMin(g_tTex1di1[i1], i1, out_i1);
- InterlockedOr(g_tTex1di1[i1], i1b);
- InterlockedOr(g_tTex1di1[i1], i1, out_i1);
- InterlockedXor(g_tTex1di1[i1], i1b);
- InterlockedXor(g_tTex1di1[i1], i1, out_i1);
- // 1D uint
- InterlockedAdd(g_tTex1du1[u1], u1);
- InterlockedAdd(g_tTex1du1[u1], u1, out_u1);
- InterlockedAnd(g_tTex1du1[u1], u1);
- InterlockedAnd(g_tTex1du1[u1], u1, out_u1);
- InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1);
- InterlockedExchange(g_tTex1du1[u1], u1, out_u1);
- InterlockedMax(g_tTex1du1[u1], u1);
- InterlockedMax(g_tTex1du1[u1], u1, out_u1);
- InterlockedMin(g_tTex1du1[u1], u1);
- InterlockedMin(g_tTex1du1[u1], u1, out_u1);
- InterlockedOr(g_tTex1du1[u1], u1);
- InterlockedOr(g_tTex1du1[u1], u1, out_u1);
- InterlockedXor(g_tTex1du1[u1], u1);
- InterlockedXor(g_tTex1du1[u1], u1, out_u1);
- // 2D int
- InterlockedAdd(g_tTex2di1[i2], i1b);
- InterlockedAdd(g_tTex2di1[i2], i1, out_i1);
- InterlockedAnd(g_tTex2di1[i2], i1b);
- InterlockedAnd(g_tTex2di1[i2], i1, out_i1);
- InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1);
- InterlockedExchange(g_tTex2di1[i2], i1, out_i1);
- InterlockedMax(g_tTex2di1[i2], i1b);
- InterlockedMax(g_tTex2di1[i2], i1, out_i1);
- InterlockedMin(g_tTex2di1[i2], i1b);
- InterlockedMin(g_tTex2di1[i2], i1, out_i1);
- InterlockedOr(g_tTex2di1[i2], i1b);
- InterlockedOr(g_tTex2di1[i2], i1, out_i1);
- InterlockedXor(g_tTex2di1[i2], i1b);
- InterlockedXor(g_tTex2di1[i2], i1, out_i1);
- // 2D uint
- InterlockedAdd(g_tTex2du1[u2], u1);
- InterlockedAdd(g_tTex2du1[u2], u1, out_u1);
- InterlockedAnd(g_tTex2du1[u2], u1);
- InterlockedAnd(g_tTex2du1[u2], u1, out_u1);
- InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1);
- InterlockedExchange(g_tTex2du1[u2], u1, out_u1);
- InterlockedMax(g_tTex2du1[u2], u1);
- InterlockedMax(g_tTex2du1[u2], u1, out_u1);
- InterlockedMin(g_tTex2du1[u2], u1);
- InterlockedMin(g_tTex2du1[u2], u1, out_u1);
- InterlockedOr(g_tTex2du1[u2], u1);
- InterlockedOr(g_tTex2du1[u2], u1, out_u1);
- InterlockedXor(g_tTex2du1[u2], u1);
- InterlockedXor(g_tTex2du1[u2], u1, out_u1);
- // 3D int
- InterlockedAdd(g_tTex3di1[i3], i1b);
- InterlockedAdd(g_tTex3di1[i3], i1, out_i1);
- InterlockedAnd(g_tTex3di1[i3], i1b);
- InterlockedAnd(g_tTex3di1[i3], i1, out_i1);
- InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1);
- InterlockedExchange(g_tTex3di1[i3], i1, out_i1);
- InterlockedMax(g_tTex3di1[i3], i1b);
- InterlockedMax(g_tTex3di1[i3], i1, out_i1);
- InterlockedMin(g_tTex3di1[i3], i1b);
- InterlockedMin(g_tTex3di1[i3], i1, out_i1);
- InterlockedOr(g_tTex3di1[i3], i1b);
- InterlockedOr(g_tTex3di1[i3], i1, out_i1);
- InterlockedXor(g_tTex3di1[i3], i1b);
- InterlockedXor(g_tTex3di1[i3], i1, out_i1);
- // 3D uint
- InterlockedAdd(g_tTex3du1[u3], u1);
- InterlockedAdd(g_tTex3du1[u3], u1, out_u1);
- InterlockedAnd(g_tTex3du1[u3], u1);
- InterlockedAnd(g_tTex3du1[u3], u1, out_u1);
- InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1);
- InterlockedExchange(g_tTex3du1[u3], u1, out_u1);
- InterlockedMax(g_tTex3du1[u3], u1);
- InterlockedMax(g_tTex3du1[u3], u1, out_u1);
- InterlockedMin(g_tTex3du1[u3], u1);
- InterlockedMin(g_tTex3du1[u3], u1, out_u1);
- InterlockedOr(g_tTex3du1[u3], u1);
- InterlockedOr(g_tTex3du1[u3], u1, out_u1);
- InterlockedXor(g_tTex3du1[u3], u1);
- InterlockedXor(g_tTex3du1[u3], u1, out_u1);
- // 1D array int
- InterlockedAdd(g_tTex1di1a[i2], i1b);
- InterlockedAdd(g_tTex1di1a[i2], i1, out_i1);
- InterlockedAnd(g_tTex1di1a[i2], i1b);
- InterlockedAnd(g_tTex1di1a[i2], i1, out_i1);
- InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1);
- InterlockedExchange(g_tTex1di1a[i2], i1, out_i1);
- InterlockedMax(g_tTex1di1a[i2], i1b);
- InterlockedMax(g_tTex1di1a[i2], i1, out_i1);
- InterlockedMin(g_tTex1di1a[i2], i1b);
- InterlockedMin(g_tTex1di1a[i2], i1, out_i1);
- InterlockedOr(g_tTex1di1a[i2], i1b);
- InterlockedOr(g_tTex1di1a[i2], i1, out_i1);
- InterlockedXor(g_tTex1di1a[i2], i1b);
- InterlockedXor(g_tTex1di1a[i2], i1, out_i1);
- // 1D array uint
- InterlockedAdd(g_tTex1du1a[u2], u1);
- InterlockedAdd(g_tTex1du1a[u2], u1, out_u1);
- InterlockedAnd(g_tTex1du1a[u2], u1);
- InterlockedAnd(g_tTex1du1a[u2], u1, out_u1);
- InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1);
- InterlockedExchange(g_tTex1du1a[u2], u1, out_u1);
- InterlockedMax(g_tTex1du1a[u2], u1);
- InterlockedMax(g_tTex1du1a[u2], u1, out_u1);
- InterlockedMin(g_tTex1du1a[u2], u1);
- InterlockedMin(g_tTex1du1a[u2], u1, out_u1);
- InterlockedOr(g_tTex1du1a[u2], u1);
- InterlockedOr(g_tTex1du1a[u2], u1, out_u1);
- InterlockedXor(g_tTex1du1a[u2], u1);
- InterlockedXor(g_tTex1du1a[u2], u1, out_u1);
- // 2D array int
- InterlockedAdd(g_tTex1di1a[i2], i1b);
- InterlockedAdd(g_tTex1di1a[i2], i1, out_i1);
- InterlockedAnd(g_tTex1di1a[i2], i1b);
- InterlockedAnd(g_tTex1di1a[i2], i1, out_i1);
- InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1);
- InterlockedExchange(g_tTex1di1a[i2], i1, out_i1);
- InterlockedMax(g_tTex1di1a[i2], i1b);
- InterlockedMax(g_tTex1di1a[i2], i1, out_i1);
- InterlockedMin(g_tTex1di1a[i2], i1b);
- InterlockedMin(g_tTex1di1a[i2], i1, out_i1);
- InterlockedOr(g_tTex1di1a[i2], i1b);
- InterlockedOr(g_tTex1di1a[i2], i1, out_i1);
- InterlockedXor(g_tTex1di1a[i2], i1b);
- InterlockedXor(g_tTex1di1a[i2], i1, out_i1);
- // 2D array uint
- InterlockedAdd(g_tTex1du1a[u2], u1);
- InterlockedAdd(g_tTex1du1a[u2], u1, out_u1);
- InterlockedAnd(g_tTex1du1a[u2], u1);
- InterlockedAnd(g_tTex1du1a[u2], u1, out_u1);
- InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1);
- InterlockedExchange(g_tTex1du1a[u2], u1, out_u1);
- InterlockedMax(g_tTex1du1a[u2], u1);
- InterlockedMax(g_tTex1du1a[u2], u1, out_u1);
- InterlockedMin(g_tTex1du1a[u2], u1);
- InterlockedMin(g_tTex1du1a[u2], u1, out_u1);
- InterlockedOr(g_tTex1du1a[u2], u1);
- InterlockedOr(g_tTex1du1a[u2], u1, out_u1);
- InterlockedXor(g_tTex1du1a[u2], u1);
- InterlockedXor(g_tTex1du1a[u2], u1, out_u1);
- // buffer int
- InterlockedAdd(g_tBuffI[i1], i1b);
- InterlockedAdd(g_tBuffI[i1], i1, out_i1);
- InterlockedAnd(g_tBuffI[i1], i1b);
- InterlockedAnd(g_tBuffI[i1], i1, out_i1);
- InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1);
- InterlockedExchange(g_tBuffI[i1], i1, out_i1);
- InterlockedMax(g_tBuffI[i1], i1b);
- InterlockedMax(g_tBuffI[i1], i1, out_i1);
- InterlockedMin(g_tBuffI[i1], i1b);
- InterlockedMin(g_tBuffI[i1], i1, out_i1);
- InterlockedOr(g_tBuffI[i1], i1b);
- InterlockedOr(g_tBuffI[i1], i1, out_i1);
- InterlockedXor(g_tBuffI[i1], i1b);
- InterlockedXor(g_tBuffI[i1], i1, out_i1);
- // buffer uint
- InterlockedAdd(g_tBuffU[u1], u1);
- InterlockedAdd(g_tBuffU[u1], u1, out_u1);
- InterlockedAnd(g_tBuffU[u1], u1);
- InterlockedAnd(g_tBuffU[u1], u1, out_u1);
- InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1);
- InterlockedExchange(g_tBuffU[u1], u1, out_u1);
- InterlockedMax(g_tBuffU[u1], u1);
- InterlockedMax(g_tBuffU[u1], u1, out_u1);
- InterlockedMin(g_tBuffU[u1], u1);
- InterlockedMin(g_tBuffU[u1], u1, out_u1);
- InterlockedOr(g_tBuffU[u1], u1);
- InterlockedOr(g_tBuffU[u1], u1, out_u1);
- InterlockedXor(g_tBuffU[u1], u1);
- InterlockedXor(g_tBuffU[u1], u1, out_u1);
- PS_OUTPUT psout;
- psout.Color = 1.0;
- return psout;
- }
|