WUT  0.1
Wii U Toolchain
shaders.h
Go to the documentation of this file.
1 #pragma once
2 #include <wut.h>
3 #include "enum.h"
4 #include "sampler.h"
5 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 typedef struct GX2AttribVar GX2AttribVar;
20 typedef struct GX2LoopVar GX2LoopVar;
27 
29 {
31 
32  struct
33  {
35  } regs;
36 
37  uint32_t size;
38  uint8_t *program;
39  uint32_t attribCount;
40  uint32_t numDivisors;
41  uint32_t divisors[2];
42 };
43 CHECK_OFFSET(GX2FetchShader, 0x0, type);
44 CHECK_OFFSET(GX2FetchShader, 0x4, regs.sq_pgm_resources_fs);
45 CHECK_OFFSET(GX2FetchShader, 0x8, size);
46 CHECK_OFFSET(GX2FetchShader, 0xc, program);
47 CHECK_OFFSET(GX2FetchShader, 0x10, attribCount);
48 CHECK_OFFSET(GX2FetchShader, 0x14, numDivisors);
49 CHECK_OFFSET(GX2FetchShader, 0x18, divisors);
50 CHECK_SIZE(GX2FetchShader, 0x20);
51 
53 {
54  const char *name;
55  uint32_t offset;
56  uint32_t size;
57 };
58 CHECK_OFFSET(GX2UniformBlock, 0x00, name);
59 CHECK_OFFSET(GX2UniformBlock, 0x04, offset);
60 CHECK_OFFSET(GX2UniformBlock, 0x08, size);
61 CHECK_SIZE(GX2UniformBlock, 0x0C);
62 
64 {
65  const char *name;
67  uint32_t count;
68  uint32_t offset;
69  int32_t block;
70 };
71 CHECK_OFFSET(GX2UniformVar, 0x00, name);
72 CHECK_OFFSET(GX2UniformVar, 0x04, type);
73 CHECK_OFFSET(GX2UniformVar, 0x08, count);
74 CHECK_OFFSET(GX2UniformVar, 0x0C, offset);
75 CHECK_OFFSET(GX2UniformVar, 0x10, block);
76 CHECK_SIZE(GX2UniformVar, 0x14);
77 
79 {
80  float value[4];
81  uint32_t offset;
82 };
83 CHECK_OFFSET(GX2UniformInitialValue, 0x00, value);
84 CHECK_OFFSET(GX2UniformInitialValue, 0x10, offset);
85 CHECK_SIZE(GX2UniformInitialValue, 0x14);
86 
87 struct GX2LoopVar
88 {
89  uint32_t offset;
90  uint32_t value;
91 };
92 CHECK_OFFSET(GX2LoopVar, 0x00, offset);
93 CHECK_OFFSET(GX2LoopVar, 0x04, value);
94 CHECK_SIZE(GX2LoopVar, 0x08);
95 
97 {
98  const char *name;
100  uint32_t location;
101 };
102 CHECK_OFFSET(GX2SamplerVar, 0x00, name);
103 CHECK_OFFSET(GX2SamplerVar, 0x04, type);
104 CHECK_OFFSET(GX2SamplerVar, 0x08, location);
105 CHECK_SIZE(GX2SamplerVar, 0x0C);
106 
108 {
109  const char *name;
111  uint32_t count;
112  uint32_t location;
113 };
114 CHECK_OFFSET(GX2AttribVar, 0x00, name);
115 CHECK_OFFSET(GX2AttribVar, 0x04, type);
116 CHECK_OFFSET(GX2AttribVar, 0x08, count);
117 CHECK_OFFSET(GX2AttribVar, 0x0C, location);
118 CHECK_SIZE(GX2AttribVar, 0x10);
119 
121 {
122  struct
123  {
128  uint32_t spi_vs_out_id[10];
132  uint32_t sq_vtx_semantic[32];
136  } regs;
137 
138  uint32_t size;
139  uint8_t *program;
141 
144 
145  uint32_t uniformVarCount;
147 
150 
151  uint32_t loopVarCount;
153 
154  uint32_t samplerVarCount;
156 
157  uint32_t attribVarCount;
159 
160  uint32_t ringItemsize;
161 
163  uint32_t streamOutStride[4];
164 
165  UNKNOWN(4 * 4);
166 };
167 CHECK_OFFSET(GX2VertexShader, 0x00, regs.sq_pgm_resources_vs);
168 CHECK_OFFSET(GX2VertexShader, 0x04, regs.vgt_primitiveid_en);
169 CHECK_OFFSET(GX2VertexShader, 0x08, regs.spi_vs_out_config);
170 CHECK_OFFSET(GX2VertexShader, 0x0C, regs.num_spi_vs_out_id);
171 CHECK_OFFSET(GX2VertexShader, 0x10, regs.spi_vs_out_id);
172 CHECK_OFFSET(GX2VertexShader, 0x38, regs.pa_cl_vs_out_cntl);
173 CHECK_OFFSET(GX2VertexShader, 0x3C, regs.sq_vtx_semantic_clear);
174 CHECK_OFFSET(GX2VertexShader, 0x40, regs.num_sq_vtx_semantic);
175 CHECK_OFFSET(GX2VertexShader, 0x44, regs.sq_vtx_semantic);
176 CHECK_OFFSET(GX2VertexShader, 0xC4, regs.vgt_strmout_buffer_en);
177 CHECK_OFFSET(GX2VertexShader, 0xC8, regs.vgt_vertex_reuse_block_cntl);
178 CHECK_OFFSET(GX2VertexShader, 0xCC, regs.vgt_hos_reuse_depth);
179 CHECK_OFFSET(GX2VertexShader, 0xD0, size);
180 CHECK_OFFSET(GX2VertexShader, 0xD4, program);
181 CHECK_OFFSET(GX2VertexShader, 0xD8, mode);
182 CHECK_OFFSET(GX2VertexShader, 0xDc, uniformBlockCount);
183 CHECK_OFFSET(GX2VertexShader, 0xE0, uniformBlocks);
184 CHECK_OFFSET(GX2VertexShader, 0xE4, uniformVarCount);
185 CHECK_OFFSET(GX2VertexShader, 0xE8, uniformVars);
186 CHECK_OFFSET(GX2VertexShader, 0xEc, initialValueCount);
187 CHECK_OFFSET(GX2VertexShader, 0xF0, initialValues);
188 CHECK_OFFSET(GX2VertexShader, 0xF4, loopVarCount);
189 CHECK_OFFSET(GX2VertexShader, 0xF8, loopVars);
190 CHECK_OFFSET(GX2VertexShader, 0xFc, samplerVarCount);
191 CHECK_OFFSET(GX2VertexShader, 0x100, samplerVars);
192 CHECK_OFFSET(GX2VertexShader, 0x104, attribVarCount);
193 CHECK_OFFSET(GX2VertexShader, 0x108, attribVars);
194 CHECK_OFFSET(GX2VertexShader, 0x10c, ringItemsize);
195 CHECK_OFFSET(GX2VertexShader, 0x110, hasStreamOut);
196 CHECK_OFFSET(GX2VertexShader, 0x114, streamOutStride);
197 CHECK_SIZE(GX2VertexShader, 0x134);
198 
200 {
201  struct
202  {
208  uint32_t spi_ps_input_cntls[32];
209  uint32_t cb_shader_mask;
212  uint32_t spi_input_z;
213  } regs;
214 
215  uint32_t size;
216  uint8_t *program;
218 
221 
222  uint32_t uniformVarCount;
224 
227 
228  uint32_t loopVarCount;
230 
231  uint32_t samplerVarCount;
233 
234  UNKNOWN(4 * 4);
235 };
236 CHECK_OFFSET(GX2PixelShader, 0x00, regs.sq_pgm_resources_ps);
237 CHECK_OFFSET(GX2PixelShader, 0x04, regs.sq_pgm_exports_ps);
238 CHECK_OFFSET(GX2PixelShader, 0x08, regs.spi_ps_in_control_0);
239 CHECK_OFFSET(GX2PixelShader, 0x0C, regs.spi_ps_in_control_1);
240 CHECK_OFFSET(GX2PixelShader, 0x10, regs.num_spi_ps_input_cntl);
241 CHECK_OFFSET(GX2PixelShader, 0x14, regs.spi_ps_input_cntls);
242 CHECK_OFFSET(GX2PixelShader, 0x94, regs.cb_shader_mask);
243 CHECK_OFFSET(GX2PixelShader, 0x98, regs.cb_shader_control);
244 CHECK_OFFSET(GX2PixelShader, 0x9C, regs.db_shader_control);
245 CHECK_OFFSET(GX2PixelShader, 0xA0, regs.spi_input_z);
246 CHECK_OFFSET(GX2PixelShader, 0xA4, size);
247 CHECK_OFFSET(GX2PixelShader, 0xA8, program);
248 CHECK_OFFSET(GX2PixelShader, 0xAC, mode);
249 CHECK_OFFSET(GX2PixelShader, 0xB0, uniformBlockCount);
250 CHECK_OFFSET(GX2PixelShader, 0xB4, uniformBlocks);
251 CHECK_OFFSET(GX2PixelShader, 0xB8, uniformVarCount);
252 CHECK_OFFSET(GX2PixelShader, 0xBC, uniformVars);
253 CHECK_OFFSET(GX2PixelShader, 0xC0, initialValueCount);
254 CHECK_OFFSET(GX2PixelShader, 0xC4, initialValues);
255 CHECK_OFFSET(GX2PixelShader, 0xC8, loopVarCount);
256 CHECK_OFFSET(GX2PixelShader, 0xCC, loopVars);
257 CHECK_OFFSET(GX2PixelShader, 0xD0, samplerVarCount);
258 CHECK_OFFSET(GX2PixelShader, 0xD4, samplerVars);
259 CHECK_SIZE(GX2PixelShader, 0xe8);
260 
262 {
263  struct
264  {
267  uint32_t vgt_gs_mode;
273  uint32_t spi_vs_out_id[10];
275  } regs;
276 
277  uint32_t size;
278  uint8_t *program;
280  uint8_t *vertexProgram;
282 
285 
286  uint32_t uniformVarCount;
288 
291 
292  uint32_t loopVarCount;
294 
295  uint32_t samplerVarCount;
297 
298  uint32_t ringItemSize;
300  uint32_t streamOutStride[4];
301  UNKNOWN(4 * 4);
302 };
303 CHECK_OFFSET(GX2GeometryShader, 0x00, regs.sq_pgm_resources_gs);
304 CHECK_OFFSET(GX2GeometryShader, 0x04, regs.vgt_gs_out_prim_type);
305 CHECK_OFFSET(GX2GeometryShader, 0x08, regs.vgt_gs_mode);
306 CHECK_OFFSET(GX2GeometryShader, 0x0C, regs.pa_cl_vs_out_cntl);
307 CHECK_OFFSET(GX2GeometryShader, 0x10, regs.sq_pgm_resources_vs);
308 CHECK_OFFSET(GX2GeometryShader, 0x14, regs.sq_gs_vert_itemsize);
309 CHECK_OFFSET(GX2GeometryShader, 0x18, regs.spi_vs_out_config);
310 CHECK_OFFSET(GX2GeometryShader, 0x1C, regs.num_spi_vs_out_id);
311 CHECK_OFFSET(GX2GeometryShader, 0x20, regs.spi_vs_out_id);
312 CHECK_OFFSET(GX2GeometryShader, 0x48, regs.vgt_strmout_buffer_en);
313 CHECK_OFFSET(GX2GeometryShader, 0x4C, size);
314 CHECK_OFFSET(GX2GeometryShader, 0x50, program);
315 CHECK_OFFSET(GX2GeometryShader, 0x54, vertexProgramSize);
316 CHECK_OFFSET(GX2GeometryShader, 0x58, vertexProgram);
317 CHECK_OFFSET(GX2GeometryShader, 0x5C, mode);
318 CHECK_OFFSET(GX2GeometryShader, 0x60, uniformBlockCount);
319 CHECK_OFFSET(GX2GeometryShader, 0x64, uniformBlocks);
320 CHECK_OFFSET(GX2GeometryShader, 0x68, uniformVarCount);
321 CHECK_OFFSET(GX2GeometryShader, 0x6C, uniformVars);
322 CHECK_OFFSET(GX2GeometryShader, 0x70, initialValueCount);
323 CHECK_OFFSET(GX2GeometryShader, 0x74, initialValues);
324 CHECK_OFFSET(GX2GeometryShader, 0x78, loopVarCount);
325 CHECK_OFFSET(GX2GeometryShader, 0x7C, loopVars);
326 CHECK_OFFSET(GX2GeometryShader, 0x80, samplerVarCount);
327 CHECK_OFFSET(GX2GeometryShader, 0x84, samplerVars);
328 CHECK_OFFSET(GX2GeometryShader, 0x88, ringItemSize);
329 CHECK_OFFSET(GX2GeometryShader, 0x8C, hasStreamOut);
330 CHECK_OFFSET(GX2GeometryShader, 0x90, streamOutStride);
331 CHECK_SIZE(GX2GeometryShader, 0xB0);
332 
334 {
335  uint32_t location;
336  uint32_t buffer;
337  uint32_t offset;
340  uint32_t aluDivisor;
341  uint32_t mask;
343 };
344 CHECK_OFFSET(GX2AttribStream, 0x0, location);
345 CHECK_OFFSET(GX2AttribStream, 0x4, buffer);
346 CHECK_OFFSET(GX2AttribStream, 0x8, offset);
347 CHECK_OFFSET(GX2AttribStream, 0xc, format);
348 CHECK_OFFSET(GX2AttribStream, 0x10, type);
349 CHECK_OFFSET(GX2AttribStream, 0x14, aluDivisor);
350 CHECK_OFFSET(GX2AttribStream, 0x18, mask);
351 CHECK_OFFSET(GX2AttribStream, 0x1c, endianSwap);
352 CHECK_SIZE(GX2AttribStream, 0x20);
353 
354 uint32_t
355 GX2CalcGeometryShaderInputRingBufferSize(uint32_t ringItemSize);
356 
357 uint32_t
358 GX2CalcGeometryShaderOutputRingBufferSize(uint32_t ringItemSize);
359 
360 uint32_t
361 GX2CalcFetchShaderSizeEx(uint32_t attribs,
362  GX2FetchShaderType fetchShaderType,
363  GX2TessellationMode tesellationMode);
364 
365 void
367  uint8_t *buffer,
368  uint32_t attribCount,
369  GX2AttribStream *attribs,
370  GX2FetchShaderType type,
371  GX2TessellationMode tessMode);
372 
373 void
375 
376 void
378 
379 void
381 
382 void
384 
385 void
387  uint32_t id);
388 
389 void
391  uint32_t id);
392 
393 void
395  uint32_t id);
396 
397 void
398 GX2SetVertexUniformReg(uint32_t offset,
399  uint32_t count,
400  uint32_t *data);
401 
402 void
403 GX2SetPixelUniformReg(uint32_t offset,
404  uint32_t count,
405  uint32_t *data);
406 
407 void
408 GX2SetVertexUniformBlock(uint32_t location,
409  uint32_t size,
410  const void *data);
411 
412 void
413 GX2SetPixelUniformBlock(uint32_t location,
414  uint32_t size,
415  const void *data);
416 
417 void
418 GX2SetGeometryUniformBlock(uint32_t location,
419  uint32_t size,
420  const void *data);
421 
422 void
424  uint32_t numVsGpr, uint32_t numVsStackEntries,
425  uint32_t numGsGpr, uint32_t numGsStackEntries,
426  uint32_t numPsGpr, uint32_t numPsStackEntries);
427 
428 void
430 
431 void
433  uint32_t size);
434 
435 void
437  uint32_t size);
438 
439 uint32_t
441 
442 uint32_t
444 
445 uint32_t
447 
448 uint32_t
450 
451 uint32_t
453 
454 uint32_t
456 
457 #ifdef __cplusplus
458 }
459 #endif
460 
uint32_t vgt_hos_reuse_depth
Definition: shaders.h:135
void GX2SetVertexShader(GX2VertexShader *shader)
const char * name
Definition: shaders.h:98
GX2ShaderVarType
Definition: enum.h:285
uint32_t spi_vs_out_id[10]
Definition: shaders.h:273
uint32_t GX2CalcGeometryShaderOutputRingBufferSize(uint32_t ringItemSize)
GX2AttribFormat format
Definition: shaders.h:338
uint32_t uniformVarCount
Definition: shaders.h:222
uint32_t sq_pgm_resources_fs
Definition: shaders.h:34
uint32_t spi_input_z
Definition: shaders.h:212
GX2UniformVar * uniformVars
Definition: shaders.h:146
uint32_t num_spi_vs_out_id
Definition: shaders.h:272
uint8_t * program
Definition: shaders.h:139
GX2AttribVar * attribVars
Definition: shaders.h:158
uint32_t size
Definition: shaders.h:215
GX2SamplerVar * samplerVars
Definition: shaders.h:296
uint32_t loopVarCount
Definition: shaders.h:228
uint32_t samplerVarCount
Definition: shaders.h:231
uint32_t samplerVarCount
Definition: shaders.h:154
uint32_t uniformBlockCount
Definition: shaders.h:219
uint32_t size
Definition: shaders.h:56
uint32_t num_spi_vs_out_id
Definition: shaders.h:127
uint32_t location
Definition: shaders.h:100
GX2UniformInitialValue * initialValues
Definition: shaders.h:149
uint32_t initialValueCount
Definition: shaders.h:225
uint32_t num_sq_vtx_semantic
Definition: shaders.h:131
struct GX2FetchShader::@0 regs
GX2ShaderMode mode
Definition: shaders.h:281
uint32_t uniformVarCount
Definition: shaders.h:286
uint32_t spi_vs_out_id[10]
Definition: shaders.h:128
GX2UniformInitialValue * initialValues
Definition: shaders.h:290
uint32_t sq_vtx_semantic_clear
Definition: shaders.h:130
GX2FetchShaderType
Definition: enum.h:155
uint32_t sq_pgm_exports_ps
Definition: shaders.h:204
uint32_t GX2CalcGeometryShaderInputRingBufferSize(uint32_t ringItemSize)
uint32_t size
Definition: shaders.h:138
void GX2SetVertexUniformReg(uint32_t offset, uint32_t count, uint32_t *data)
uint32_t offset
Definition: shaders.h:68
struct GX2PixelShader::@2 regs
uint32_t vgt_primitiveid_en
Definition: shaders.h:125
uint32_t initialValueCount
Definition: shaders.h:289
uint32_t spi_ps_in_control_0
Definition: shaders.h:205
uint32_t initialValueCount
Definition: shaders.h:148
void GX2InitFetchShaderEx(GX2FetchShader *fetchShader, uint8_t *buffer, uint32_t attribCount, GX2AttribStream *attribs, GX2FetchShaderType type, GX2TessellationMode tessMode)
uint32_t GX2CalcFetchShaderSizeEx(uint32_t attribs, GX2FetchShaderType fetchShaderType, GX2TessellationMode tesellationMode)
uint32_t loopVarCount
Definition: shaders.h:292
uint32_t uniformBlockCount
Definition: shaders.h:283
uint32_t spi_ps_in_control_1
Definition: shaders.h:206
void GX2SetGeometrySampler(GX2Sampler *sampler, uint32_t id)
uint32_t spi_ps_input_cntls[32]
Definition: shaders.h:208
void GX2SetPixelShader(GX2PixelShader *shader)
uint32_t GX2GetVertexShaderStackEntries(GX2VertexShader *shader)
uint8_t * vertexProgram
Definition: shaders.h:280
uint32_t size
Definition: shaders.h:277
uint32_t count
Definition: shaders.h:67
GX2LoopVar * loopVars
Definition: shaders.h:293
uint32_t offset
Definition: shaders.h:337
GX2EndianSwapMode endianSwap
Definition: shaders.h:342
uint32_t num_spi_ps_input_cntl
Definition: shaders.h:207
void GX2SetPixelUniformBlock(uint32_t location, uint32_t size, const void *data)
uint32_t attribCount
Definition: shaders.h:39
uint8_t * program
Definition: shaders.h:38
uint32_t divisors[2]
Definition: shaders.h:41
uint32_t numDivisors
Definition: shaders.h:40
uint32_t cb_shader_control
Definition: shaders.h:210
uint32_t value
Definition: shaders.h:90
uint32_t vgt_strmout_buffer_en
Definition: shaders.h:133
const char * name
Definition: shaders.h:109
uint32_t pa_cl_vs_out_cntl
Definition: shaders.h:129
uint32_t vgt_strmout_buffer_en
Definition: shaders.h:274
GX2ShaderVarType type
Definition: shaders.h:66
GX2ShaderMode
Definition: enum.h:277
void GX2SetStreamOutEnable(BOOL enable)
void GX2SetGeometryShaderOutputRingBuffer(void *buffer, uint32_t size)
uint32_t buffer
Definition: shaders.h:336
void GX2SetPixelSampler(GX2Sampler *sampler, uint32_t id)
void GX2SetFetchShader(GX2FetchShader *shader)
GX2EndianSwapMode
Definition: enum.h:147
void GX2SetVertexSampler(GX2Sampler *sampler, uint32_t id)
uint32_t size
Definition: shaders.h:37
uint32_t sq_pgm_resources_vs
Definition: shaders.h:269
void GX2SetShaderModeEx(GX2ShaderMode mode, uint32_t numVsGpr, uint32_t numVsStackEntries, uint32_t numGsGpr, uint32_t numGsStackEntries, uint32_t numPsGpr, uint32_t numPsStackEntries)
uint32_t aluDivisor
Definition: shaders.h:340
uint32_t offset
Definition: shaders.h:89
void GX2SetGeometryShader(GX2GeometryShader *shader)
GX2AttribFormat
Definition: enum.h:28
uint32_t sq_gs_vert_itemsize
Definition: shaders.h:270
GX2UniformVar * uniformVars
Definition: shaders.h:287
const char * name
Definition: shaders.h:65
uint32_t mask
Definition: shaders.h:341
uint32_t ringItemSize
Definition: shaders.h:298
void GX2SetPixelUniformReg(uint32_t offset, uint32_t count, uint32_t *data)
GX2ShaderMode mode
Definition: shaders.h:140
GX2SamplerVar * samplerVars
Definition: shaders.h:155
uint32_t sq_pgm_resources_vs
Definition: shaders.h:124
uint32_t location
Definition: shaders.h:335
uint32_t attribVarCount
Definition: shaders.h:157
uint32_t cb_shader_mask
Definition: shaders.h:209
uint32_t ringItemsize
Definition: shaders.h:160
GX2UniformBlock * uniformBlocks
Definition: shaders.h:284
int32_t block
Definition: shaders.h:69
GX2AttribIndexType
Definition: enum.h:52
struct GX2VertexShader::@1 regs
uint8_t * program
Definition: shaders.h:216
uint32_t samplerVarCount
Definition: shaders.h:295
GX2UniformInitialValue * initialValues
Definition: shaders.h:226
uint32_t sq_pgm_resources_ps
Definition: shaders.h:203
void GX2SetGeometryShaderInputRingBuffer(void *buffer, uint32_t size)
uint32_t vgt_gs_mode
Definition: shaders.h:267
uint32_t pa_cl_vs_out_cntl
Definition: shaders.h:268
GX2ShaderMode mode
Definition: shaders.h:217
uint32_t spi_vs_out_config
Definition: shaders.h:271
uint32_t GX2GetVertexShaderGPRs(GX2VertexShader *shader)
int BOOL
Definition: wut_types.h:4
GX2LoopVar * loopVars
Definition: shaders.h:152
uint32_t loopVarCount
Definition: shaders.h:151
GX2UniformBlock * uniformBlocks
Definition: shaders.h:143
GX2SamplerVar * samplerVars
Definition: shaders.h:232
uint32_t GX2GetPixelShaderGPRs(GX2PixelShader *shader)
GX2UniformBlock * uniformBlocks
Definition: shaders.h:220
uint32_t db_shader_control
Definition: shaders.h:211
uint32_t vgt_gs_out_prim_type
Definition: shaders.h:266
const char * name
Definition: shaders.h:54
uint32_t offset
Definition: shaders.h:55
GX2TessellationMode
Definition: enum.h:405
GX2LoopVar * loopVars
Definition: shaders.h:229
uint32_t count
Definition: shaders.h:111
uint8_t * program
Definition: shaders.h:278
BOOL hasStreamOut
Definition: shaders.h:162
uint32_t streamOutStride[4]
Definition: shaders.h:300
uint32_t spi_vs_out_config
Definition: shaders.h:126
uint32_t uniformVarCount
Definition: shaders.h:145
uint32_t GX2GetGeometryShaderStackEntries(GX2GeometryShader *shader)
GX2UniformVar * uniformVars
Definition: shaders.h:223
struct GX2GeometryShader::@3 regs
uint32_t uniformBlockCount
Definition: shaders.h:142
GX2FetchShaderType type
Definition: shaders.h:30
uint32_t streamOutStride[4]
Definition: shaders.h:163
uint32_t GX2GetPixelShaderStackEntries(GX2PixelShader *shader)
GX2AttribIndexType type
Definition: shaders.h:339
void GX2SetGeometryUniformBlock(uint32_t location, uint32_t size, const void *data)
uint32_t sq_pgm_resources_gs
Definition: shaders.h:265
GX2SamplerVarType
Definition: enum.h:263
uint32_t sq_vtx_semantic[32]
Definition: shaders.h:132
uint32_t vgt_vertex_reuse_block_cntl
Definition: shaders.h:134
uint32_t location
Definition: shaders.h:112
uint32_t vertexProgramSize
Definition: shaders.h:279
uint32_t GX2GetGeometryShaderGPRs(GX2GeometryShader *shader)
void GX2SetVertexUniformBlock(uint32_t location, uint32_t size, const void *data)
GX2ShaderVarType type
Definition: shaders.h:110
GX2SamplerVarType type
Definition: shaders.h:99