95 lines
2.5 KiB
NASM
95 lines
2.5 KiB
NASM
-- CONST[0] { -1/D, 1/D, -2/D, 2/D }
|
|
-- CONST[1] { -3/D, 3/D, _, _ }
|
|
-- CONST[2] { 0.2460, 0.2050, 0.1171, 0.0439 }
|
|
|
|
-- uv1 = vec4(vec2(uv0.x, uv0.y + const[1].x),
|
|
-- vec2(uv0.x, uv0.y + const[1].y))
|
|
src0.rgb = temp[0] ,
|
|
src1.rgb = const[0] :
|
|
temp[1].rgb = MAD src0.rgr src0.111 src1.0r0 ,
|
|
temp[1].a = MAD src0.g src0.1 src1.g ;
|
|
|
|
-- uv2 = vec4(vec2(uv0.x, uv0.y + const[1].x),
|
|
-- vec2(uv0.x, uv0.y + const[1].y))
|
|
src0.rgb = temp[0] ,
|
|
src1.rgb = const[0] :
|
|
temp[2].rgb = MAD src0.rgr src0.111 src1.0b0 ,
|
|
temp[2].a = MAD src0.g src0.1 src1.a ;
|
|
|
|
-- uv3 = vec4(vec2(uv0.x, uv0.y + const[1].x),
|
|
-- vec2(uv0.x, uv0.y + const[1].y))
|
|
src0.rgb = temp[0] ,
|
|
src1.rgb = const[1] :
|
|
temp[3].rgb = MAD src0.rgr src0.111 src1.0r0 ,
|
|
temp[3].a = MAD src0.g src0.1 src1.g ;
|
|
|
|
-- s1n = texture2D(tex, uv1n)
|
|
-- s1p = texture2D(tex, uv1p)
|
|
TEX
|
|
temp[4].rgba = LD tex[0].rgba temp[1].rgaa ;
|
|
TEX
|
|
temp[5].rgba = LD tex[0].rgba temp[1].baaa ;
|
|
|
|
-- s2n = texture2D(tex, uv2n)
|
|
-- s2p = texture2D(tex, uv2p)
|
|
TEX
|
|
temp[6].rgba = LD tex[0].rgba temp[2].rgaa ;
|
|
TEX
|
|
temp[7].rgba = LD tex[0].rgba temp[2].baaa ;
|
|
|
|
-- s3n = texture2D(tex, uv3n)
|
|
-- s3p = texture2D(tex, uv3p)
|
|
TEX
|
|
temp[8].rgba = LD tex[0].rgba temp[3].rgaa ;
|
|
TEX
|
|
temp[9].rgba = LD tex[0].rgba temp[3].baaa ;
|
|
|
|
-- s0 = texture2D(tex, uv0)
|
|
TEX TEX_SEM_ACQUIRE TEX_SEM_WAIT
|
|
temp[0].rgba = LD tex[0].rgba temp[0].rgaa ;
|
|
|
|
-- col = s0 * weight[2] + 0
|
|
TEX_SEM_WAIT
|
|
src0.rgb = temp[0] ,
|
|
src1.rgb = const[2] ,
|
|
src2.rgb = temp[0] :
|
|
temp[0].rgb = MAD src0.rgb src1.rrr src2.000 ;
|
|
|
|
-- col = s1p * weight[2] + col
|
|
src0.rgb = temp[4] ,
|
|
src1.rgb = const[2] ,
|
|
src2.rgb = temp[0] :
|
|
temp[0].rgb = MAD src0.rgb src1.ggg src2.rgb ;
|
|
|
|
-- col = s1p * weight[2] + col
|
|
src0.rgb = temp[5] ,
|
|
src1.rgb = const[2] ,
|
|
src2.rgb = temp[0] :
|
|
temp[0].rgb = MAD src0.rgb src1.ggg src2.rgb ;
|
|
|
|
-- col = s2n * weight[2] + col
|
|
src0.rgb = temp[6] ,
|
|
src1.rgb = const[2] ,
|
|
src2.rgb = temp[0] :
|
|
temp[0].rgb = MAD src0.rgb src1.bbb src2.rgb ;
|
|
|
|
-- col = s2p * weight[2] + col
|
|
src0.rgb = temp[7] ,
|
|
src1.rgb = const[2] ,
|
|
src2.rgb = temp[0] :
|
|
temp[0].rgb = MAD src0.rgb src1.bbb src2.rgb ;
|
|
|
|
-- col = s3n * weight[3] + col
|
|
src0.rgb = temp[8] ,
|
|
src1.a = const[2] ,
|
|
src2.rgb = temp[0] :
|
|
temp[0].rgb = MAD src0.rgb src1.aaa src2.rgb ;
|
|
|
|
-- col = s3p * weight[3] + col
|
|
OUT TEX_SEM_WAIT
|
|
src0.rgb = temp[9] ,
|
|
src1.a = const[2] ,
|
|
src2.rgb = temp[0] :
|
|
out[0].rgb = MAD src0.rgb src1.aaa src2.rgb ,
|
|
out[0].a = MAD src0.0 src0.0 src0.1 ;
|