I think this should work. You can initialize condition stream with 0 using streamRead.
As in this kernel, multiple threads will write the same value or won't write anything, data-race would not be a problem.
kernel void GPU_fetch_array_kernel10(int sizes[],float src[],int offsets[][],float freq[],int thresholds[][],out float4 dest<>,out int was_pulse[]){ int j=instance().y; int threadID=instance().x; float threshold=(float)thresholds[0][threadID];//R: fetch always starts with zero coadd level int k=0; int l=0; float4 acc=float4(0.f,0.f,0.f,0.f); float f=freq[threadID]; //double period=periods[threadID];//(double)sub_buffer_size/(double)f; int n_per=(int)f; for(k=0;k<n_per;k++){ l=offsets
[threadID]; l+=(4*j);//R: index to data array computed acc.x+=src ; acc.y+=src[l+1]; acc.z+=src[l+2]; acc.w+=src[l+3]; } if (j < 1 && acc.x < -10 ){ was_pulse[0]=threadID; } /* if(4*j+1<1){ if(acc.y<0){ was_pulse[0]=threadID; } } if(4*j+2<1){ if(acc.z<0){ was_pulse[0]=threadID; } } if(4*j+3<1){ if(acc.w<0){ was_pulse[0]=threadID; } } */ dest=acc; }
First condition can be true only for first element of array.
It will be true for the first row.
What are the dimensions of dest stream you are using?
PS: Also, can you try nested if blocks instead of &&, in case your doubt is correct.
Originally posted by: gaurav.garg First condition can be true only for first element of array.
It will be true for the first row.
What are the dimensions of dest stream you are using?
PS: Also, can you try nested if blocks instead of &&, in case your doubt is correct.
if ( j < 1){A=1;} else{A=0;} if(acc.x < -10.f ){B=1;} else{B=0;} if(A*B==1){ C=1; }else{ C=0; } if(C==1){ was_pulse[0]=(int)acc.x; }
Originally posted by: gaurav.garg
What are the dimensions of dest stream you are using?
A similar brook+ code with a single element scatter stream, written on condition only, works fine on my machine.
Are you sure you first initialized your stream 'was_pulse' with a stream read?
Originally posted by: youplaboom
A similar brook+ code with a single element scatter stream, written on condition only, works fine on my machine.
Are you sure you first initialized your stream 'was_pulse' with a stream read?
I always use parentheses in multiple conditions statements; but for the sack of argument I tried without them and it was still working.
Try that:
if ((j< -10) && ((j+1) < -10))
const char __GPU_fetch_array_kernel10_cal_desc_tech0_pass0[] = "il_ps_2_0\n" "dcl_literal l0,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l1,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l2,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF\n" "dcl_literal l3,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF\n" "dcl_literal l4,0x7F800000,0x7F800000,0x7F800000,0x7F800000\n" "dcl_literal l5,0x80000000,0x80000000,0x80000000,0x80000000\n" "dcl_literal l6,0x3E9A209B,0x3E9A209B,0x3E9A209B,0x3E9A209B\n" "dcl_literal l7,0x3F317218,0x3F317218,0x3F317218,0x3F317218\n" "dcl_literal l8,0x40490FDB,0x40490FDB,0x40490FDB,0x40490FDB\n" "dcl_literal l9,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB\n" "dcl_literal l10,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l11,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l12,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l13,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l14,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l15,0x00000001,0x00000001,0x00000001,0x00000001\n" ";global (g) declared, size = 4096\n" "dcl_literal l16,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_literal l17,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l18,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l19,0x0000000A,0x0000000A,0x0000000A,0x0000000A\n" "dcl_literal l20,0x40000000,0x40000000,0x40000000,0x40000000\n" "dcl_literal l21,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l22,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l23,0x00000005,0x00000005,0x00000005,0x00000005\n" "dcl_literal l24,0x00000006,0x00000006,0x00000006,0x00000006\n" "dcl_literal l25,0x00000007,0x00000007,0x00000007,0x00000007\n" "dcl_output_usage(generic) o0.xyzw\n" "dcl_resource_id(0)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(1)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(2)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(3)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(4)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_literal l26,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_input_position_interp(linear_noperspective) v0.xy__\n" "dcl_literal l27,0x3F000000,0x3F000000,0x3F000000,0x3F000000\n" "dcl_literal l28,0x3F000000,0x3F000000,0x3F000000,0x3F000000\n" "mov r920.xy__,v0.xyzw\n" "call 55 \n" "call 0 \n" "endmain\n" "\n" "func 0\n" "mov o0.xyzw,r919.xyzw\n" "ret\n" "\n" "func 2\n" "ieq r0.x___,r17.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "mov r16.x___,r19.x000\n" "ret_dyn\n" "ret\n" "\n" "func 10\n" "ieq r0.x___,r57.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "mov r56.xyzw,r59.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 11\n" "ieq r0.x___,r62.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "mov r61.xyzw,r64.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 12\n" "ieq r0.x___,r67.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "mov r66.xyzw,r69.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 20\n" "ieq r0.x___,r144.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "mov r147.x___,r146.x000\n" "mov r143.x___,r147.x000\n" "ret_dyn\n" "ret\n" "\n" "func 28\n" "ieq r0.x___,r213.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "mov r215.xyzw,r217.xyzw\n" "mov r218.x___,r215.x000\n" "mov r216.x___,r218.x000\n" "mov r219.x___,r215.y000\n" "mov r216._y__,r219.0x00\n" "mov r220.x___,r215.z000\n" "mov r216.__z_,r220.00x0\n" "mov r221.x___,r215.w000\n" "mov r216.___w,r221.000x\n" "mov r212.xyzw,r216.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 29\n" "ieq r0.x___,r224.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "mov r226.xyzw,r228.xyzw\n" "mov r229.x___,r226.x000\n" "mov r227.x___,r229.x000\n" "mov r230.x___,r226.y000\n" "mov r227._y__,r230.0x00\n" "mov r231.x___,r226.z000\n" "mov r227.__z_,r231.00x0\n" "mov r232.x___,r226.w000\n" "mov r227.___w,r232.000x\n" "mov r223.xyzw,r227.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 30\n" "ieq r0.x___,r235.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "mov r237.xyzw,r239.xyzw\n" "mov r240.x___,r237.x000\n" "mov r238.x___,r240.x000\n" "mov r241.x___,r237.y000\n" "mov r238._y__,r241.0x00\n" "mov r242.x___,r237.z000\n" "mov r238.__z_,r242.00x0\n" "mov r243.x___,r237.w000\n" "mov r238.___w,r243.000x\n" "mov r234.xyzw,r238.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 44\n" "mov r927.x___,r373.y000\n" "mov r374.x___,r927.x000\n" "mov r375.x___,r373.x000\n" "itof r928.x___,r375.x000\n" "mov r385.x___,r928.x000\n" "itof r929.x___,l12.x000\n" "mov r385._y__,r929.0x00\n" "mov r144.x___,r371.x000\n" "mov r145.xy__,r385.xy00\n" "call 20 \n" "mov r930.x___,r143.x000\n" "itof r931.x___,r930.x000\n" "mov r386.x___,r931.x000\n" "mov r376.x___,r386.x000\n" "mov r377.x___,l12.x000\n" "mov r378.x___,l12.x000\n" "mov r387.x___,l12.x000\n" "mov r387._y__,l12.0x00\n" "mov r387.__z_,l12.00x0\n" "mov r387.___w,l12.000x\n" "mov r379.xyzw,r387.xyzw\n" "itof r932.x___,r375.x000\n" "mov r388.x___,r932.x000\n" "mov r388._y__,l0.0x00\n" "mov r17.x___,r370.x000\n" "mov r18.xy__,r388.xy00\n" "call 2 \n" "mov r933.x___,r16.x000\n" "mov r380.x___,r933.x000\n" "mov r381.x___,l12.x000\n" "mov r382.x___,l12.x000\n" "mov r383.x___,l12.x000\n" "ftoi r934.x___,r380.x000\n" "mov r389.x___,r934.x000\n" "mov r384.x___,r389.x000\n" "mov r377.x___,l12.x000\n" "whileloop\n" "ilt r390.x___,r377.x000,r384.x000\n" "break_logicalz r390.x000\n" "itof r935.x___,r375.x000\n" "mov r391.x___,r935.x000\n" "itof r936.x___,r377.x000\n" "mov r391._y__,r936.0x00\n" "mov r144.x___,r369.x000\n" "mov r145.xy__,r391.xy00\n" "call 20 \n" "mov r937.x___,r143.x000\n" "mov r378.x___,r937.x000\n" "imul r392.x___,l16.x000,r374.x000\n" "iadd r393.x___,r378.x000,r392.x000\n" "mov r378.x___,r393.x000\n" "itof r938.x___,r378.x000\n" "mov r394.x___,r938.x000\n" "mov r394._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r394.xy00\n" "call 2 \n" "mov r939.x___,r16.x000\n" "add r395.x___,r379.x000,r939.x000\n" "mov r379.x___,r395.x000\n" "iadd r396.x___,r378.x000,l13.x000\n" "itof r940.x___,r396.x000\n" "mov r397.x___,r940.x000\n" "mov r397._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r397.xy00\n" "call 2 \n" "mov r941.x___,r16.x000\n" "mov r942.x___,r379.y000\n" "add r398.x___,r942.x000,r941.x000\n" "mov r379._y__,r398.0x00\n" "iadd r399.x___,r378.x000,l17.x000\n" "itof r943.x___,r399.x000\n" "mov r400.x___,r943.x000\n" "mov r400._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r400.xy00\n" "call 2 \n" "mov r944.x___,r16.x000\n" "mov r945.x___,r379.z000\n" "add r401.x___,r945.x000,r944.x000\n" "mov r379.__z_,r401.00x0\n" "iadd r402.x___,r378.x000,l18.x000\n" "itof r946.x___,r402.x000\n" "mov r403.x___,r946.x000\n" "mov r403._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r403.xy00\n" "call 2 \n" "mov r947.x___,r16.x000\n" "mov r948.x___,r379.w000\n" "add r404.x___,r948.x000,r947.x000\n" "mov r379.___w,r404.000x\n" "iadd r405.x___,r377.x000,l13.x000\n" "mov r406.x___,r377.x000\n" "mov r377.x___,r405.x000\n" "endloop\n" "ilt r407.x___,r374.x000,l13.x000\n" "inegate r408.x___,l19.x000\n" "itof r949.x___,r408.x000\n" "lt r409.x___,r379.x000,r949.x000\n" "and r410.x___,r407.x000,r409.x000\n" "if_logicalnz r410.x000\n" "mov r411.x___,l12.x000\n" "umul r412.x___,l13.x000,r411.x000\n" "iadd r412.x___,r412.x000,l0.x000\n" "ftoi r950.x___,r379.x000\n" "mov r413.x___,r950.x000\n" "mov g[r412.x + 0].x___,r413.x000\n" "endif\n" "mov r372.xyzw,r379.xyzw\n" "ret\n" "\n" "func 55\n" "mov r924.x___,l27.x000\n" "mov r924._y__,l28.0x00\n" "sub r925.xy__,r920.xy00,r924.xy00\n" "mov r951.xyzw,r925.xy00\n" "mov r923.xyzw,r951.xyzw\n" "mov r367.x___,l0.x000\n" "mov r368.x___,l1.x000\n" "mov r369.x___,l11.x000\n" "mov r370.x___,l10.x000\n" "mov r371.x___,l26.x000\n" "ftoi r952.xyzw,r923.xyzw\n" "mov r373.xyzw,r952.xyzw\n" "call 44 \n" "mov r922.xyzw,r372.xyzw\n" "mov r921.xyzw,r922.xyzw\n" "mov r919.xyzw,r921.xyzw\n" "ret_dyn\n" "ret\n" "\n" "end\n" ""; const char __GPU_fetch_array_kernel10_cal_desc_tech1_pass0[] = "il_ps_2_0\n" "dcl_literal l0,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l1,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l2,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF\n" "dcl_literal l3,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF\n" "dcl_literal l4,0x7F800000,0x7F800000,0x7F800000,0x7F800000\n" "dcl_literal l5,0x80000000,0x80000000,0x80000000,0x80000000\n" "dcl_literal l6,0x3E9A209B,0x3E9A209B,0x3E9A209B,0x3E9A209B\n" "dcl_literal l7,0x3F317218,0x3F317218,0x3F317218,0x3F317218\n" "dcl_literal l8,0x40490FDB,0x40490FDB,0x40490FDB,0x40490FDB\n" "dcl_literal l9,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB\n" "dcl_literal l10,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l11,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l12,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l13,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l14,0x3F000000,0x3F000000,0x3F000000,0x3F000000\n" "dcl_literal l15,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l16,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l17,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l18,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l19,0x00000001,0x00000001,0x00000001,0x00000001\n" ";global (g) declared, size = 4096\n" "dcl_literal l20,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_literal l21,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l22,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l23,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l24,0x0000000A,0x0000000A,0x0000000A,0x0000000A\n" "dcl_literal l25,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l26,0x40000000,0x40000000,0x40000000,0x40000000\n" "dcl_literal l27,0x00000005,0x00000005,0x00000005,0x00000005\n" "dcl_literal l28,0x00000006,0x00000006,0x00000006,0x00000006\n" "dcl_literal l29,0x00000007,0x00000007,0x00000007,0x00000007\n" "dcl_output_usage(generic) o0.xyzw\n" "dcl_resource_id(0)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(1)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(2)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(3)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(4)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_literal l30,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_input_position_interp(linear_noperspective) v0.xy__\n" "dcl_cb cb0[12]\n" "mov r1011.xy__,v0.xyzw\n" "mov r408.xyzw,cb0[l0.x + 0].xyzw\n" "mov r409.xyzw,cb0[l0.x + 1].xyzw\n" "mov r410.xyzw,cb0[l0.x + 2].xyzw\n" "mov r411.xyzw,cb0[l0.x + 3].xyzw\n" "mov r412.xyzw,cb0[l0.x + 4].xyzw\n" "mov r413.xyzw,cb0[l0.x + 5].xyzw\n" "mov r414.xyzw,cb0[l0.x + 6].xyzw\n" "mov r415.xyzw,cb0[l0.x + 7].xyzw\n" "mov r416.xyzw,cb0[l0.x + 8].xyzw\n" "mov r417.xyzw,cb0[l0.x + 9].xyzw\n" "mov r418.xyzw,cb0[l0.x + 10].xyzw\n" "mov r419.xyzw,cb0[l0.x + 11].xyzw\n" "call 59 \n" "call 0 \n" "endmain\n" "\n" "func 0\n" "mov o0.xyzw,r1010.xyzw\n" "ret\n" "\n" "func 2\n" "ieq r0.x___,r17.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "mov r16.x___,r19.x000\n" "ret_dyn\n" "ret\n" "\n" "func 10\n" "ieq r0.x___,r57.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "mov r56.xyzw,r59.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 11\n" "ieq r0.x___,r62.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "mov r61.xyzw,r64.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 12\n" "ieq r0.x___,r67.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "mov r66.xyzw,r69.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 20\n" "ieq r0.x___,r144.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "mov r147.x___,r146.x000\n" "mov r143.x___,r147.x000\n" "ret_dyn\n" "ret\n" "\n" "func 28\n" "ieq r0.x___,r213.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "mov r215.xyzw,r217.xyzw\n" "mov r218.x___,r215.x000\n" "mov r216.x___,r218.x000\n" "mov r219.x___,r215.y000\n" "mov r216._y__,r219.0x00\n" "mov r220.x___,r215.z000\n" "mov r216.__z_,r220.00x0\n" "mov r221.x___,r215.w000\n" "mov r216.___w,r221.000x\n" "mov r212.xyzw,r216.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 29\n" "ieq r0.x___,r224.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "mov r226.xyzw,r228.xyzw\n" "mov r229.x___,r226.x000\n" "mov r227.x___,r229.x000\n" "mov r230.x___,r226.y000\n" "mov r227._y__,r230.0x00\n" "mov r231.x___,r226.z000\n" "mov r227.__z_,r231.00x0\n" "mov r232.x___,r226.w000\n" "mov r227.___w,r232.000x\n" "mov r223.xyzw,r227.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 30\n" "ieq r0.x___,r235.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "mov r237.xyzw,r239.xyzw\n" "mov r240.x___,r237.x000\n" "mov r238.x___,r240.x000\n" "mov r241.x___,r237.y000\n" "mov r238._y__,r241.0x00\n" "mov r242.x___,r237.z000\n" "mov r238.__z_,r242.00x0\n" "mov r243.x___,r237.w000\n" "mov r238.___w,r243.000x\n" "mov r234.xyzw,r238.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 37\n" "mov r277.x___,l12.x000\n" "mov r277._y__,l12.0x00\n" "mov r277.__z_,l12.00x0\n" "mov r277.___w,l12.000x\n" "mov r273.xyzw,r277.xyzw\n" "ftoi r1018.xy__,r270.xy00\n" "mov r278.xy__,r1018.xy00\n" "mov r274.xy__,r278.xy00\n" "mov r1019.x___,r274.y000\n" "imul r279.x___,r1019.x000,r272.x000\n" "iadd r280.x___,r279.x000,r274.x000\n" "mov r275.x___,r280.x000\n" "mov r1022.x___,r275.x000\n" "imax r1020.x___,r275.x000,r1022_neg(xyzw).x000\n" "mov r1023.x___,r271.x000\n" "imax r1021.x___,r271.x000,r1023_neg(xyzw).x000\n" "udiv r1024.x___,r1020.x000,r1021.x000\n" "inegate r1025.x___,r1024.x000\n" "ixor r1026.x___,r275.x000,r271.x000\n" "and r1026.x___,r1026.x000,l5.x000\n" "cmov_logical r281.x___,r1026.x000,r1025.x000,r1024.x000\n" "mov r276.x___,r281.x000\n" "imul r282.x___,r276.x000,r271.x000\n" "iadd r283.x___,r275.x000,r282_neg(xyzw).x000\n" "mov r273.x___,r283.x000\n" "mov r1027.x___,r271.y000\n" "mov r1030.x___,r276.x000\n" "imax r1028.x___,r276.x000,r1030_neg(xyzw).x000\n" "mov r1031.x___,r1027.x000\n" "imax r1029.x___,r1027.x000,r1031_neg(xyzw).x000\n" "udiv r1032.x___,r1028.x000,r1029.x000\n" "inegate r1033.x___,r1032.x000\n" "ixor r1034.x___,r276.x000,r1027.x000\n" "and r1034.x___,r1034.x000,l5.x000\n" "cmov_logical r284.x___,r1034.x000,r1033.x000,r1032.x000\n" "mov r273.__z_,r284.00x0\n" "mov r1035.x___,r273.z000\n" "mov r1036.x___,r271.y000\n" "imul r285.x___,r1035.x000,r1036.x000\n" "iadd r286.x___,r276.x000,r285_neg(xyzw).x000\n" "mov r273._y__,r286.0x00\n" "mov r269.xyzw,r273.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 39\n" "mov r312.x___,l12.x000\n" "mov r312._y__,l12.0x00\n" "mov r309.xy__,r312.xy00\n" "mov r310.x___,l12.x000\n" "mov r311.x___,l12.x000\n" "mov r311.x___,r306.x000\n" "mov r1039.x___,r311.x000\n" "imax r1037.x___,r311.x000,r1039_neg(xyzw).x000\n" "mov r1040.x___,r308.x000\n" "imax r1038.x___,r308.x000,r1040_neg(xyzw).x000\n" "udiv r1041.x___,r1037.x000,r1038.x000\n" "inegate r1042.x___,r1041.x000\n" "ixor r1043.x___,r311.x000,r308.x000\n" "and r1043.x___,r1043.x000,l5.x000\n" "cmov_logical r313.x___,r1043.x000,r1042.x000,r1041.x000\n" "mov r310.x___,r313.x000\n" "imul r314.x___,r310.x000,r308.x000\n" "iadd r315.x___,r311.x000,r314_neg(xyzw).x000\n" "itof r1044.x___,r315.x000\n" "mov r316.x___,r1044.x000\n" "add r317.x___,r316.x000,l14.x000\n" "mov r309.x___,r317.x000\n" "itof r1045.x___,r310.x000\n" "mov r318.x___,r1045.x000\n" "add r319.x___,r318.x000,l14.x000\n" "mov r309._y__,r319.0x00\n" "mov r305.xy__,r309.xy00\n" "ret_dyn\n" "ret\n" "\n" "func 48\n" "mov r1046.x___,r459.y000\n" "mov r470.x___,r1046.x000\n" "mov r471.x___,r459.x000\n" "itof r1047.x___,r471.x000\n" "mov r481.x___,r1047.x000\n" "itof r1048.x___,l12.x000\n" "mov r481._y__,r1048.0x00\n" "mov r144.x___,r457.x000\n" "mov r145.xy__,r481.xy00\n" "call 20 \n" "mov r1049.x___,r143.x000\n" "itof r1050.x___,r1049.x000\n" "mov r482.x___,r1050.x000\n" "mov r472.x___,r482.x000\n" "mov r473.x___,l12.x000\n" "mov r474.x___,l12.x000\n" "mov r483.x___,l12.x000\n" "mov r483._y__,l12.0x00\n" "mov r483.__z_,l23.00x0\n" "mov r483.___w,l12.000x\n" "mov r475.xyzw,r483.xyzw\n" "mov r1051.xyzw,r471.xxxx\n" "mov r306.xyzw,r1051.xyzw\n" "mov r307.xyzw,r466.xyzw\n" "mov r308.xyzw,r467.xyzw\n" "call 39 \n" "mov r1052.xy__,r305.xy00\n" "mov r17.x___,r456.x000\n" "mov r18.xy__,r1052.xy00\n" "call 2 \n" "mov r1053.x___,r16.x000\n" "mov r476.x___,r1053.x000\n" "mov r477.x___,l12.x000\n" "mov r478.x___,l12.x000\n" "mov r479.x___,l12.x000\n" "ftoi r1054.x___,r476.x000\n" "mov r484.x___,r1054.x000\n" "mov r480.x___,r484.x000\n" "mov r473.x___,l12.x000\n" "whileloop\n" "ilt r485.x___,r473.x000,r480.x000\n" "break_logicalz r485.x000\n" "itof r1055.x___,r471.x000\n" "mov r486.x___,r1055.x000\n" "itof r1056.x___,r473.x000\n" "mov r486._y__,r1056.0x00\n" "mov r144.x___,r455.x000\n" "mov r145.xy__,r486.xy00\n" "call 20 \n" "mov r1057.x___,r143.x000\n" "mov r474.x___,r1057.x000\n" "imul r487.x___,l20.x000,r470.x000\n" "iadd r488.x___,r474.x000,r487.x000\n" "mov r474.x___,r488.x000\n" "mov r1058.xyzw,r474.xxxx\n" "mov r306.xyzw,r1058.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1059.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1059.xy00\n" "call 2 \n" "mov r1060.x___,r16.x000\n" "add r489.x___,r475.x000,r1060.x000\n" "mov r475.x___,r489.x000\n" "iadd r490.x___,r474.x000,l13.x000\n" "mov r1061.xyzw,r490.xxxx\n" "mov r306.xyzw,r1061.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1062.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1062.xy00\n" "call 2 \n" "mov r1063.x___,r16.x000\n" "mov r1064.x___,r475.y000\n" "add r491.x___,r1064.x000,r1063.x000\n" "mov r475._y__,r491.0x00\n" "iadd r492.x___,r474.x000,l21.x000\n" "mov r1065.xyzw,r492.xxxx\n" "mov r306.xyzw,r1065.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1066.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1066.xy00\n" "call 2 \n" "mov r1067.x___,r16.x000\n" "mov r1068.x___,r475.z000\n" "add r493.x___,r1068.x000,r1067.x000\n" "mov r475.__z_,r493.00x0\n" "iadd r494.x___,r474.x000,l22.x000\n" "mov r1069.xyzw,r494.xxxx\n" "mov r306.xyzw,r1069.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1070.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1070.xy00\n" "call 2 \n" "mov r1071.x___,r16.x000\n" "mov r1072.x___,r475.w000\n" "add r495.x___,r1072.x000,r1071.x000\n" "mov r475.___w,r495.000x\n" "iadd r496.x___,r473.x000,l13.x000\n" "mov r497.x___,r473.x000\n" "mov r473.x___,r496.x000\n" "endloop\n" "ilt r498.x___,r470.x000,l13.x000\n" "inegate r499.x___,l24.x000\n" "itof r1073.x___,r499.x000\n" "lt r500.x___,r475.x000,r1073.x000\n" "and r501.x___,r498.x000,r500.x000\n" "if_logicalnz r501.x000\n" "mov r502.x___,l12.x000\n" "umul r503.x___,l25.x000,r502.x000\n" "iadd r503.x___,r503.x000,l0.x000\n" "ftoi r1074.x___,r475.x000\n" "mov r504.x___,r1074.x000\n" "mov g[r503.x + 0].x___,r504.x000\n" "endif\n" "mov r458.xyzw,r475.xyzw\n" "ret\n" "\n" "func 59\n" "mov r270.xy__,r1011.xy00\n" "mov r271.xyzw,r418.xyzw\n" "mov r272.xyzw,r419.xyzw\n" "call 37 \n" "mov r1075.xyzw,r269.xyzw\n" "mov r1016.xyzw,r1075.xyzw\n" "mov r1014.xyzw,r1016.xyzw\n" "mov r1015.xyzw,r1016.xyzw\n" "mov r453.x___,l0.x000\n" "mov r454.x___,l1.x000\n" "mov r455.x___,l11.x000\n" "mov r456.x___,l10.x000\n" "mov r457.x___,l30.x000\n" "mov r459.xyzw,r1014.xyzw\n" "mov r460.xyzw,r408.xyzw\n" "mov r461.xyzw,r409.xyzw\n" "mov r462.xyzw,r410.xyzw\n" "mov r463.xyzw,r411.xyzw\n" "mov r464.xyzw,r412.xyzw\n" "mov r465.xyzw,r413.xyzw\n" "mov r466.xyzw,r414.xyzw\n" "mov r467.xyzw,r415.xyzw\n" "mov r468.xyzw,r416.xyzw\n" "mov r469.xyzw,r417.xyzw\n" "call 48 \n" "mov r1013.xyzw,r458.xyzw\n" "mov r1012.xyzw,r1013.xyzw\n" "mov r1010.xyzw,r1012.xyzw\n" "ret_dyn\n" "ret\n" "\n" "end\n" "";