Last active
April 21, 2020 04:33
-
-
Save Wolfvak/2f3e989c0baccb777e976417a8f77f0c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <assert.h> | |
#include <stdint.h> | |
#include <stddef.h> | |
#include <stdlib.h> | |
static const char *reg_name(unsigned reg); | |
static uint32_t cmd_paramask_to_sane_mask(unsigned mask) { | |
uint32_t ret = 0; | |
ret |= (mask & 1) ? 0xFF : 0; | |
ret |= (mask & 2) ? 0xFF00 : 0; | |
ret |= (mask & 4) ? 0xFF0000 : 0; | |
ret |= (mask & 8) ? 0xFF000000 : 0; | |
return ret; | |
} | |
static unsigned cmd_regid(uint32_t cmd) { | |
return cmd & 0xFFFF; | |
} | |
static unsigned cmd_paramask(uint32_t cmd) { | |
return (cmd >> 16) & 0xF; | |
} | |
static unsigned cmd_params(uint32_t cmd) { | |
return ((cmd >> 20) & 0xFF) + 1; | |
} | |
static unsigned cmd_consecutive(uint32_t cmd) { | |
return cmd >> 31; | |
} | |
static void print_cmd(unsigned reg, uint32_t param, uint32_t mask) { | |
const char *name = reg_name(reg); | |
if (name) { | |
printf("[%s]", name); | |
} else { | |
printf("[GPUREG_%04X]", reg); | |
} | |
//printf("[0x%04X] = %08X", reg, param); | |
printf(" = %08X", param); | |
if (mask != 0xFFFFFFFF) printf(", MASK = %08X", mask); | |
printf("\n"); | |
} | |
static int dump_cmd(uint32_t *w, uint32_t rem) { | |
uint32_t cmd, param_mask; | |
unsigned reg, mask, argc, con; | |
if (rem < 2) { | |
printf("\nEND OF CMDLIST\n"); | |
return 0; | |
} | |
cmd = w[1]; | |
reg = cmd_regid(cmd); | |
mask = cmd_paramask(cmd); | |
argc = cmd_params(cmd); | |
con = cmd_consecutive(cmd); | |
if ((argc+1) > rem) { | |
printf("tried to read more words than available (%d / %d)\n", argc+1, rem); | |
return 0; | |
} | |
param_mask = cmd_paramask_to_sane_mask(mask); | |
print_cmd(reg, w[0], param_mask); | |
w = &w[2]; | |
for (unsigned i = 1; i < argc; i++) { | |
if (con) reg += 1; | |
printf("-> "); | |
print_cmd(reg, *(w++), param_mask); | |
} | |
return argc + 1; | |
} | |
static void dump_cmdlist(uint32_t *w, uint32_t numwords) { | |
while(numwords >= 2) { | |
uint32_t inc = dump_cmd(w, numwords); | |
if (!inc) return; | |
inc = (inc + 1) & ~1; | |
numwords -= inc; | |
w += inc; | |
} | |
} | |
int main(int argc, char *argv[]) | |
{ | |
FILE *fp; | |
uint32_t *buf; | |
size_t datasz, bufsz; | |
assert(argc == 2); | |
fp = fopen(argv[1], "rb"); | |
assert(fp != NULL); | |
fseek(fp, 0L, SEEK_END); | |
datasz = ftell(fp); | |
if (datasz & 15) { | |
printf("WARNING: cmdlist is not aligned to a 16 byte boundary. Ignoring the last %d bytes\n", datasz & 15); | |
datasz &= ~0xF; | |
} | |
buf = calloc(1, datasz); // buffer should be zero-filled | |
assert(buf != NULL); | |
fseek(fp, 0L, SEEK_SET); | |
fread(buf, 1, datasz, fp); | |
fclose(fp); | |
dump_cmdlist(buf, datasz >> 2); | |
free(buf); | |
return 0; | |
} | |
static const char *reg_name(unsigned reg) { | |
switch(reg) { | |
default: return NULL; | |
case 0x10: return "FINALIZE"; | |
case 0x40: return "FACECULLING_CONFIG"; | |
case 0x41: return "VIEWPORT_WIDTH"; | |
case 0x42: return "VIEWPORT_INVW"; | |
case 0x43: return "VIEWPORT_HEIGHT"; | |
case 0x44: return "VIEWPORT_INVH"; | |
case 0x47: return "FRAGOP_CLIP"; | |
case 0x48: return "FRAGOP_CLIP_DATA0"; | |
case 0x49: return "FRAGOP_CLIP_DATA1"; | |
case 0x4A: return "FRAGOP_CLIP_DATA2"; | |
case 0x4B: return "FRAGOP_CLIP_DATA3"; | |
case 0x4D: return "DEPTHMAP_SCALE"; | |
case 0x4E: return "DEPTHMAP_OFFSET"; | |
case 0x4F: return "SH_OUTMAP_TOTAL"; | |
case 0x50: return "SH_OUTMAP_O0"; | |
case 0x51: return "SH_OUTMAP_O1"; | |
case 0x52: return "SH_OUTMAP_O2"; | |
case 0x53: return "SH_OUTMAP_O3"; | |
case 0x54: return "SH_OUTMAP_O4"; | |
case 0x55: return "SH_OUTMAP_O5"; | |
case 0x56: return "SH_OUTMAP_O6"; | |
case 0x61: return "EARLYDEPTH_FUNC"; | |
case 0x62: return "EARLYDEPTH_TEST1"; | |
case 0x63: return "EARLYDEPTH_CLEAR"; | |
case 0x64: return "SH_OUTATTR_MODE"; | |
case 0x65: return "SCISSORTEST_MODE"; | |
case 0x66: return "SCISSORTEST_POS"; | |
case 0x67: return "SCISSORTEST_DIM"; | |
case 0x68: return "VIEWPORT_XY"; | |
case 0x6A: return "EARLYDEPTH_DATA"; | |
case 0x6D: return "DEPTHMAP_ENABLE"; | |
case 0x6E: return "RENDERBUF_DIM"; | |
case 0x6F: return "SH_OUTATTR_CLOCK"; | |
case 0x80: return "TEXUNIT_CONFIG"; | |
case 0x81: return "TEXUNIT0_BORDER_COLOR"; | |
case 0x82: return "TEXUNIT0_DIM"; | |
case 0x83: return "TEXUNIT0_PARAM"; | |
case 0x84: return "TEXUNIT0_LOD"; | |
case 0x85: return "TEXUNIT0_ADDR1"; | |
case 0x86: return "TEXUNIT0_ADDR2"; | |
case 0x87: return "TEXUNIT0_ADDR3"; | |
case 0x88: return "TEXUNIT0_ADDR4"; | |
case 0x89: return "TEXUNIT0_ADDR5"; | |
case 0x8A: return "TEXUNIT0_ADDR6"; | |
case 0x8B: return "TEXUNIT0_SHADOW"; | |
case 0x91: return "TEXUNIT1_BORDER_COLOR"; | |
case 0x92: return "TEXUNIT1_DIM"; | |
case 0x93: return "TEXUNIT1_PARAM"; | |
case 0x94: return "TEXUNIT1_LOD"; | |
case 0x95: return "TEXUNIT1_ADDR"; | |
case 0x96: return "TEXUNIT1_TYPE"; | |
case 0x99: return "TEXUNIT2_BORDER_COLOR"; | |
case 0x9A: return "TEXUNIT2_DIM"; | |
case 0x9B: return "TEXUNIT2_PARAM"; | |
case 0x9C: return "TEXUNIT2_LOD"; | |
case 0x9D: return "TEXUNIT2_ADDR"; | |
case 0x9E: return "TEXUNIT2_TYPE"; | |
// missing TEXUNIT3 / PROCTEX_LUT | |
case 0xC0: return "TEXENV0_SOURCE"; | |
case 0xC1: return "TEXENV0_OPERAND"; | |
case 0xC2: return "TEXENV0_COMBINER"; | |
case 0xC3: return "TEXENV0_COLOR"; | |
case 0xC4: return "TEXENV0_SCALE"; | |
case 0xC8: return "TEXENV1_SOURCE"; | |
case 0xC9: return "TEXENV1_OPERAND"; | |
case 0xCA: return "TEXENV1_COMBINER"; | |
case 0xCB: return "TEXENV1_COLOR"; | |
case 0xCC: return "TEXENV1_SCALE"; | |
case 0xD0: return "TEXENV2_SOURCE"; | |
case 0xD1: return "TEXENV2_OPERAND"; | |
case 0xD2: return "TEXENV2_COMBINER"; | |
case 0xD3: return "TEXENV2_COLOR"; | |
case 0xD4: return "TEXENV2_SCALE"; | |
case 0xD8: return "TEXENV2_SOURCE"; | |
case 0xD9: return "TEXENV2_OPERAND"; | |
case 0xDA: return "TEXENV2_COMBINER"; | |
case 0xDB: return "TEXENV2_COLOR"; | |
case 0xDC: return "TEXENV2_SCALE"; | |
case 0xE0: return "TEXENV_UPDATE_BUFFER"; | |
case 0xE1: return "FOG_COLOR"; | |
case 0xE4: return "GAS_ATTENUATION"; | |
case 0xE5: return "GAS_ACCMAX"; | |
case 0xE6: return "FOG_LUT_INDEX"; | |
case 0xE8: return "FOG_LUT_DATA0"; | |
case 0xE9: return "FOG_LUT_DATA1"; | |
case 0xEA: return "FOG_LUT_DATA2"; | |
case 0xEB: return "FOG_LUT_DATA3"; | |
case 0xEC: return "FOG_LUT_DATA4"; | |
case 0xED: return "FOG_LUT_DATA5"; | |
case 0xEE: return "FOG_LUT_DATA6"; | |
case 0xEF: return "FOG_LUT_DATA7"; | |
case 0xF0: return "TEXENV4_SOURCE"; | |
case 0xF1: return "TEXENV4_OPERAND"; | |
case 0xF2: return "TEXENV4_COMBINER"; | |
case 0xF3: return "TEXENV4_COLOR"; | |
case 0xF4: return "TEXENV4_SCALE"; | |
case 0xF8: return "TEXENV5_SOURCE"; | |
case 0xF9: return "TEXENV5_OPERAND"; | |
case 0xFA: return "TEXENV5_COMBINER"; | |
case 0xFB: return "TEXENV5_COLOR"; | |
case 0xFC: return "TEXENV5_SCALE"; | |
case 0xFD: return "TEXENV_BUFFER_COLOR"; | |
case 0x100: return "COLOR_OPERATION"; | |
case 0x101: return "BLEND_FUNC"; | |
case 0x102: return "LOGIC_OP"; | |
case 0x103: return "BLEND_COLOR"; | |
case 0x104: return "FRAGOP_ALPHA_TEST"; | |
case 0x105: return "STENCIL_TEST"; | |
case 0x106: return "STENCIL_OP"; | |
case 0x107: return "DEPTH_COLOR_MASK"; | |
case 0x110: return "FRAMEBUFFER_INVALIDATE"; | |
case 0x111: return "FRAMEBUFFER_FLUSH"; | |
case 0x112: return "COLORBUFFER_READ"; | |
case 0x113: return "COLORBUFFER_WRITE"; | |
case 0x114: return "DEPTHBUFFER_READ"; | |
case 0x115: return "DEPTHBUFFER_WRITE"; | |
case 0x116: return "DEPTHBUFFER_FORMAT"; | |
case 0x117: return "COLORBUFFER_FORMAT"; | |
case 0x118: return "EARLYDEPTH_TEST2"; | |
case 0x11B: return "FRAMEBUFFER_BLOCK32"; | |
case 0x11C: return "DEPTHBUFFER_LOC"; | |
case 0x11D: return "COLORBUFFER_LOC"; | |
case 0x11E: return "FRAMEBUFFER_DIM"; | |
case 0x120: return "GAS_LIGHT_XY"; | |
case 0x121: return "GAS_LIGHT_Z"; | |
case 0x122: return "GAS_LIGHT_Z_COLOR"; | |
case 0x123: return "GAS_LUT_INDEX"; | |
case 0x124: return "GAS_LUT_DATA"; | |
case 0x126: return "GAS_DELTAZ_DEPTH"; | |
case 0x130: return "FRAGOP_SHADOW"; | |
case 0x140: return "LIGHT0_SPECULAR0"; | |
case 0x141: return "LIGHT0_SPECULAR1"; | |
case 0x142: return "LIGHT0_DIFFUSE"; | |
case 0x143: return "LIGHT0_AMBIENT"; | |
case 0x144: return "LIGHT0_XY"; | |
case 0x145: return "LIGHT0_Z"; | |
case 0x146: return "LIGHT0_SPOTDIR_XY"; | |
case 0x147: return "LIGHT0_SPOTDIR_Z"; | |
case 0x149: return "LIGHT0_CONFIG"; | |
case 0x14A: return "LIGHT0_ATTENUATION_BIAS"; | |
case 0x14B: return "LIGHT0_ATTENUATION_SCALE"; | |
case 0x150: return "LIGHT1_SPECULAR0"; | |
case 0x151: return "LIGHT1_SPECULAR1"; | |
case 0x152: return "LIGHT1_DIFFUSE"; | |
case 0x153: return "LIGHT1_AMBIENT"; | |
case 0x154: return "LIGHT1_XY"; | |
case 0x155: return "LIGHT1_Z"; | |
case 0x156: return "LIGHT1_SPOTDIR_XY"; | |
case 0x157: return "LIGHT1_SPOTDIR_Z"; | |
case 0x159: return "LIGHT1_CONFIG"; | |
case 0x15A: return "LIGHT1_ATTENUATION_BIAS"; | |
case 0x15B: return "LIGHT1_ATTENUATION_SCALE"; | |
case 0x160: return "LIGHT2_SPECULAR0"; | |
case 0x161: return "LIGHT2_SPECULAR1"; | |
case 0x162: return "LIGHT2_DIFFUSE"; | |
case 0x163: return "LIGHT2_AMBIENT"; | |
case 0x164: return "LIGHT2_XY"; | |
case 0x165: return "LIGHT2_Z"; | |
case 0x166: return "LIGHT2_SPOTDIR_XY"; | |
case 0x167: return "LIGHT2_SPOTDIR_Z"; | |
case 0x169: return "LIGHT2_CONFIG"; | |
case 0x16A: return "LIGHT2_ATTENUATION_BIAS"; | |
case 0x16B: return "LIGHT2_ATTENUATION_SCALE"; | |
case 0x170: return "LIGHT3_SPECULAR0"; | |
case 0x171: return "LIGHT3_SPECULAR1"; | |
case 0x172: return "LIGHT3_DIFFUSE"; | |
case 0x173: return "LIGHT3_AMBIENT"; | |
case 0x174: return "LIGHT3_XY"; | |
case 0x175: return "LIGHT3_Z"; | |
case 0x176: return "LIGHT3_SPOTDIR_XY"; | |
case 0x177: return "LIGHT3_SPOTDIR_Z"; | |
case 0x179: return "LIGHT3_CONFIG"; | |
case 0x17A: return "LIGHT3_ATTENUATION_BIAS"; | |
case 0x17B: return "LIGHT3_ATTENUATION_SCALE"; | |
case 0x180: return "LIGHT4_SPECULAR0"; | |
case 0x181: return "LIGHT4_SPECULAR1"; | |
case 0x182: return "LIGHT4_DIFFUSE"; | |
case 0x183: return "LIGHT4_AMBIENT"; | |
case 0x184: return "LIGHT4_XY"; | |
case 0x185: return "LIGHT4_Z"; | |
case 0x186: return "LIGHT4_SPOTDIR_XY"; | |
case 0x187: return "LIGHT4_SPOTDIR_Z"; | |
case 0x189: return "LIGHT4_CONFIG"; | |
case 0x18A: return "LIGHT4_ATTENUATION_BIAS"; | |
case 0x18B: return "LIGHT4_ATTENUATION_SCALE"; | |
case 0x190: return "LIGHT5_SPECULAR0"; | |
case 0x191: return "LIGHT5_SPECULAR1"; | |
case 0x192: return "LIGHT5_DIFFUSE"; | |
case 0x193: return "LIGHT5_AMBIENT"; | |
case 0x194: return "LIGHT5_XY"; | |
case 0x195: return "LIGHT5_Z"; | |
case 0x196: return "LIGHT5_SPOTDIR_XY"; | |
case 0x197: return "LIGHT5_SPOTDIR_Z"; | |
case 0x199: return "LIGHT5_CONFIG"; | |
case 0x19A: return "LIGHT5_ATTENUATION_BIAS"; | |
case 0x19B: return "LIGHT5_ATTENUATION_SCALE"; | |
case 0x1A0: return "LIGHT6_SPECULAR0"; | |
case 0x1A1: return "LIGHT6_SPECULAR1"; | |
case 0x1A2: return "LIGHT6_DIFFUSE"; | |
case 0x1A3: return "LIGHT6_AMBIENT"; | |
case 0x1A4: return "LIGHT6_XY"; | |
case 0x1A6: return "LIGHT6_SPOTDIR_XY"; | |
case 0x1A7: return "LIGHT6_SPOTDIR_Z"; | |
case 0x1A9: return "LIGHT6_CONFIG"; | |
case 0x1AA: return "LIGHT6_ATTENUATION_BIAS"; | |
case 0x1AB: return "LIGHT6_ATTENUATION_SCALE"; | |
case 0x1B0: return "LIGHT7_SPECULAR0"; | |
case 0x1B1: return "LIGHT7_SPECULAR1"; | |
case 0x1B2: return "LIGHT7_DIFFUSE"; | |
case 0x1B3: return "LIGHT7_AMBIENT"; | |
case 0x1B4: return "LIGHT7_XY"; | |
case 0x1B5: return "LIGHT7_Z"; | |
case 0x1B6: return "LIGHT7_SPOTDIR_XY"; | |
case 0x1B7: return "LIGHT7_SPOTDIR_Z"; | |
case 0x1B9: return "LIGHT7_CONFIG"; | |
case 0x1BA: return "LIGHT7_ATTENUATION_BIAS"; | |
case 0x1BB: return "LIGHT7_ATTENUATION_SCALE"; | |
case 0x1C0: return "LIGHTING_AMBIENT"; | |
case 0x1C2: return "LIGHTING_NUM_LIGHTS"; | |
case 0x1C3: return "LIGHTING_CONFIG0"; | |
case 0x1C4: return "LIGHTING_CONFIG1"; | |
case 0x1C5: return "LIGHTING_LUT_INDEX"; | |
case 0x1C6: return "LIGHTING_ENABLE1"; | |
case 0x1C8: return "LIGHTING_LUT_DATA0"; | |
case 0x1C9: return "LIGHTING_LUT_DATA1"; | |
case 0x1CA: return "LIGHTING_LUT_DATA2"; | |
case 0x1CB: return "LIGHTING_LUT_DATA3"; | |
case 0x1CC: return "LIGHTING_LUT_DATA4"; | |
case 0x1CD: return "LIGHTING_LUT_DATA5"; | |
case 0x1CE: return "LIGHTING_LUT_DATA6"; | |
case 0x1CF: return "LIGHTING_LUT_DATA7"; | |
case 0x1D0: return "LIGHTING_LUTINPUT_ABS"; | |
case 0x1D1: return "LIGHTING_LUTINPUT_SELECT"; | |
case 0x1D2: return "LIGHTING_LUTINPUT_SCALE"; | |
case 0x1D9: return "LIGHTING_LIGHT_PERMUTATION"; | |
case 0x200: return "ATTRIBBUFFERS_LOC"; | |
case 0x201: return "ATTRIBBUFFERS_FORMAT_LOW"; | |
case 0x202: return "ATTRIBBUFFERS_FORMAT_HIGH"; | |
case 0x203: return "ATTRIBBUFFER0_OFFSET"; | |
case 0x204: return "ATTRIBBUFFER0_CONFIG1"; | |
case 0x205: return "ATTRIBBUFFER0_CONFIG2"; | |
case 0x206: return "ATTRIBBUFFER1_OFFSET"; | |
case 0x207: return "ATTRIBBUFFER1_CONFIG1"; | |
case 0x208: return "ATTRIBBUFFER1_CONFIG2"; | |
case 0x209: return "ATTRIBBUFFER2_OFFSET"; | |
case 0x20A: return "ATTRIBBUFFER2_CONFIG1"; | |
case 0x20B: return "ATTRIBBUFFER2_CONFIG2"; | |
case 0x20C: return "ATTRIBBUFFER3_OFFSET"; | |
case 0x20D: return "ATTRIBBUFFER3_CONFIG1"; | |
case 0x20E: return "ATTRIBBUFFER3_CONFIG2"; | |
case 0x20F: return "ATTRIBBUFFER4_OFFSET"; | |
case 0x210: return "ATTRIBBUFFER4_CONFIG1"; | |
case 0x211: return "ATTRIBBUFFER4_CONFIG2"; | |
case 0x212: return "ATTRIBBUFFER5_OFFSET"; | |
case 0x213: return "ATTRIBBUFFER5_CONFIG1"; | |
case 0x214: return "ATTRIBBUFFER5_CONFIG2"; | |
case 0x215: return "ATTRIBBUFFER6_OFFSET"; | |
case 0x216: return "ATTRIBBUFFER6_CONFIG1"; | |
case 0x217: return "ATTRIBBUFFER6_CONFIG2"; | |
case 0x218: return "ATTRIBBUFFER7_OFFSET"; | |
case 0x219: return "ATTRIBBUFFER7_CONFIG1"; | |
case 0x21A: return "ATTRIBBUFFER7_CONFIG2"; | |
case 0x21B: return "ATTRIBBUFFER8_OFFSET"; | |
case 0x21C: return "ATTRIBBUFFER8_CONFIG1"; | |
case 0x21D: return "ATTRIBBUFFER8_CONFIG2"; | |
case 0x21E: return "ATTRIBBUFFER9_OFFSET"; | |
case 0x21F: return "ATTRIBBUFFER9_CONFIG1"; | |
case 0x220: return "ATTRIBBUFFER9_CONFIG2"; | |
case 0x221: return "ATTRIBBUFFER10_OFFSET"; | |
case 0x222: return "ATTRIBBUFFER10_CONFIG1"; | |
case 0x223: return "ATTRIBBUFFER10_CONFIG2"; | |
case 0x224: return "ATTRIBBUFFER11_OFFSET"; | |
case 0x225: return "ATTRIBBUFFER11_CONFIG1"; | |
case 0x226: return "ATTRIBBUFFER11_CONFIG2"; | |
case 0x227: return "INDEXBUFFER_CONFIG"; | |
case 0x228: return "NUMVERTICES"; | |
case 0x229: return "GEOSTAGE_CONFIG"; | |
case 0x22A: return "VERTEX_OFFSET"; | |
case 0x22D: return "POST_VERTEX_CACHE_NUM"; | |
case 0x22E: return "DRAWARRAYS"; | |
case 0x22F: return "DRAWELEMENTS"; | |
case 0x231: return "VTX_FUNC"; | |
case 0x232: return "FIXEDATTRIB_INDEX"; | |
case 0x233: return "FIXEDATTRIB_DATA0"; | |
case 0x234: return "FIXEDATTRIB_DATA1"; | |
case 0x235: return "FIXEDATTRIB_DATA2"; | |
case 0x238: return "CMDBUF_SIZE0"; | |
case 0x239: return "CMDBUF_SIZE1"; | |
case 0x23A: return "CMDBUF_ADDR0"; | |
case 0x23B: return "CMDBUF_ADDR1"; | |
case 0x23C: return "CMDBUF_JUMP0"; | |
case 0x23D: return "CMDBUF_JUMP1"; | |
case 0x242: return "VSH_NUM_ATTR"; | |
case 0x244: return "VSH_COM_MODE"; | |
case 0x245: return "START_DRAW_FUNC0"; | |
case 0x24A: return "VSH_OUTMAP_TOTAL1"; | |
case 0x251: return "VSH_OUTMAP_TOTAL2"; | |
case 0x252: return "GSH_MISC0"; | |
case 0x253: return "GEOSTAGE_CONFIG2"; | |
case 0x254: return "GSH_MISC1"; | |
case 0x25E: return "PRIMITIVE_CONFIG"; | |
case 0x25F: return "RESTART_PRIMITIVE"; | |
case 0x280: return "GSH_BOOLUNIFORM"; | |
case 0x281: return "GSH_INTUNIFORM_I0"; | |
case 0x282: return "GSH_INTUNIFORM_I1"; | |
case 0x283: return "GSH_INTUNIFORM_I2"; | |
case 0x284: return "GSH_INTUNIFORM_I3"; | |
case 0x289: return "GSH_INPUTBUFFER_CONFIG"; | |
case 0x28A: return "GSH_ENTRYPOINT"; | |
case 0x28B: return "GSH_ATTRIBUTES_PERMUTATION_LOW"; | |
case 0x28C: return "GSH_ATTRIBUTES_PERMUTATION_HIGH"; | |
case 0x28D: return "GSH_OUTMAP_MASK"; | |
case 0x28F: return "GSH_CODETRANSFER_END"; | |
case 0x290: return "GSH_FLOATUNIFORM_INDEX"; | |
case 0x291: return "GSH_FLOATUNIFORM_DATA0"; | |
case 0x292: return "GSH_FLOATUNIFORM_DATA1"; | |
case 0x293: return "GSH_FLOATUNIFORM_DATA2"; | |
case 0x294: return "GSH_FLOATUNIFORM_DATA3"; | |
case 0x295: return "GSH_FLOATUNIFORM_DATA4"; | |
case 0x296: return "GSH_FLOATUNIFORM_DATA5"; | |
case 0x297: return "GSH_FLOATUNIFORM_DATA6"; | |
case 0x298: return "GSH_FLOATUNIFORM_DATA7"; | |
case 0x29B: return "GSH_CODETRANSFER_INDEX"; | |
case 0x29C: return "GSH_CODETRANSFER_DATA0"; | |
case 0x29D: return "GSH_CODETRANSFER_DATA1"; | |
case 0x29E: return "GSH_CODETRANSFER_DATA2"; | |
case 0x29F: return "GSH_CODETRANSFER_DATA3"; | |
case 0x2A0: return "GSH_CODETRANSFER_DATA4"; | |
case 0x2A1: return "GSH_CODETRANSFER_DATA5"; | |
case 0x2A2: return "GSH_CODETRANSFER_DATA6"; | |
case 0x2A3: return "GSH_CODETRANSFER_DATA7"; | |
case 0x2A5: return "GSH_OPDESCS_INDEX"; | |
case 0x2A6: return "GSH_OPDESCS_DATA0"; | |
case 0x2A7: return "GSH_OPDESCS_DATA1"; | |
case 0x2A8: return "GSH_OPDESCS_DATA2"; | |
case 0x2A9: return "GSH_OPDESCS_DATA3"; | |
case 0x2AA: return "GSH_OPDESCS_DATA4"; | |
case 0x2AB: return "GSH_OPDESCS_DATA5"; | |
case 0x2AC: return "GSH_OPDESCS_DATA6"; | |
case 0x2AD: return "GSH_OPDESCS_DATA7"; | |
case 0x2B0: return "VSH_BOOLUNIFORM"; | |
case 0x2B1: return "VSH_INTUNIFORM_I0"; | |
case 0x2B2: return "VSH_INTUNIFORM_I1"; | |
case 0x2B3: return "VSH_INTUNIFORM_I2"; | |
case 0x2B4: return "VSH_INTUNIFORM_I3"; | |
case 0x2B9: return "VSH_INPUTBUFFER_CONFIG"; | |
case 0x2BA: return "VSH_ENTRYPOINT"; | |
case 0x2BB: return "VSH_ATTRIBUTES_PERMUTATION_LOW"; | |
case 0x2BC: return "VSH_ATTRIBUTES_PERMUTATION_HIGH"; | |
case 0x2BD: return "VSH_OUTMAP_MASK"; | |
case 0x2BF: return "VSH_CODETRANSFER_END"; | |
case 0x2C0: return "VSH_FLOATUNIFORM_INDEX"; | |
case 0x2C1: return "VSH_FLOATUNIFORM_DATA0"; | |
case 0x2C2: return "VSH_FLOATUNIFORM_DATA1"; | |
case 0x2C3: return "VSH_FLOATUNIFORM_DATA2"; | |
case 0x2C4: return "VSH_FLOATUNIFORM_DATA3"; | |
case 0x2C5: return "VSH_FLOATUNIFORM_DATA4"; | |
case 0x2C6: return "VSH_FLOATUNIFORM_DATA5"; | |
case 0x2C7: return "VSH_FLOATUNIFORM_DATA6"; | |
case 0x2C8: return "VSH_FLOATUNIFORM_DATA7"; | |
case 0x2CB: return "VSH_CODETRANSFER_INDEX"; | |
case 0x2CC: return "VSH_CODETRANSFER_DATA0"; | |
case 0x2CD: return "VSH_CODETRANSFER_DATA1"; | |
case 0x2CE: return "VSH_CODETRANSFER_DATA2"; | |
case 0x2CF: return "VSH_CODETRANSFER_DATA3"; | |
case 0x2D0: return "VSH_CODETRANSFER_DATA4"; | |
case 0x2D1: return "VSH_CODETRANSFER_DATA5"; | |
case 0x2D2: return "VSH_CODETRANSFER_DATA6"; | |
case 0x2D3: return "VSH_CODETRANSFER_DATA7"; | |
case 0x2D5: return "VSH_OPDESCS_INDEX"; | |
case 0x2D6: return "VSH_OPDESCS_DATA0"; | |
case 0x2D7: return "VSH_OPDESCS_DATA1"; | |
case 0x2D8: return "VSH_OPDESCS_DATA2"; | |
case 0x2D9: return "VSH_OPDESCS_DATA3"; | |
case 0x2DA: return "VSH_OPDESCS_DATA4"; | |
case 0x2DB: return "VSH_OPDESCS_DATA5"; | |
case 0x2DC: return "VSH_OPDESCS_DATA6"; | |
case 0x2DD: return "VSH_OPDESCS_DATA7"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment