summaryrefslogtreecommitdiff
path: root/tests/hlsl/dxsdk/HDRToneMappingCS11/ReduceToSingleCS.hlsl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/hlsl/dxsdk/HDRToneMappingCS11/ReduceToSingleCS.hlsl')
-rw-r--r--tests/hlsl/dxsdk/HDRToneMappingCS11/ReduceToSingleCS.hlsl63
1 files changed, 0 insertions, 63 deletions
diff --git a/tests/hlsl/dxsdk/HDRToneMappingCS11/ReduceToSingleCS.hlsl b/tests/hlsl/dxsdk/HDRToneMappingCS11/ReduceToSingleCS.hlsl
deleted file mode 100644
index 73857a6bb..000000000
--- a/tests/hlsl/dxsdk/HDRToneMappingCS11/ReduceToSingleCS.hlsl
+++ /dev/null
@@ -1,63 +0,0 @@
-//TEST_DISABLED:COMPARE_HLSL:-no-mangle -profile cs_4_0 -entry CSMain
-//-----------------------------------------------------------------------------
-// File: ReduceToSingleCS.hlsl
-//
-// Desc: Reduce an input buffer by a factor of groupthreads
-//
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//-----------------------------------------------------------------------------
-
-StructuredBuffer<float> Input : register( t0 );
-RWStructuredBuffer<float> Result : register( u0 );
-
-cbuffer cbCS : register( b0 )
-{
- uint4 g_param; // g_param.x is the actual elements contained in Input
- // g_param.y is the x dimension of the Dispatch call
-};
-
-#define groupthreads 128
-groupshared float accum[groupthreads];
-
-[numthreads(groupthreads,1,1)]
-void CSMain( uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex )
-{
- if ( DTid.x < g_param.x )
- accum[GI] = Input[DTid.x];
- else
- accum[GI] = 0;
-
- // Parallel reduction algorithm follows
- GroupMemoryBarrierWithGroupSync();
- if ( GI < 64 )
- accum[GI] += accum[64+GI];
-
- GroupMemoryBarrierWithGroupSync();
- if ( GI < 32 )
- accum[GI] += accum[32+GI];
-
- GroupMemoryBarrierWithGroupSync();
- if ( GI < 16 )
- accum[GI] += accum[16+GI];
-
- GroupMemoryBarrierWithGroupSync();
- if ( GI < 8 )
- accum[GI] += accum[8+GI];
-
- GroupMemoryBarrierWithGroupSync();
- if ( GI < 4 )
- accum[GI] += accum[4+GI];
-
- GroupMemoryBarrierWithGroupSync();
- if ( GI < 2 )
- accum[GI] += accum[2+GI];
-
- GroupMemoryBarrierWithGroupSync();
- if ( GI < 1 )
- accum[GI] += accum[1+GI];
-
- if ( GI == 0 )
- {
- Result[Gid.x] = accum[0];
- }
-}