Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- shader: MESA_SHADER_FRAGMENT
- inputs: 0
- outputs: 0
- uniforms: 0
- shared: 0
- decl_var ssbo INTERP_MODE_NONE block @0 (429, 0, 0)
- decl_var ssbo INTERP_MODE_NONE block @1 (429, 0, 1)
- decl_var ssbo INTERP_MODE_NONE block @2 (429, 0, 2)
- decl_var ssbo INTERP_MODE_NONE block @3 (429, 0, 3)
- decl_var shader_in INTERP_MODE_NONE float @4 (VARYING_SLOT_VAR0.x, 0, 0)
- decl_var shader_in INTERP_MODE_NONE float @5 (VARYING_SLOT_VAR0.y, 0, 0)
- decl_var shader_in INTERP_MODE_NONE float @6 (VARYING_SLOT_VAR0.z, 0, 0)
- decl_var shader_in INTERP_MODE_NONE float @7 (VARYING_SLOT_VAR0.w, 0, 0)
- decl_var shader_out INTERP_MODE_NONE vec4 @8 (FRAG_RESULT_DATA0, 0, 0)
- decl_function main (0 params)
- impl main {
- block block_0:
- /* preds: */
- vec1 32 ssa_0 = deref_var &@4 (shader_in float)
- vec1 32 ssa_1 = intrinsic load_deref (ssa_0) (0) /* access=0 */
- vec1 32 ssa_2 = deref_var &@5 (shader_in float)
- vec1 32 ssa_3 = intrinsic load_deref (ssa_2) (0) /* access=0 */
- vec1 32 ssa_4 = deref_var &@6 (shader_in float)
- vec1 32 ssa_5 = intrinsic load_deref (ssa_4) (0) /* access=0 */
- vec1 32 ssa_6 = deref_var &@7 (shader_in float)
- vec1 32 ssa_7 = intrinsic load_deref (ssa_6) (0) /* access=0 */
- vec4 32 ssa_8 = vec4 ssa_1, ssa_3, ssa_5, ssa_7
- vec1 32 ssa_9 = load_const (0x00000001 /* 0.000000 */)
- vec1 32 ssa_10 = load_const (0x3f800000 /* 1.000000 */)
- vec1 32 ssa_11 = load_const (0x00000000 /* 0.000000 */)
- vec1 32 ssa_12 = load_const (0x00000064 /* 0.000000 */)
- vec1 32 ssa_13 = load_const (0x3f000000 /* 0.500000 */)
- vec4 32 ssa_14 = intrinsic load_frag_coord () ()
- vec1 1 ssa_15 = feq ssa_14.x, ssa_13
- vec1 1 ssa_16 = feq ssa_14.y, ssa_13
- vec1 1 ssa_17 = iand ssa_15, ssa_16
- /* succs: block_1 block_7 */
- if ssa_17 {
- block block_1:
- /* preds: block_0 */
- /* succs: block_2 */
- loop {
- block block_2:
- /* preds: block_1 block_5 */
- vec1 32 ssa_18 = phi block_1: ssa_11, block_5: ssa_35
- vec1 1 ssa_19 = ige ssa_18, ssa_12
- /* succs: block_3 block_4 */
- if ssa_19 {
- block block_3:
- /* preds: block_2 */
- break
- /* succs: block_6 */
- } else {
- block block_4:
- /* preds: block_2 */
- /* succs: block_5 */
- }
- block block_5:
- /* preds: block_4 */
- vec1 32 ssa_20 = iadd ssa_18, ssa_18
- vec1 32 ssa_21 = intrinsic vulkan_resource_index (ssa_11) (0, 2, 7) /* desc-set=0 */ /* binding=2 */ /* desc_type=SSBO */
- vec1 32 ssa_22 = load_const (0x00000002 /* 0.000000 */)
- vec1 32 ssa_23 = ishl ssa_18, ssa_22
- vec1 32 ssa_24 = intrinsic vulkan_resource_index (ssa_11) (0, 0, 7) /* desc-set=0 */ /* binding=0 */ /* desc_type=SSBO */
- vec1 32 ssa_25 = ishl ssa_20, ssa_22
- vec1 32 ssa_26 = load_const (0x00000004 /* 0.000000 */)
- vec1 32 ssa_27 = iadd ssa_25, ssa_26
- vec1 32 ssa_28 = intrinsic vulkan_resource_index (ssa_11) (0, 3, 7) /* desc-set=0 */ /* binding=3 */ /* desc_type=SSBO */
- vec1 32 ssa_29 = intrinsic load_ssbo (ssa_21, ssa_23) (0, 4, 0) /* access=0 */ /* align_mul=4 */ /* align_offset=0 */
- vec1 1 ssa_30 = flt ssa_29, ssa_11
- vec1 32 ssa_31 = bcsel ssa_30, ssa_25, ssa_27
- vec1 32 ssa_32 = intrinsic load_ssbo (ssa_24, ssa_31) (0, 4, 0) /* access=0 */ /* align_mul=4 */ /* align_offset=0 */
- vec1 32 ssa_33 = fadd ssa_32, ssa_10
- intrinsic store_ssbo (ssa_33, ssa_24, ssa_31) (1, 0, 4, 0) /* wrmask=x */ /* access=0 */ /* align_mul=4 */ /* align_offset=0 */
- vec1 32 ssa_34 = intrinsic load_ssbo (ssa_24, ssa_31) (0, 4, 0) /* access=0 */ /* align_mul=4 */ /* align_offset=0 */
- intrinsic store_ssbo (ssa_34, ssa_28, ssa_23) (1, 0, 4, 0) /* wrmask=x */ /* access=0 */ /* align_mul=4 */ /* align_offset=0 */
- vec1 32 ssa_35 = iadd ssa_18, ssa_9
- /* succs: block_2 */
- }
- block block_6:
- /* preds: block_3 */
- /* succs: block_8 */
- } else {
- block block_7:
- /* preds: block_0 */
- /* succs: block_8 */
- }
- block block_8:
- /* preds: block_6 block_7 */
- vec1 32 ssa_36 = deref_var &@8 (shader_out vec4)
- intrinsic store_deref (ssa_36, ssa_8) (15, 0) /* wrmask=xyzw */ /* access=0 */
- /* succs: block_9 */
- block block_9:
- }
- After RA:
- BB0
- /* logical preds: / linear preds: / kind: top-level, branch, */
- s2: %34:s[0-1], s1: %35:s[2], s1: %36:s[3], v1: %37:v[0], v1: %38:v[1], v1: %39:v[2], v1: %40:v[3], s2: %41:exec = p_startpgm
- p_logical_start
- s1: %89:m0 = p_parallelcopy %36:s[3]
- v1: %44:v[4] = v_interp_p1_f32 %37:v[0], %89:m0 attr0.w
- v1: %3:v[4] = v_interp_p2_f32 %38:v[1], %89:m0, %44:v[4] attr0.w
- v1: %45:v[5] = v_interp_p1_f32 %37:v[0], %89:m0 attr0.z
- v1: %4:v[5] = v_interp_p2_f32 %38:v[1], %89:m0, %45:v[5] attr0.z
- v1: %46:v[6] = v_interp_p1_f32 %37:v[0], %89:m0 attr0.y
- v1: %5:v[6] = v_interp_p2_f32 %38:v[1], %89:m0, %46:v[6] attr0.y
- v1: %47:v[0] = v_interp_p1_f32 %37:v[0], %89:m0 attr0.x
- v1: %6:v[0] = v_interp_p2_f32 %38:v[1], %89:m0, %47:v[0] attr0.x
- s2: %10:vcc = v_cmp_eq_f32 0.5, %40:v[3]
- s2: %11:s[0-1] = v_cmp_eq_f32 0.5, %39:v[2]
- s2: %12:s[0-1], s1: %52:scc = s_and_b64 %11:s[0-1], %10:vcc
- p_logical_end
- s2: %81:s[0-1], s1: %80:scc, s2: %79:exec = s_and_saveexec_b64 %12:s[0-1], %41:exec
- p_cbranch_z %79:exec BB7, BB1
- BB1
- /* logical preds: BB0, / linear preds: BB0, / kind: uniform, loop-preheader, */
- p_logical_start
- p_logical_end
- p_branch BB2
- BB2
- /* logical preds: BB1, BB5, / linear preds: BB1, BB5, / kind: uniform, loop-header, */
- s2: %82:exec = p_linear_phi %79:exec, %82:exec
- s1: %13:s[3] = p_linear_phi 0, %33:s[3]
- p_logical_start
- s1: %15:scc = s_cmp_ge_i32 %13:s[3], 0x64
- p_logical_end
- p_cbranch_z %15:scc BB4, BB3
- BB3
- /* logical preds: BB2, / linear preds: BB2, / kind: uniform, break, */
- p_logical_start
- p_logical_end
- p_branch BB6
- BB4
- /* logical preds: BB2, / linear preds: BB2, / kind: uniform, */
- p_logical_start
- p_logical_end
- p_branch BB5
- BB5
- /* logical preds: BB4, / linear preds: BB4, / kind: uniform, continue, needs_lowering, */
- p_logical_start
- s1: %55:s[4], s1: %54:scc = s_add_i32 32, %35:s[2]
- s2: %61:s[4-5] = p_create_vector %55:s[4], 0xffff8000
- s4: %62:s[4-7] = s_load_dwordx4 %61:s[4-5], 0 reorder
- s1: %16:s[8], s1: %53:scc = s_add_u32 %13:s[3], %13:s[3]
- s1: %19:s[9], s1: %56:scc = s_lshl_b32 %13:s[3], 2
- s1: %25:s[4] = s_buffer_load_dword %62:s[4-7], %19:s[9] buffer
- s1: %60:s[6], s1: %59:scc = s_add_i32 48, %35:s[2]
- s2: %67:s[10-11] = p_create_vector %35:s[2], 0xffff8000
- s4: %68:s[12-15] = s_load_dwordx4 %67:s[10-11], 0 reorder
- s1: %21:s[5], s1: %57:scc = s_lshl_b32 %16:s[8], 2
- s1: %23:s[7], s1: %58:scc = s_add_u32 %21:s[5], 4
- s2: %26:vcc = v_cmp_lt_f32 %25:s[4], 0
- s1: %66:scc = s_cmp_lg_u64 0, %26:vcc
- s1: %27:s[4] = s_cselect_b32 %21:s[5], %23:s[7], %66:scc
- s1: %28:s[5] = s_buffer_load_dword %68:s[12-15], %27:s[4] buffer
- s2: %74:s[6-7] = p_create_vector %60:s[6], 0xffff8000
- s4: %75:s[16-19] = s_load_dwordx4 %74:s[6-7], 0 reorder
- s1: %33:s[3], s1: %76:scc = s_add_u32 %13:s[3], 1
- v1: %30:v[1] = v_add_f32 %28:s[5], 1.0
- s1: %83:s[10] = p_as_uniform %30:v[1]
- s1: %96:m0 = p_parallelcopy %27:s[4]
- s_buffer_store_dword %68:s[12-15], %96:m0, %83:s[10] buffer
- s1: %31:s[4] = s_buffer_load_dword %68:s[12-15], %96:m0 buffer
- s1: %97:m0 = p_parallelcopy %19:s[9]
- s_buffer_store_dword %75:s[16-19], %97:m0, %31:s[4] buffer
- p_logical_end
- p_branch BB2
- BB6
- /* logical preds: BB3, / linear preds: BB3, / kind: uniform, loop-exit, */
- s2: %84:exec = p_parallelcopy %82:exec
- p_logical_start
- p_logical_end
- p_branch BB8
- BB7
- /* logical preds: / linear preds: BB0, / kind: uniform, */
- p_branch BB8
- BB8
- /* logical preds: / linear preds: BB6, BB7, / kind: invert, */
- s2: %85:exec = p_linear_phi %84:exec, %79:exec
- s2: %87:exec, s1: %86:scc = s_andn2_b64 %81:s[0-1], %85:exec
- p_cbranch_z %87:exec BB10, BB9
- BB9
- /* logical preds: BB0, / linear preds: BB8, / kind: uniform, */
- p_logical_start
- p_logical_end
- p_branch BB11
- BB10
- /* logical preds: / linear preds: BB8, / kind: uniform, */
- p_branch BB11
- BB11
- /* logical preds: BB6, BB9, / linear preds: BB9, BB10, / kind: uniform, top-level, merge, */
- s2: %88:exec = p_parallelcopy %81:s[0-1]
- p_logical_start
- v1: %77:v[0] = v_cvt_pkrtz_f16_f32 %6:v[0], %5:v[6]
- v1: %78:v[1] = v_cvt_pkrtz_f16_f32 %4:v[5], %3:v[4]
- exp %77:v[0], %78:v[1], v1: undef, v1: undef compr mrt0
- p_logical_end
- s_dcache_wb
- s_endpgm
- disasm:
- BB0:
- s_mov_b32 m0, s3 ; befc0303
- v_interp_p1_f32_e32 v4, v0, attr0.w ; c8100300
- v_interp_p2_f32_e32 v4, v1, attr0.w ; c8110301
- v_interp_p1_f32_e32 v5, v0, attr0.z ; c8140200
- v_interp_p2_f32_e32 v5, v1, attr0.z ; c8150201
- v_interp_p1_f32_e32 v6, v0, attr0.y ; c8180100
- v_interp_p2_f32_e32 v6, v1, attr0.y ; c8190101
- v_interp_p1_f32_e32 v0, v0, attr0.x ; c8000000
- v_interp_p2_f32_e32 v0, v1, attr0.x ; c8010001
- v_cmp_eq_f32_e32 vcc, 0.5, v3 ; 7c0406f0
- v_cmp_eq_f32_e64 s[0:1], 0.5, v2 ; d4020000 000204f0
- s_and_b64 s[0:1], s[0:1], vcc ; 87806a00
- s_and_saveexec_b64 s[0:1], s[0:1] ; be802400
- s_cbranch_execz BB11 ; bf88002e
- BB1:
- s_mov_b32 s3, 0 ; be830380
- BB2:
- s_cmp_ge_i32 s3, 0x64 ; bf03ff03 00000064
- s_cbranch_scc1 BB11 ; bf85002a
- BB5:
- s_add_i32 s4, 32, s2 ; 810402a0
- s_movk_i32 s5, 0x8000 ; b0058000
- s_load_dwordx4 s[4:7], s[4:5], 0x0 ; f4080102 fa000000
- s_add_u32 s8, s3, s3 ; 80080303
- s_lshl_b32 s9, s3, 2 ; 8f098203
- s_waitcnt lgkmcnt(0) ; bf8cc07f
- s_buffer_load_dword s4, s[4:7], s9 ; f4200102 12000000
- s_add_i32 s6, 48, s2 ; 810602b0
- s_mov_b32 s10, s2 ; be8a0302
- s_movk_i32 s11, 0x8000 ; b00b8000
- s_load_dwordx4 s[12:15], s[10:11], 0x0 ; f4080305 fa000000
- s_lshl_b32 s5, s8, 2 ; 8f058208
- s_add_u32 s7, s5, 4 ; 80078405
- s_waitcnt lgkmcnt(0) ; bf8cc07f
- v_cmp_lt_f32_e64 vcc, s4, 0 ; d401006a 00010004
- s_cmp_lg_u64 0, vcc ; bf136a80
- s_cselect_b32 s4, s5, s7 ; 85040705
- s_buffer_load_dword s5, s[12:15], s4 ; f4200146 08000000
- s_movk_i32 s7, 0x8000 ; b0078000
- s_load_dwordx4 s[16:19], s[6:7], 0x0 ; f4080403 fa000000
- s_add_u32 s3, s3, 1 ; 80038103
- s_waitcnt lgkmcnt(0) ; bf8cc07f
- v_add_f32_e64 v1, s5, 1.0 ; d5030001 0001e405
- v_readfirstlane_b32 s10, v1 ; 7e140501
- s_mov_b32 m0, s4 ; befc0304
- s_buffer_store_dword s10, s[12:15], m0 ; f4600286 f8000000
- s_nop 0 ; bf800000
- s_buffer_load_dword s4, s[12:15], m0 ; f4200106 f8000000
- s_mov_b32 m0, s9 ; befc0309
- s_waitcnt lgkmcnt(0) ; bf8cc07f
- s_buffer_store_dword s4, s[16:19], m0 ; f4600108 f8000000
- s_branch BB2 ; bf82ffd3
- BB11:
- s_mov_b64 exec, s[0:1] ; befe0400
- v_cvt_pkrtz_f16_f32_e64 v0, v0, v6 ; d52f0000 00020d00
- v_cvt_pkrtz_f16_f32_e64 v1, v5, v4 ; d52f0001 00020905
- exp mrt0 v0, off, v1, off done compr vm ; f8001c05 80800100
- s_dcache_wb ; f4840000 fa000000
- s_endpgm ; bf810000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement