Skip to content

Instantly share code, notes, and snippets.

@Groovounet
Created January 25, 2018 14:39
Show Gist options
  • Save Groovounet/d3bcf3a92b7da68b489a4890d730aabd to your computer and use it in GitHub Desktop.
Save Groovounet/d3bcf3a92b7da68b489a4890d730aabd to your computer and use it in GitHub Desktop.
#version 430 core
layout(binding = 0) uniform bufferFetch
{
uint Color;
} Buffer;
layout(location = 0, index = 0) out vec4 Color;
void main()
{
Color = unpackUnorm4x8(Buffer.Color);
}
shader main
asic(VI)
type(PS)
// s_ps_state in s0
s_mov_b32 s0, s1 // 000000000000: BE800001
s_movk_i32 s1, 0x0000 // 000000000004: B0010000
s_load_dwordx4 s[4:7], s[0:1], 0x140 // 000000000008: C00A0100 00000140
s_waitcnt lgkmcnt(0) // 000000000010: BF8C007F
s_andn2_b32 s5, s5, 0x3fff0000 // 000000000014: 8905FF05 3FFF0000
s_buffer_load_dword s2, s[4:7], 0x00 // 00000000001C: C0220082 00000000
s_waitcnt lgkmcnt(0) // 000000000024: BF8C007F
s_lshl_b32 s2, s2, 4 // 000000000028: 8E028402
s_load_dwordx4 s[0:3], s[0:1], s2 // 00000000002C: C0080000 00000002
s_waitcnt lgkmcnt(0) // 000000000034: BF8C007F
s_andn2_b32 s1, s1, 0x3fff0000 // 000000000038: 8901FF01 3FFF0000
s_buffer_load_dword s0, s[0:3], 0x00 // 000000000040: C0220000 00000000
s_waitcnt lgkmcnt(0) // 000000000048: BF8C007F
v_cvt_f32_ubyte0 v0, s0 // 00000000004C: 7E002200
v_cvt_f32_ubyte1 v1, s0 // 000000000050: 7E022400
v_cvt_f32_ubyte2 v2, s0 // 000000000054: 7E042600
v_cvt_f32_ubyte3 v3, s0 // 000000000058: 7E062800
v_mov_b32 v4, 0x3b808081 // 00000000005C: 7E0802FF 3B808081
v_mul_f32 v0, v4, v0 // 000000000064: 0A000104
v_mul_f32 v1, v1, v4 // 000000000068: 0A020901
v_mul_f32 v2, v2, v4 // 00000000006C: 0A040902
v_mul_f32 v3, v3, v4 // 000000000070: 0A060903
v_cvt_pkrtz_f16_f32 v0, v0, v1 // 000000000074: D2960000 00020300
v_cvt_pkrtz_f16_f32 v1, v2, v3 // 00000000007C: D2960001 00020702
exp mrt0, v0, v0, v1, v1 done compr vm // 000000000084: C4001C0F 00000100
s_endpgm // 00000000008C: BF810000
end
1 | 0 | | label_basic_block_1: s_mov_b32 s0, s1
2 | 0 | | s_movk_i32 s1, 0x0000
3 | 0 | | s_load_dwordx4 s[4:7], s[0:1], 0x140
4 | 0 | | s_waitcnt lgkmcnt(0)
5 | 0 | | s_andn2_b32 s5, s5, 0x3fff0000
6 | 0 | | s_buffer_load_dword s2, s[4:7], 0x00
7 | 0 | | s_waitcnt lgkmcnt(0)
8 | 0 | | s_lshl_b32 s2, s2, 4
9 | 0 | | s_load_dwordx4 s[0:3], s[0:1], s2
10 | 0 | | s_waitcnt lgkmcnt(0)
11 | 0 | | s_andn2_b32 s1, s1, 0x3fff0000
12 | 0 | | s_buffer_load_dword s0, s[0:3], 0x00
13 | 0 | | s_waitcnt lgkmcnt(0)
14 | 1 | ^ | v_cvt_f32_ubyte0 v0, s0
15 | 2 | :^ | v_cvt_f32_ubyte1 v1, s0
16 | 3 | ::^ | v_cvt_f32_ubyte2 v2, s0
17 | 4 | :::^ | v_cvt_f32_ubyte3 v3, s0
18 | 5 | ::::^ | v_mov_b32 v4, 0x3b808081
19 | 5 | x:::v | v_mul_f32 v0, v4, v0
20 | 5 | :x::v | v_mul_f32 v1, v1, v4
21 | 5 | ::x:v | v_mul_f32 v2, v2, v4
22 | 5 | :::xv | v_mul_f32 v3, v3, v4
23 | 4 | xv:: | v_cvt_pkrtz_f16_f32 v0, v0, v1
24 | 4 | :^vv | v_cvt_pkrtz_f16_f32 v1, v2, v3
25 | 2 | vv | exp mrt0, v0, v0, v1, v1
26 | 0 | | s_endpgm
Maximum # VGPR used 5, # VGPR allocated: 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment