1b0ab5608Smrg/*
2b0ab5608Smrg * Copyright 2022 Advanced Micro Devices, Inc.
3b0ab5608Smrg *
4b0ab5608Smrg * Permission is hereby granted, free of charge, to any person obtaining a
5b0ab5608Smrg * copy of this software and associated documentation files (the "Software"),
6b0ab5608Smrg * to deal in the Software without restriction, including without limitation
7b0ab5608Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8b0ab5608Smrg * and/or sell copies of the Software, and to permit persons to whom the
9b0ab5608Smrg * Software is furnished to do so, subject to the following conditions:
10b0ab5608Smrg *
11b0ab5608Smrg * The above copyright notice and this permission notice shall be included in
12b0ab5608Smrg * all copies or substantial portions of the Software.
13b0ab5608Smrg *
14b0ab5608Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15b0ab5608Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16b0ab5608Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17b0ab5608Smrg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18b0ab5608Smrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19b0ab5608Smrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20b0ab5608Smrg * OTHER DEALINGS IN THE SOFTWARE.
21b0ab5608Smrg *
22b0ab5608Smrg*/
23b0ab5608Smrg
24b0ab5608Smrg#ifndef _shader_code_gfx11_h_
25b0ab5608Smrg#define _shader_code_gfx11_h_
26b0ab5608Smrg
27b0ab5608Smrgstatic const uint32_t bufferclear_cs_shader_gfx11[] = {
28b0ab5608Smrg	0xB0802006, 0xBF840003, 0x360000FF, 0x000003FF,
29b0ab5608Smrg	0x7E020205, 0x7E040206, 0x7E060207, 0xBF870004,
30b0ab5608Smrg	0xD6460004, 0x04010C08, 0x7E000204, 0xE01C0000,
31b0ab5608Smrg	0x80800004, 0xBFB60003, 0xBFB00000, 0xBF9F0000,
32b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
33b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
34b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
35b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
36b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
37b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
38b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
39b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
40b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
41b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
42b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
43b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
44b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
45b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
46b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
47b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000
48b0ab5608Smrg};
49b0ab5608Smrg
50b0ab5608Smrgstatic const struct reg_info bufferclear_cs_shader_registers_gfx11[] = {
51b0ab5608Smrg	{0x2e12, 0x600C0041},	//{ mmCOMPUTE_PGM_RSRC1,	  0x600C0041 },
52b0ab5608Smrg	{0x2e13, 0x00000090},	//{ mmCOMPUTE_PGM_RSRC2,	  0x00000090 },
53b0ab5608Smrg	{0x2e07, 0x00000040},	//{ mmCOMPUTE_NUM_THREAD_X, 0x00000040 },
54b0ab5608Smrg	{0x2e08, 0x00000001},	//{ mmCOMPUTE_NUM_THREAD_Y, 0x00000001 },
55b0ab5608Smrg	{0x2e09, 0x00000001},	//{ mmCOMPUTE_NUM_THREAD_Z, 0x00000001 }
56b0ab5608Smrg};
57b0ab5608Smrg
58b0ab5608Smrgstatic const uint32_t buffercopy_cs_shader_gfx11[] = {
59b0ab5608Smrg	0xB0802006, 0xBF840003, 0x360000FF, 0x000003FF,
60b0ab5608Smrg	0xBF870001, 0xD6460001, 0x04010C08, 0xE00C0000,
61b0ab5608Smrg	0x80800201, 0xBF8903F7, 0xE01C0000, 0x80810201,
62b0ab5608Smrg	0xBFB60003, 0xBFB00000, 0xBF9F0000, 0xBF9F0000,
63b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
64b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
65b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
66b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
67b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
68b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
69b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
70b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
71b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
72b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
73b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
74b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
75b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
76b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
77b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
78b0ab5608Smrg	0xBF9F0000, 0xBF9F0000
79b0ab5608Smrg};
80b0ab5608Smrg
81b0ab5608Smrgstatic const uint32_t ps_const_shader_gfx11[] = {
82b0ab5608Smrg    0xB0802006, 0xBF840003, 0x7E000200, 0x7E020201,
83b0ab5608Smrg    0x7E040202, 0x7E060203, 0x5E000300, 0x5E020702,
84b0ab5608Smrg    0xBF800000, 0xBF800000, 0xF8000803, 0x00000100,
85b0ab5608Smrg    0xBFB00000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
86b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
87b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
88b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
89b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
90b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
91b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
92b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
93b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
94b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
95b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
96b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
97b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
98b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
99b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
100b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
101b0ab5608Smrg    0xBF9F0000
102b0ab5608Smrg};
103b0ab5608Smrg
104bbff01ceSmrg#define ps_const_shader_patchinfo_code_size_gfx11 6
105b0ab5608Smrg
106b0ab5608Smrgstatic const uint32_t ps_const_shader_patchinfo_code_gfx11[][10][6] = {
107b0ab5608Smrg	{{ 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000890, 0x00000000 },  // SI_EXPORT_FMT_ZERO
108b0ab5608Smrg	{ 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000801, 0x00000000 },  // SI_EXPORT_FMT_32_R
109b0ab5608Smrg	{ 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_32_GR
110b0ab5608Smrg	{ 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000803, 0x00000300 },  // SI_EXPORT_FMT_32_AR
111b0ab5608Smrg	{ 0x5E000300, 0x5E020702, 0xBF800000, 0xBF800000, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_FP16_ABGR
112b0ab5608Smrg	{ 0xD7220000, 0x00020300, 0xD7220001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_UNORM16_ABGR
113b0ab5608Smrg	{ 0xD7210000, 0x00020300, 0xD7210001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_SNORM16_ABGR
114b0ab5608Smrg	{ 0xD7230000, 0x00020300, 0xD7230001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_uint32_t16_ABGR
115b0ab5608Smrg	{ 0xD7240000, 0x00020300, 0xD7240001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_SINT16_ABGR
116b0ab5608Smrg	{ 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF800080F, 0x03020100 }   // SI_EXPORT_FMT_32_ABGR
117b0ab5608Smrg	}
118b0ab5608Smrg};
119b0ab5608Smrg
120b0ab5608Smrgstatic const uint32_t ps_const_shader_patchinfo_offset_gfx11[] = {
121b0ab5608Smrg	0x00000006
122b0ab5608Smrg};
123b0ab5608Smrg
124bbff01ceSmrg#define ps_const_num_sh_registers_gfx11 2
125b0ab5608Smrg
126b0ab5608Smrgstatic const struct reg_info ps_const_sh_registers_gfx11[] = {
127b0ab5608Smrg	{0x2C0A, 0x020C0000}, //{ mmSPI_SHADER_PGM_RSRC1_PS, 0x020C0000 },
128b0ab5608Smrg	{0x2C0B, 0x00000008}, //{ mmSPI_SHADER_PGM_RSRC2_PS, 0x00000008 }
129b0ab5608Smrg};
130b0ab5608Smrg
131b0ab5608Smrgstatic const struct reg_info ps_const_context_registers_gfx11[] = {
132b0ab5608Smrg	{0xA1B4, 0x00000002 }, //{ mmSPI_PS_INPUT_ADDR,       0x00000002 },
133b0ab5608Smrg	{0xA1B6, 0x00000000 }, //{ mmSPI_PS_IN_CONTROL,       0x00000000 },
134b0ab5608Smrg	{0xA08F, 0x0000000F }, //{ mmCB_SHADER_MASK,          0x0000000F },
135b0ab5608Smrg	{0xA203, 0x00000010 }, //{ mmDB_SHADER_CONTROL,       0x00000010 },
136b0ab5608Smrg	{0xA1C4, 0x00000000 }, //{ mmSPI_SHADER_Z_FORMAT,     0x00000000 },
137b0ab5608Smrg	{0xA1B8, 0x00000000 }, //{ mmSPI_BARYC_CNTL,          0x00000000 /* Always 0 for now */},
138b0ab5608Smrg	{0xA1C5, 0x00000004 }, //{ mmSPI_SHADER_COL_FORMAT,   0x00000004 /* SI_EXPORT_FMT_FP16_ABGR */ }
139b0ab5608Smrg};
140b0ab5608Smrg
141bbff01ceSmrg#define ps_const_num_context_registers_gfx11 7
142b0ab5608Smrg
143b0ab5608Smrgstatic const uint32_t ps_tex_shader_gfx11[] =
144b0ab5608Smrg{
145b0ab5608Smrg    0xB0802006, 0xBF840003, 0xBEFD000C, 0xBE8E017E,
146b0ab5608Smrg    0xBEFE1D7E, 0xCE000003, 0xCE000102, 0xCD000104,
147b0ab5608Smrg    0x040E0103, 0xCD000000, 0x040A0102, 0xBF870112,
148b0ab5608Smrg    0xCD010703, 0x04120303, 0xCD010700, 0x04020302,
149b0ab5608Smrg    0x8BFE0E7E, 0xF06C0F05, 0x08000003, 0x00000000,
150b0ab5608Smrg    0xBEFE010E, 0xBF8903F7, 0x5E000300, 0x5E020702,
151b0ab5608Smrg    0xBF800000, 0xBF800000, 0xF8000803, 0x00000100,
152b0ab5608Smrg    0xBFB00000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
153b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
154b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
155b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
156b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
157b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
158b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
159b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
160b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
161b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
162b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
163b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
164b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
165b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
166b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
167b0ab5608Smrg    0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
168b0ab5608Smrg    0xBF9F0000
169b0ab5608Smrg};
170b0ab5608Smrg
171b0ab5608Smrgstatic const uint32_t ps_tex_shader_patchinfo_offset_gfx11[] =
172b0ab5608Smrg{
173b0ab5608Smrg    0x00000016
174b0ab5608Smrg};
175b0ab5608Smrg
176b0ab5608Smrg// Denotes the Patch Info Code Length
177bbff01ceSmrg#define ps_tex_shader_patchinfo_code_size_gfx11 6
178b0ab5608Smrg
179b0ab5608Smrgstatic const uint32_t ps_tex_shader_patchinfo_code_gfx11[][10][6] =
180b0ab5608Smrg{
181b0ab5608Smrg    {{ 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000890, 0x00000000 },  // SI_EXPORT_FMT_ZERO
182b0ab5608Smrg     { 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000801, 0x00000000 },  // SI_EXPORT_FMT_32_R
183b0ab5608Smrg     { 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_32_GR
184b0ab5608Smrg     { 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF8000803, 0x00000300 },  // SI_EXPORT_FMT_32_AR
185b0ab5608Smrg     { 0x5E000300, 0x5E020702, 0xBF800000, 0xBF800000, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_FP16_ABGR
186b0ab5608Smrg     { 0xD7220000, 0x00020300, 0xD7220001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_UNORM16_ABGR
187b0ab5608Smrg     { 0xD7210000, 0x00020300, 0xD7210001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_SNORM16_ABGR
188b0ab5608Smrg     { 0xD7230000, 0x00020300, 0xD7230001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_uint32_t16_ABGR
189b0ab5608Smrg     { 0xD7240000, 0x00020300, 0xD7240001, 0x00020702, 0xF8000803, 0x00000100 },  // SI_EXPORT_FMT_SINT16_ABGR
190b0ab5608Smrg     { 0xBF800000, 0xBF800000, 0xBF800000, 0xBF800000, 0xF800080F, 0x03020100 }   // SI_EXPORT_FMT_32_ABGR
191b0ab5608Smrg    }
192b0ab5608Smrg};
193b0ab5608Smrg// Holds Sh Register Information
194b0ab5608Smrgstatic const struct reg_info ps_tex_sh_registers_gfx11[] =
195b0ab5608Smrg{
196b0ab5608Smrg    {0x2C0A, 0x020C0081 }, //{ mmSPI_SHADER_PGM_RSRC1_PS, 0x020C0081 },
197b0ab5608Smrg    {0x2C0B, 0x00000018 } //{ mmSPI_SHADER_PGM_RSRC2_PS, 0x00000018 }
198b0ab5608Smrg};
199b0ab5608Smrg
200bbff01ceSmrg#define ps_tex_num_sh_registers_gfx11 2
201b0ab5608Smrg
202b0ab5608Smrg// Holds Context Register Information
203b0ab5608Smrgstatic const struct reg_info ps_tex_context_registers_gfx11[] =
204b0ab5608Smrg{
205b0ab5608Smrg    {0xA1B4, 0x00000002 }, //{ mmSPI_PS_INPUT_ADDR,       0x00000002 },
206b0ab5608Smrg    {0xA1B6, 0x00000001 }, //{ mmSPI_PS_IN_CONTROL,       0x00000001 },
207b0ab5608Smrg    {0xA08F, 0x0000000F }, //{ mmCB_SHADER_MASK,          0x0000000F },
208b0ab5608Smrg    {0xA203, 0x00000010 }, //{ mmDB_SHADER_CONTROL,       0x00000010 },
209b0ab5608Smrg    {0xA1C4, 0x00000000 }, //{ mmSPI_SHADER_Z_FORMAT,     0x00000000 },
210b0ab5608Smrg    {0xA1B8, 0x00000000 }, //{ mmSPI_BARYC_CNTL,          0x00000000 /* Always 0 for now */},
211b0ab5608Smrg    {0xA1C5, 0x00000004 } //{ mmSPI_SHADER_COL_FORMAT,   0x00000004 /* SI_EXPORT_FMT_FP16_ABGR */ }
212b0ab5608Smrg};
213b0ab5608Smrg
214bbff01ceSmrg#define ps_tex_num_context_registers_gfx11 7
215b0ab5608Smrg
216b0ab5608Smrgstatic const uint32_t vs_RectPosTexFast_shader_gfx11[] =
217b0ab5608Smrg{
218b0ab5608Smrg	0xB0802006, 0xBEFE01C1, 0xBF840003, 0xF408050A,
219b0ab5608Smrg	0xF80000B0, 0xD71F0001, 0x000100C1, 0x9300FF03,
220b0ab5608Smrg	0x00040018, 0x9301FF02, 0x0009000C, 0xBF870091,
221b0ab5608Smrg	0xD7200001, 0x000202C1, 0xD60B0001, 0x04058000,
222b0ab5608Smrg	0xBF870001, 0xD4490000, 0x00000301, 0xBE862100,
223b0ab5608Smrg	0x7E040B05, 0xBFA5001C, 0x7E06020A, 0x7E08020E,
224b0ab5608Smrg	0x7E0A020F, 0xBF8701B4, 0x060404F3, 0x7E140211,
225b0ab5608Smrg	0x7E0E0210, 0x7C240480, 0x060404F3, 0xD5010003,
226b0ab5608Smrg	0x01AA0608, 0xD5010004, 0x01AA080C, 0xBF870003,
227b0ab5608Smrg	0xD4120012, 0x00010102, 0x7E04020B, 0xBEEA1F12,
228b0ab5608Smrg	0xBF870483, 0xD5010008, 0x01AA080C, 0xD5010006,
229b0ab5608Smrg	0x01AA0608, 0xBF870003, 0xD5010004, 0x004A0409,
230b0ab5608Smrg	0xD5010009, 0x004A0A0D, 0xBEFE0106, 0x9302FF02,
231b0ab5608Smrg	0x00090016, 0xBF870009, 0xD4C9007E, 0x00000501,
232b0ab5608Smrg	0xBFA50002, 0xF8000941, 0x00000000, 0xBF89FFF0,
233b0ab5608Smrg	0x8BFE0006, 0xD71F0000, 0x000100C1, 0xBFA50013,
234b0ab5608Smrg	0x7E1602F2, 0x9300FF03, 0x00040018, 0x8B01FF05,
235b0ab5608Smrg	0x00007FFF, 0xBF8704B2, 0xD7200000, 0x000200C1,
236b0ab5608Smrg	0x7E0202F2, 0x84018901, 0x80018001, 0xBF870002,
237b0ab5608Smrg	0xD60B0000, 0x04018000, 0xF80008CF, 0x01070406,
238b0ab5608Smrg	0xBF89FC07, 0xE0744000, 0x01850800, 0xBFB00000,
239b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
240b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
241b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
242b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
243b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
244b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
245b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
246b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
247b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
248b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
249b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
250b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
251b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
252b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
253b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000,
254b0ab5608Smrg	0xBF9F0000, 0xBF9F0000, 0xBF9F0000, 0xBF9F0000
255b0ab5608Smrg};
256b0ab5608Smrg
257b0ab5608Smrgstatic const struct reg_info vs_RectPosTexFast_sh_registers_gfx11[] =
258b0ab5608Smrg{
259b0ab5608Smrg	{0x2C8A, 0x020C00C2}, //{ mmSPI_SHADER_PGM_RSRC1_GS, 0x020C00C2 },
260b0ab5608Smrg	{0x2C8B, 0x0008001C}, //{ mmSPI_SHADER_PGM_RSRC2_GS, 0x0008001C }
261b0ab5608Smrg};
262b0ab5608Smrg
263bbff01ceSmrg#define vs_RectPosTexFast_num_sh_registers_gfx11 2
264b0ab5608Smrg
265b0ab5608Smrg// Holds Context Register Information
266b0ab5608Smrgstatic const struct reg_info vs_RectPosTexFast_context_registers_gfx11[] =
267b0ab5608Smrg{
268b0ab5608Smrg	{0xA1B1, 0x00000000}, //{ mmSPI_VS_OUT_CONFIG, 0x00000000 },
269b0ab5608Smrg	{0xA1C2, 0x00000001}, //{ mmSPI_SHADER_IDX_FORMAT, 0x00000001 },
270b0ab5608Smrg	{0xA1C3, 0x00000000}, //{ mmSPI_SHADER_POS_FORMAT, 0x00000000 /* Always 0 for now */},
271b0ab5608Smrg	{0xA2E4, 0x00000000}, //{ mmVGT_GS_INSTANCE_CNT, 0x00000000 },
272b0ab5608Smrg	{0xA2AB, 0x00000004}, //{ mmVGT_ESGS_RING_ITEMSIZE, 0x00000004 },
273b0ab5608Smrg	{0xA2CE, 0x00000001}, //{ mmVGT_GS_MAX_VERT_OUT, 0x00000001 }
274b0ab5608Smrg};
275b0ab5608Smrg
276bbff01ceSmrg#define vs_RectPosTexFast_num_context_registers_gfx11 6
277b0ab5608Smrg
278b0ab5608Smrgstatic const uint32_t preamblecache_gfx11[] = {
279b0ab5608Smrg	0xc0026900, 0x81, 0x80000000, 0x40004000, 0xc0026900, 0x8c, 0xaa99aaaa, 0x0,
280b0ab5608Smrg	0xc0026900, 0x90, 0x80000000, 0x40004000, 0xc0026900, 0x94,  0x80000000, 0x40004000,
281b0ab5608Smrg	0xc0026900, 0xb4, 0x0, 0x3f800000, 0xc0016900, 0x103, 0x0, 0xc0016900, 0x208, 0x0,
282b0ab5608Smrg	0xc0016900, 0x2a1, 0x0, 0xc0016900,  0x2ad, 0x0, 0xc0016900, 0x2dc, 0x0,
283b0ab5608Smrg	0xc0066900, 0x2de, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
284b0ab5608Smrg	0xc0056900, 0x2f9, 0x5, 0x3f800000, 0x3f800000, 0x3f800000,  0x3f800000,
285b0ab5608Smrg	0xc0046900, 0x310, 0x0, 0x3, 0x0, 0x100000, 0xc0016900, 0x349, 0x0,
286b0ab5608Smrg	0xc0016900, 0x358, 0x0, 0xc0016900, 0x367, 0x0, 0xc0016900, 0x376,  0x0,
287b0ab5608Smrg	0xc0016900, 0x385, 0x0, 0xc0076900, 0x1e1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
288b0ab5608Smrg	0xc0026900, 0x204, 0x90000, 0x4, 0xc0016900, 0x20c, 0x0,  0xc0026900, 0x20e, 0x0, 0x0,
289b0ab5608Smrg	0xc0016900, 0x2b2, 0x0, 0xc0026900, 0x30e, 0xffffffff, 0xffffffff,
290b0ab5608Smrg	0xc0016900, 0x314, 0x0, 0xc0016900, 0x10a, 0x0,  0xc0016900, 0x2a6, 0x0,
291b0ab5608Smrg	0xc0016900, 0x210, 0x0, 0xc0016900, 0x2db, 0x0, 0xc0016900, 0x2e4, 0x0,
292b0ab5608Smrg	0xc0002f00, 0x1, 0xc0016900, 0x1, 0x0, 0xc0016900,  0x206, 0x300,
293b0ab5608Smrg	0xc0016900, 0x212, 0x200, 0xc0016900, 0xf4, 0x0, 0xc0016900, 0x18, 0x0,
294b0ab5608Smrg	0xc0016900, 0x1d4, 0xff, 0xc0016900, 0x2ce, 0x1, 0xc0016900, 0x2d3, 0x20001,
295b0ab5608Smrg	0xc0016900, 0x1ff, 0x80,  0xc0016900, 0x2d5, 0x6012010, 0xc0017a00, 0x20000243, 0x0,
296b0ab5608Smrg	0xc0017900, 0x249, 0x0, 0xc0017900, 0x24a, 0x0, 0xc0017900, 0x24b, 0x0,
297b0ab5608Smrg	0xc0017900,  0x259, 0xffffffff, 0xc0017900, 0x25f, 0x0, 0xc0017900, 0x260, 0x0,
298b0ab5608Smrg	0xc0017900, 0x262, 0x0, 0xc0017900, 0x444, 0x0, 0xc0017900, 0x445, 0x0,
299b0ab5608Smrg	0xc0017600, 0x6, 0x0, 0xc0017600, 0x80, 0x0, 0xc0017600, 0xb0, 0x0,
300b0ab5608Smrg	0xc0047600, 0xb2, 0x0, 0x0, 0x0, 0x0, 0xc0017600, 0x30, 0x0,
301b0ab5608Smrg	0xc0047600, 0x32, 0x0, 0x0, 0x0, 0x0
302b0ab5608Smrg};
303b0ab5608Smrg
304b0ab5608Smrgstatic const uint32_t cached_cmd_gfx11[] = {
305b0ab5608Smrg	0xc0016900, 0x0, 0x0, 0xc0026900, 0x3, 0x2a, 0x0,
306b0ab5608Smrg	0xc0046900, 0xa, 0x0, 0x0, 0x0, 0x200020,
307b0ab5608Smrg	0xc0016900, 0x83, 0xffff, 0xc0026900, 0x8e, 0xf, 0xf,
308b0ab5608Smrg	0xc0056900, 0x105, 0x0, 0x0, 0x0, 0x0, 0x0,
309b0ab5608Smrg	0xc0026900, 0x10b, 0x0, 0x0, 0xc0016900, 0x1e0, 0x0,
310b0ab5608Smrg	0xc0036900, 0x200, 0x0, 0x10000, 0xcc0011,
311b0ab5608Smrg	0xc0026900, 0x292, 0x20, 0x6020000,
312b0ab5608Smrg	0xc0026900, 0x2b0, 0x0, 0x0, 0xc0016900, 0x2f8, 0x0,
313b0ab5608Smrg	0xc0046900, 0x1d5, 0x0, 0x0, 0x0, 0x0, 0xc0016900, 0x104, 0x4a00005,
314b0ab5608Smrg	0xc0016900, 0x1f, 0xf2a0055, 0xc0017900, 0x266, 0x4
315b0ab5608Smrg};
316bbff01ceSmrg
317bbff01ceSmrg#define sh_reg_base_gfx11 0x2C00
318bbff01ceSmrg#define context_reg_base_gfx11 0xA000
319b0ab5608Smrg
320b0ab5608Smrg#endif
321