2015-11-10 00:43:36 +01:00
# include "stdafx.h"
# include "GCM.h"
namespace
{
2015-12-02 10:23:25 +01:00
const std : : unordered_map < u32 , const char * > methods =
2015-11-10 00:43:36 +01:00
{
{ NV4097_NO_OPERATION , " NV4097_NO_OPERATION " } ,
{ NV4097_NOTIFY , " NV4097_NOTIFY " } ,
{ NV4097_WAIT_FOR_IDLE , " NV4097_WAIT_FOR_IDLE " } ,
{ NV4097_PM_TRIGGER , " NV4097_PM_TRIGGER " } ,
{ NV4097_SET_CONTEXT_DMA_NOTIFIES , " NV4097_SET_CONTEXT_DMA_NOTIFIES " } ,
{ NV4097_SET_CONTEXT_DMA_A , " NV4097_SET_CONTEXT_DMA_A " } ,
{ NV4097_SET_CONTEXT_DMA_B , " NV4097_SET_CONTEXT_DMA_B " } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_B , " NV4097_SET_CONTEXT_DMA_COLOR_B " } ,
{ NV4097_SET_CONTEXT_DMA_STATE , " NV4097_SET_CONTEXT_DMA_STATE " } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_A , " NV4097_SET_CONTEXT_DMA_COLOR_A " } ,
{ NV4097_SET_CONTEXT_DMA_ZETA , " NV4097_SET_CONTEXT_DMA_ZETA " } ,
{ NV4097_SET_CONTEXT_DMA_VERTEX_A , " NV4097_SET_CONTEXT_DMA_VERTEX_A " } ,
{ NV4097_SET_CONTEXT_DMA_VERTEX_B , " NV4097_SET_CONTEXT_DMA_VERTEX_B " } ,
{ NV4097_SET_CONTEXT_DMA_SEMAPHORE , " NV4097_SET_CONTEXT_DMA_SEMAPHORE " } ,
{ NV4097_SET_CONTEXT_DMA_REPORT , " NV4097_SET_CONTEXT_DMA_REPORT " } ,
{ NV4097_SET_CONTEXT_DMA_CLIP_ID , " NV4097_SET_CONTEXT_DMA_CLIP_ID " } ,
{ NV4097_SET_CONTEXT_DMA_CULL_DATA , " NV4097_SET_CONTEXT_DMA_CULL_DATA " } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_C , " NV4097_SET_CONTEXT_DMA_COLOR_C " } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_D , " NV4097_SET_CONTEXT_DMA_COLOR_D " } ,
{ NV4097_SET_SURFACE_CLIP_HORIZONTAL , " NV4097_SET_SURFACE_CLIP_HORIZONTAL " } ,
{ NV4097_SET_SURFACE_CLIP_VERTICAL , " NV4097_SET_SURFACE_CLIP_VERTICAL " } ,
{ NV4097_SET_SURFACE_FORMAT , " NV4097_SET_SURFACE_FORMAT " } ,
{ NV4097_SET_SURFACE_PITCH_A , " NV4097_SET_SURFACE_PITCH_A " } ,
{ NV4097_SET_SURFACE_COLOR_AOFFSET , " NV4097_SET_SURFACE_COLOR_AOFFSET " } ,
{ NV4097_SET_SURFACE_ZETA_OFFSET , " NV4097_SET_SURFACE_ZETA_OFFSET " } ,
{ NV4097_SET_SURFACE_COLOR_BOFFSET , " NV4097_SET_SURFACE_COLOR_BOFFSET " } ,
{ NV4097_SET_SURFACE_PITCH_B , " NV4097_SET_SURFACE_PITCH_B " } ,
{ NV4097_SET_SURFACE_COLOR_TARGET , " NV4097_SET_SURFACE_COLOR_TARGET " } ,
{ NV4097_SET_SURFACE_PITCH_Z , " NV4097_SET_SURFACE_PITCH_Z " } ,
{ NV4097_INVALIDATE_ZCULL , " NV4097_INVALIDATE_ZCULL " } ,
{ NV4097_SET_CYLINDRICAL_WRAP , " NV4097_SET_CYLINDRICAL_WRAP " } ,
{ NV4097_SET_CYLINDRICAL_WRAP1 , " NV4097_SET_CYLINDRICAL_WRAP1 " } ,
{ NV4097_SET_SURFACE_PITCH_C , " NV4097_SET_SURFACE_PITCH_C " } ,
{ NV4097_SET_SURFACE_PITCH_D , " NV4097_SET_SURFACE_PITCH_D " } ,
{ NV4097_SET_SURFACE_COLOR_COFFSET , " NV4097_SET_SURFACE_COLOR_COFFSET " } ,
{ NV4097_SET_SURFACE_COLOR_DOFFSET , " NV4097_SET_SURFACE_COLOR_DOFFSET " } ,
{ NV4097_SET_WINDOW_OFFSET , " NV4097_SET_WINDOW_OFFSET " } ,
{ NV4097_SET_DITHER_ENABLE , " NV4097_SET_DITHER_ENABLE " } ,
{ NV4097_SET_ALPHA_TEST_ENABLE , " NV4097_SET_ALPHA_TEST_ENABLE " } ,
{ NV4097_SET_ALPHA_FUNC , " NV4097_SET_ALPHA_FUNC " } ,
{ NV4097_SET_ALPHA_REF , " NV4097_SET_ALPHA_REF " } ,
{ NV4097_SET_BLEND_ENABLE , " NV4097_SET_BLEND_ENABLE " } ,
{ NV4097_SET_BLEND_FUNC_SFACTOR , " NV4097_SET_BLEND_FUNC_SFACTOR " } ,
{ NV4097_SET_BLEND_FUNC_DFACTOR , " NV4097_SET_BLEND_FUNC_DFACTOR " } ,
{ NV4097_SET_BLEND_COLOR , " NV4097_SET_BLEND_COLOR " } ,
{ NV4097_SET_BLEND_EQUATION , " NV4097_SET_BLEND_EQUATION " } ,
{ NV4097_SET_COLOR_MASK , " NV4097_SET_COLOR_MASK " } ,
{ NV4097_SET_STENCIL_TEST_ENABLE , " NV4097_SET_STENCIL_TEST_ENABLE " } ,
{ NV4097_SET_STENCIL_MASK , " NV4097_SET_STENCIL_MASK " } ,
{ NV4097_SET_STENCIL_FUNC , " NV4097_SET_STENCIL_FUNC " } ,
{ NV4097_SET_STENCIL_FUNC_REF , " NV4097_SET_STENCIL_FUNC_REF " } ,
{ NV4097_SET_STENCIL_FUNC_MASK , " NV4097_SET_STENCIL_FUNC_MASK " } ,
{ NV4097_SET_STENCIL_OP_FAIL , " NV4097_SET_STENCIL_OP_FAIL " } ,
{ NV4097_SET_STENCIL_OP_ZFAIL , " NV4097_SET_STENCIL_OP_ZFAIL " } ,
{ NV4097_SET_STENCIL_OP_ZPASS , " NV4097_SET_STENCIL_OP_ZPASS " } ,
{ NV4097_SET_TWO_SIDED_STENCIL_TEST_ENABLE , " NV4097_SET_TWO_SIDED_STENCIL_TEST_ENABLE " } ,
{ NV4097_SET_BACK_STENCIL_MASK , " NV4097_SET_BACK_STENCIL_MASK " } ,
{ NV4097_SET_BACK_STENCIL_FUNC , " NV4097_SET_BACK_STENCIL_FUNC " } ,
{ NV4097_SET_BACK_STENCIL_FUNC_REF , " NV4097_SET_BACK_STENCIL_FUNC_REF " } ,
{ NV4097_SET_BACK_STENCIL_FUNC_MASK , " NV4097_SET_BACK_STENCIL_FUNC_MASK " } ,
{ NV4097_SET_BACK_STENCIL_OP_FAIL , " NV4097_SET_BACK_STENCIL_OP_FAIL " } ,
{ NV4097_SET_BACK_STENCIL_OP_ZFAIL , " NV4097_SET_BACK_STENCIL_OP_ZFAIL " } ,
{ NV4097_SET_BACK_STENCIL_OP_ZPASS , " NV4097_SET_BACK_STENCIL_OP_ZPASS " } ,
{ NV4097_SET_SHADE_MODE , " NV4097_SET_SHADE_MODE " } ,
{ NV4097_SET_BLEND_ENABLE_MRT , " NV4097_SET_BLEND_ENABLE_MRT " } ,
{ NV4097_SET_COLOR_MASK_MRT , " NV4097_SET_COLOR_MASK_MRT " } ,
{ NV4097_SET_LOGIC_OP_ENABLE , " NV4097_SET_LOGIC_OP_ENABLE " } ,
{ NV4097_SET_LOGIC_OP , " NV4097_SET_LOGIC_OP " } ,
{ NV4097_SET_BLEND_COLOR2 , " NV4097_SET_BLEND_COLOR2 " } ,
{ NV4097_SET_DEPTH_BOUNDS_TEST_ENABLE , " NV4097_SET_DEPTH_BOUNDS_TEST_ENABLE " } ,
{ NV4097_SET_DEPTH_BOUNDS_MIN , " NV4097_SET_DEPTH_BOUNDS_MIN " } ,
{ NV4097_SET_DEPTH_BOUNDS_MAX , " NV4097_SET_DEPTH_BOUNDS_MAX " } ,
{ NV4097_SET_CLIP_MIN , " NV4097_SET_CLIP_MIN " } ,
{ NV4097_SET_CLIP_MAX , " NV4097_SET_CLIP_MAX " } ,
{ NV4097_SET_CONTROL0 , " NV4097_SET_CONTROL0 " } ,
{ NV4097_SET_LINE_WIDTH , " NV4097_SET_LINE_WIDTH " } ,
{ NV4097_SET_LINE_SMOOTH_ENABLE , " NV4097_SET_LINE_SMOOTH_ENABLE " } ,
{ NV4097_SET_ANISO_SPREAD , " NV4097_SET_ANISO_SPREAD " } ,
{ NV4097_SET_ANISO_SPREAD + 4 / 4 , " NV4097_SET_ANISO_SPREAD + 4 " } ,
{ NV4097_SET_ANISO_SPREAD + 8 / 4 , " NV4097_SET_ANISO_SPREAD + 8 " } ,
{ NV4097_SET_ANISO_SPREAD + 12 / 4 , " NV4097_SET_ANISO_SPREAD + 12 " } ,
{ NV4097_SET_ANISO_SPREAD + 16 / 4 , " NV4097_SET_ANISO_SPREAD + 16 " } ,
{ NV4097_SET_ANISO_SPREAD + 20 / 4 , " NV4097_SET_ANISO_SPREAD + 20 " } ,
{ NV4097_SET_ANISO_SPREAD + 24 / 4 , " NV4097_SET_ANISO_SPREAD + 24 " } ,
{ NV4097_SET_ANISO_SPREAD + 28 / 4 , " NV4097_SET_ANISO_SPREAD + 28 " } ,
{ NV4097_SET_ANISO_SPREAD + 32 / 4 , " NV4097_SET_ANISO_SPREAD + 32 " } ,
{ NV4097_SET_ANISO_SPREAD + 36 / 4 , " NV4097_SET_ANISO_SPREAD + 36 " } ,
{ NV4097_SET_ANISO_SPREAD + 40 / 4 , " NV4097_SET_ANISO_SPREAD + 40 " } ,
{ NV4097_SET_ANISO_SPREAD + 44 / 4 , " NV4097_SET_ANISO_SPREAD + 44 " } ,
{ NV4097_SET_ANISO_SPREAD + 48 / 4 , " NV4097_SET_ANISO_SPREAD + 48 " } ,
{ NV4097_SET_ANISO_SPREAD + 52 / 4 , " NV4097_SET_ANISO_SPREAD + 52 " } ,
{ NV4097_SET_ANISO_SPREAD + 56 / 4 , " NV4097_SET_ANISO_SPREAD + 56 " } ,
{ NV4097_SET_ANISO_SPREAD + 60 / 4 , " NV4097_SET_ANISO_SPREAD + 60 " } ,
{ NV4097_SET_SCISSOR_HORIZONTAL , " NV4097_SET_SCISSOR_HORIZONTAL " } ,
{ NV4097_SET_SCISSOR_VERTICAL , " NV4097_SET_SCISSOR_VERTICAL " } ,
{ NV4097_SET_FOG_MODE , " NV4097_SET_FOG_MODE " } ,
{ NV4097_SET_FOG_PARAMS , " NV4097_SET_FOG_PARAMS " } ,
{ NV4097_SET_FOG_PARAMS + 4 / 4 , " NV4097_SET_FOG_PARAMS + 4 " } ,
{ NV4097_SET_FOG_PARAMS + 8 / 4 , " NV4097_SET_FOG_PARAMS + 8 " } ,
{ NV4097_SET_SHADER_PROGRAM , " NV4097_SET_SHADER_PROGRAM " } ,
{ NV4097_SET_VERTEX_TEXTURE_OFFSET , " NV4097_SET_VERTEX_TEXTURE_OFFSET " } ,
{ NV4097_SET_VERTEX_TEXTURE_FORMAT , " NV4097_SET_VERTEX_TEXTURE_FORMAT " } ,
{ NV4097_SET_VERTEX_TEXTURE_ADDRESS , " NV4097_SET_VERTEX_TEXTURE_ADDRESS " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 , " NV4097_SET_VERTEX_TEXTURE_CONTROL0 " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 , " NV4097_SET_VERTEX_TEXTURE_CONTROL3 " } ,
{ NV4097_SET_VERTEX_TEXTURE_FILTER , " NV4097_SET_VERTEX_TEXTURE_FILTER " } ,
{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT , " NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT " } ,
{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR , " NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR " } ,
{ NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_FILTER + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_FILTER + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x20 / 4 , " NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x20 " } ,
{ NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_FILTER + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_FILTER + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x40 / 4 , " NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x40 " } ,
{ NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_OFFSET + 0x60 " } ,
{ NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_FORMAT + 0x60 " } ,
{ NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_ADDRESS + 0x60 " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_CONTROL0 + 0x60 " } ,
{ NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_CONTROL3 + 0x60 " } ,
{ NV4097_SET_VERTEX_TEXTURE_FILTER + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_FILTER + 0x60 " } ,
{ NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT + 0x60 " } ,
{ NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x60 / 4 , " NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR + 0x60 " } ,
{ NV4097_SET_VIEWPORT_HORIZONTAL , " NV4097_SET_VIEWPORT_HORIZONTAL " } ,
{ NV4097_SET_VIEWPORT_VERTICAL , " NV4097_SET_VIEWPORT_VERTICAL " } ,
{ NV4097_SET_VIEWPORT_OFFSET , " NV4097_SET_VIEWPORT_OFFSET " } ,
{ NV4097_SET_VIEWPORT_SCALE , " NV4097_SET_VIEWPORT_SCALE " } ,
{ NV4097_SET_POLY_OFFSET_LINE_ENABLE , " NV4097_SET_POLY_OFFSET_LINE_ENABLE " } ,
{ NV4097_SET_POLY_OFFSET_FILL_ENABLE , " NV4097_SET_POLY_OFFSET_FILL_ENABLE " } ,
{ NV4097_SET_DEPTH_FUNC , " NV4097_SET_DEPTH_FUNC " } ,
{ NV4097_SET_DEPTH_MASK , " NV4097_SET_DEPTH_MASK " } ,
{ NV4097_SET_DEPTH_TEST_ENABLE , " NV4097_SET_DEPTH_TEST_ENABLE " } ,
{ NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR , " NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR " } ,
{ NV4097_SET_POLYGON_OFFSET_BIAS , " NV4097_SET_POLYGON_OFFSET_BIAS " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M , " NV4097_SET_VERTEX_DATA_SCALED4S_M " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 4 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 8 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 12 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 16 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 20 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 24 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 28 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 32 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 36 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 40 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 44 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 48 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 52 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 56 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 60 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 60 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 64 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 64 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 68 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 68 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 72 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 72 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 76 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 76 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 80 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 80 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 84 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 84 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 88 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 88 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 92 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 92 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 96 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 96 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 100 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 100 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 104 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 104 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 108 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 108 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 112 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 112 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 116 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 116 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 120 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 120 " } ,
{ NV4097_SET_VERTEX_DATA_SCALED4S_M + 124 / 4 , " NV4097_SET_VERTEX_DATA_SCALED4S_M + 124 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 , " NV4097_SET_TEXTURE_CONTROL2 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 4 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 4 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 8 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 8 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 12 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 12 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 16 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 16 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 20 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 20 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 24 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 24 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 28 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 28 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 32 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 32 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 36 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 36 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 40 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 40 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 44 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 44 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 48 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 48 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 52 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 52 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 56 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 56 " } ,
{ NV4097_SET_TEXTURE_CONTROL2 + 60 / 4 , " NV4097_SET_TEXTURE_CONTROL2 + 60 " } ,
{ NV4097_SET_TEX_COORD_CONTROL , " NV4097_SET_TEX_COORD_CONTROL " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 4 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 4 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 8 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 8 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 12 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 12 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 16 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 16 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 20 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 20 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 24 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 24 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 28 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 28 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 32 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 32 " } ,
{ NV4097_SET_TEX_COORD_CONTROL + 36 / 4 , " NV4097_SET_TEX_COORD_CONTROL + 36 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM , " NV4097_SET_TRANSFORM_PROGRAM " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 4 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 4 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 8 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 8 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 12 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 12 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 16 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 16 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 20 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 20 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 24 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 24 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 28 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 28 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 32 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 32 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 36 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 36 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 40 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 40 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 44 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 44 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 48 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 48 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 52 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 52 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 56 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 56 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 60 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 60 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 64 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 64 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 68 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 68 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 72 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 72 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 76 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 76 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 80 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 80 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 84 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 84 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 88 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 88 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 92 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 92 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 96 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 96 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 100 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 100 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 104 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 104 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 108 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 108 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 112 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 112 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 116 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 116 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 120 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 120 " } ,
{ NV4097_SET_TRANSFORM_PROGRAM + 124 / 4 , " NV4097_SET_TRANSFORM_PROGRAM + 124 " } ,
{ NV4097_SET_TWO_SIDE_LIGHT_EN , " NV4097_SET_TWO_SIDE_LIGHT_EN " } ,
{ NV4097_CLEAR_ZCULL_SURFACE , " NV4097_CLEAR_ZCULL_SURFACE " } ,
{ NV4097_SET_USER_CLIP_PLANE_CONTROL , " NV4097_SET_USER_CLIP_PLANE_CONTROL " } ,
{ NV4097_SET_POLYGON_STIPPLE , " NV4097_SET_POLYGON_STIPPLE " } ,
{ NV4097_SET_POLYGON_STIPPLE_PATTERN , " NV4097_SET_POLYGON_STIPPLE_PATTERN " } ,
{ NV4097_SET_VERTEX_DATA3F_M , " NV4097_SET_VERTEX_DATA3F_M " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 4 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 8 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 12 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 16 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 20 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 24 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 28 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 32 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 36 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 40 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 44 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 48 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 52 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 56 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 60 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 60 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 64 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 64 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 68 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 68 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 72 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 72 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 76 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 76 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 80 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 80 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 84 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 84 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 88 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 88 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 92 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 92 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 96 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 96 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 100 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 100 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 104 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 104 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 108 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 108 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 112 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 112 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 116 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 116 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 120 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 120 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 124 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 124 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 128 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 128 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 132 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 132 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 136 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 136 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 140 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 140 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 144 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 144 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 148 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 148 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 152 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 152 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 156 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 156 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 160 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 160 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 164 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 164 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 168 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 168 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 172 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 172 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 176 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 176 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 180 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 180 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 184 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 184 " } ,
{ NV4097_SET_VERTEX_DATA3F_M + 188 / 4 , " NV4097_SET_VERTEX_DATA3F_M + 188 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 4 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 4 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 8 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 8 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 12 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 12 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 16 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 16 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 20 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 20 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 24 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 24 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 28 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 28 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 32 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 32 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 36 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 36 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 40 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 40 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 44 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 44 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 48 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 48 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 52 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 52 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 56 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 56 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 60 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 60 " } ,
{ NV4097_INVALIDATE_VERTEX_CACHE_FILE , " NV4097_INVALIDATE_VERTEX_CACHE_FILE " } ,
{ NV4097_INVALIDATE_VERTEX_FILE , " NV4097_INVALIDATE_VERTEX_FILE " } ,
{ NV4097_SET_VERTEX_DATA_BASE_OFFSET , " NV4097_SET_VERTEX_DATA_BASE_OFFSET " } ,
{ NV4097_SET_VERTEX_DATA_BASE_INDEX , " NV4097_SET_VERTEX_DATA_BASE_INDEX " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 4 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 4 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 8 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 8 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 12 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 12 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 16 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 16 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 20 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 20 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 24 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 24 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 28 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 28 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 32 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 32 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 36 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 36 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 40 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 40 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 44 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 44 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 48 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 48 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 52 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 52 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 56 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 56 " } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 60 / 4 , " NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 60 " } ,
{ NV4097_CLEAR_REPORT_VALUE , " NV4097_CLEAR_REPORT_VALUE " } ,
{ NV4097_SET_ZPASS_PIXEL_COUNT_ENABLE , " NV4097_SET_ZPASS_PIXEL_COUNT_ENABLE " } ,
{ NV4097_GET_REPORT , " NV4097_GET_REPORT " } ,
{ NV4097_SET_ZCULL_STATS_ENABLE , " NV4097_SET_ZCULL_STATS_ENABLE " } ,
{ NV4097_SET_BEGIN_END , " NV4097_SET_BEGIN_END " } ,
{ NV4097_ARRAY_ELEMENT16 , " NV4097_ARRAY_ELEMENT16 " } ,
{ NV4097_ARRAY_ELEMENT32 , " NV4097_ARRAY_ELEMENT32 " } ,
{ NV4097_DRAW_ARRAYS , " NV4097_DRAW_ARRAYS " } ,
{ NV4097_INLINE_ARRAY , " NV4097_INLINE_ARRAY " } ,
{ NV4097_SET_INDEX_ARRAY_ADDRESS , " NV4097_SET_INDEX_ARRAY_ADDRESS " } ,
{ NV4097_SET_INDEX_ARRAY_DMA , " NV4097_SET_INDEX_ARRAY_DMA " } ,
{ NV4097_DRAW_INDEX_ARRAY , " NV4097_DRAW_INDEX_ARRAY " } ,
{ NV4097_SET_FRONT_POLYGON_MODE , " NV4097_SET_FRONT_POLYGON_MODE " } ,
{ NV4097_SET_BACK_POLYGON_MODE , " NV4097_SET_BACK_POLYGON_MODE " } ,
{ NV4097_SET_CULL_FACE , " NV4097_SET_CULL_FACE " } ,
{ NV4097_SET_FRONT_FACE , " NV4097_SET_FRONT_FACE " } ,
{ NV4097_SET_POLY_SMOOTH_ENABLE , " NV4097_SET_POLY_SMOOTH_ENABLE " } ,
{ NV4097_SET_CULL_FACE_ENABLE , " NV4097_SET_CULL_FACE_ENABLE " } ,
{ NV4097_SET_TEXTURE_CONTROL3 , " NV4097_SET_TEXTURE_CONTROL3 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 4 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 4 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 8 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 8 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 12 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 12 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 16 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 16 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 20 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 20 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 24 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 24 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 28 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 28 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 32 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 32 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 36 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 36 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 40 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 40 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 44 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 44 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 48 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 48 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 52 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 52 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 56 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 56 " } ,
{ NV4097_SET_TEXTURE_CONTROL3 + 60 / 4 , " NV4097_SET_TEXTURE_CONTROL3 + 60 " } ,
{ NV4097_SET_VERTEX_DATA2F_M , " NV4097_SET_VERTEX_DATA2F_M " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 4 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 8 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 12 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 16 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 20 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 24 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 28 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 32 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 36 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 40 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 44 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 48 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 52 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 56 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 60 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 60 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 64 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 64 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 68 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 68 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 72 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 72 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 76 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 76 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 80 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 80 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 84 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 84 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 88 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 88 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 92 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 92 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 96 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 96 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 100 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 100 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 104 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 104 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 108 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 108 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 112 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 112 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 116 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 116 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 120 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 120 " } ,
{ NV4097_SET_VERTEX_DATA2F_M + 124 / 4 , " NV4097_SET_VERTEX_DATA2F_M + 124 " } ,
{ NV4097_SET_VERTEX_DATA2S_M , " NV4097_SET_VERTEX_DATA2S_M " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 4 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 8 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 12 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 16 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 20 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 24 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 28 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 32 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 36 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 40 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 44 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 48 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 52 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 56 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA2S_M + 60 / 4 , " NV4097_SET_VERTEX_DATA2S_M + 60 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M , " NV4097_SET_VERTEX_DATA4UB_M " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 4 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 8 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 12 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 16 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 20 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 24 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 28 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 32 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 36 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 40 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 44 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 48 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 52 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 56 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA4UB_M + 60 / 4 , " NV4097_SET_VERTEX_DATA4UB_M + 60 " } ,
{ NV4097_SET_VERTEX_DATA4S_M , " NV4097_SET_VERTEX_DATA4S_M " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 4 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 8 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 12 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 16 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 20 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 24 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 28 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 32 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 36 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 40 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 44 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 48 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 52 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 56 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 60 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 60 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 64 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 64 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 68 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 68 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 72 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 72 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 76 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 76 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 80 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 80 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 84 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 84 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 88 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 88 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 92 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 92 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 96 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 96 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 100 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 100 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 104 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 104 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 108 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 108 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 112 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 112 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 116 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 116 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 120 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 120 " } ,
{ NV4097_SET_VERTEX_DATA4S_M + 124 / 4 , " NV4097_SET_VERTEX_DATA4S_M + 124 " } ,
{ NV4097_SET_TEXTURE_OFFSET , " NV4097_SET_TEXTURE_OFFSET " } ,
{ NV4097_SET_TEXTURE_FORMAT , " NV4097_SET_TEXTURE_FORMAT " } ,
{ NV4097_SET_TEXTURE_ADDRESS , " NV4097_SET_TEXTURE_ADDRESS " } ,
{ NV4097_SET_TEXTURE_CONTROL0 , " NV4097_SET_TEXTURE_CONTROL0 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 , " NV4097_SET_TEXTURE_CONTROL1 " } ,
{ NV4097_SET_TEXTURE_FILTER , " NV4097_SET_TEXTURE_FILTER " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT , " NV4097_SET_TEXTURE_IMAGE_RECT " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR , " NV4097_SET_TEXTURE_BORDER_COLOR " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x20 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x20 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x20 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x20 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x20 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x20 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x20 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x20 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x20 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x20 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x20 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x20 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x20 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x20 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x20 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x20 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x40 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x40 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x40 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x40 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x40 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x40 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x40 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x40 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x40 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x40 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x40 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x40 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x40 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x40 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x40 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x40 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x60 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x60 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x60 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x60 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x60 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x60 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x60 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x60 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x60 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x60 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x60 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x60 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x60 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x60 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x60 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x60 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x80 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x80 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x80 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x80 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x80 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x80 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x80 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x80 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x80 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x80 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x80 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x80 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x80 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x80 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x80 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x80 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0xa0 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0xa0 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0xa0 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0xa0 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0xa0 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0xa0 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0xa0 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0xa0 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0xa0 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0xa0 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0xa0 / 4 , " NV4097_SET_TEXTURE_FILTER + 0xa0 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0xa0 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0xa0 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0xa0 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0xa0 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0xc0 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0xc0 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0xc0 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0xc0 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0xc0 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0xc0 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0xc0 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0xc0 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0xc0 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0xc0 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0xc0 / 4 , " NV4097_SET_TEXTURE_FILTER + 0xc0 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0xc0 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0xc0 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0xc0 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0xc0 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0xe0 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0xe0 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0xe0 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0xe0 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0xe0 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0xe0 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0xe0 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0xe0 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0xe0 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0xe0 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0xe0 / 4 , " NV4097_SET_TEXTURE_FILTER + 0xe0 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0xe0 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0xe0 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0xe0 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0xe0 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x100 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x100 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x100 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x100 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x100 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x100 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x100 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x100 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x100 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x100 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x100 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x100 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x100 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x100 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x100 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x100 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x120 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x120 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x120 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x120 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x120 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x120 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x120 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x120 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x120 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x120 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x120 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x120 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x120 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x120 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x120 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x120 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x140 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x140 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x140 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x140 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x140 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x140 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x140 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x140 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x140 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x140 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x140 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x140 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x140 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x140 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x140 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x140 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x160 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x160 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x160 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x160 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x160 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x160 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x160 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x160 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x160 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x160 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x160 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x160 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x160 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x160 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x160 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x160 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x180 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x180 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x180 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x180 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x180 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x180 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x180 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x180 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x180 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x180 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x180 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x180 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x180 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x180 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x180 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x180 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x1a0 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x1a0 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x1a0 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x1a0 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x1a0 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x1a0 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x1a0 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x1a0 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x1a0 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x1c0 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x1c0 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x1c0 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x1c0 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x1c0 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x1c0 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x1c0 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x1c0 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x1c0 " } ,
{ NV4097_SET_TEXTURE_OFFSET + 0x1e0 / 4 , " NV4097_SET_TEXTURE_OFFSET + 0x1e0 " } ,
{ NV4097_SET_TEXTURE_FORMAT + 0x1e0 / 4 , " NV4097_SET_TEXTURE_FORMAT + 0x1e0 " } ,
{ NV4097_SET_TEXTURE_ADDRESS + 0x1e0 / 4 , " NV4097_SET_TEXTURE_ADDRESS + 0x1e0 " } ,
{ NV4097_SET_TEXTURE_CONTROL0 + 0x1e0 / 4 , " NV4097_SET_TEXTURE_CONTROL0 + 0x1e0 " } ,
{ NV4097_SET_TEXTURE_CONTROL1 + 0x1e0 / 4 , " NV4097_SET_TEXTURE_CONTROL1 + 0x1e0 " } ,
{ NV4097_SET_TEXTURE_FILTER + 0x1e0 / 4 , " NV4097_SET_TEXTURE_FILTER + 0x1e0 " } ,
{ NV4097_SET_TEXTURE_IMAGE_RECT + 0x1e0 / 4 , " NV4097_SET_TEXTURE_IMAGE_RECT + 0x1e0 " } ,
{ NV4097_SET_TEXTURE_BORDER_COLOR + 0x1e0 / 4 , " NV4097_SET_TEXTURE_BORDER_COLOR + 0x1e0 " } ,
{ NV4097_SET_VERTEX_DATA4F_M , " NV4097_SET_VERTEX_DATA4F_M " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 4 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 8 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 12 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 16 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 20 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 24 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 28 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 32 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 36 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 40 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 44 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 48 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 52 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 56 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 60 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 60 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 64 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 64 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 68 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 68 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 72 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 72 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 76 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 76 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 80 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 80 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 84 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 84 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 88 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 88 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 92 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 92 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 96 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 96 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 100 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 100 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 104 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 104 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 108 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 108 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 112 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 112 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 116 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 116 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 120 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 120 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 124 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 124 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 128 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 128 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 132 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 132 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 136 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 136 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 140 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 140 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 144 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 144 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 148 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 148 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 152 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 152 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 156 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 156 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 160 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 160 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 164 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 164 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 168 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 168 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 172 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 172 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 176 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 176 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 180 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 180 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 184 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 184 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 188 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 188 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 192 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 192 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 196 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 196 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 200 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 200 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 204 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 204 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 208 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 208 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 212 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 212 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 216 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 216 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 220 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 220 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 224 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 224 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 228 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 228 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 232 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 232 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 236 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 236 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 240 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 240 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 244 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 244 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 248 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 248 " } ,
{ NV4097_SET_VERTEX_DATA4F_M + 252 / 4 , " NV4097_SET_VERTEX_DATA4F_M + 252 " } ,
{ NV4097_SET_SHADER_CONTROL , " NV4097_SET_SHADER_CONTROL " } ,
{ NV4097_SET_SEMAPHORE_OFFSET , " NV4097_SET_SEMAPHORE_OFFSET " } ,
{ NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE , " NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE " } ,
{ NV4097_TEXTURE_READ_SEMAPHORE_RELEASE , " NV4097_TEXTURE_READ_SEMAPHORE_RELEASE " } ,
{ NV4097_SET_ZMIN_MAX_CONTROL , " NV4097_SET_ZMIN_MAX_CONTROL " } ,
{ NV4097_SET_ANTI_ALIASING_CONTROL , " NV4097_SET_ANTI_ALIASING_CONTROL " } ,
{ NV4097_SET_ZCULL_EN , " NV4097_SET_ZCULL_EN " } ,
{ NV4097_SET_SHADER_WINDOW , " NV4097_SET_SHADER_WINDOW " } ,
{ NV4097_SET_ZSTENCIL_CLEAR_VALUE , " NV4097_SET_ZSTENCIL_CLEAR_VALUE " } ,
{ NV4097_SET_COLOR_CLEAR_VALUE , " NV4097_SET_COLOR_CLEAR_VALUE " } ,
{ NV4097_CLEAR_SURFACE , " NV4097_CLEAR_SURFACE " } ,
{ NV4097_SET_RESTART_INDEX_ENABLE , " NV4097_SET_RESTART_INDEX_ENABLE " } ,
{ NV4097_SET_RESTART_INDEX , " NV4097_SET_RESTART_INDEX " } ,
{ NV4097_SET_LINE_STIPPLE , " NV4097_SET_LINE_STIPPLE " } ,
{ NV4097_SET_LINE_STIPPLE_PATTERN , " NV4097_SET_LINE_STIPPLE_PATTERN " } ,
{ NV4097_SET_VERTEX_DATA1F_M , " NV4097_SET_VERTEX_DATA1F_M " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 4 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 4 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 8 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 8 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 12 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 12 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 16 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 16 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 20 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 20 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 24 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 24 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 28 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 28 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 32 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 32 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 36 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 36 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 40 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 40 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 44 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 44 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 48 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 48 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 52 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 52 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 56 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 56 " } ,
{ NV4097_SET_VERTEX_DATA1F_M + 60 / 4 , " NV4097_SET_VERTEX_DATA1F_M + 60 " } ,
{ NV4097_SET_RENDER_ENABLE , " NV4097_SET_RENDER_ENABLE " } ,
{ NV4097_SET_TRANSFORM_PROGRAM_LOAD , " NV4097_SET_TRANSFORM_PROGRAM_LOAD " } ,
{ NV4097_SET_TRANSFORM_PROGRAM_START , " NV4097_SET_TRANSFORM_PROGRAM_START " } ,
{ NV4097_SET_ZCULL_CONTROL0 , " NV4097_SET_ZCULL_CONTROL0 " } ,
{ NV4097_SET_ZCULL_CONTROL1 , " NV4097_SET_ZCULL_CONTROL1 " } ,
{ NV4097_SET_SCULL_CONTROL , " NV4097_SET_SCULL_CONTROL " } ,
{ NV4097_SET_POINT_SIZE , " NV4097_SET_POINT_SIZE " } ,
{ NV4097_SET_POINT_PARAMS_ENABLE , " NV4097_SET_POINT_PARAMS_ENABLE " } ,
{ NV4097_SET_POINT_SPRITE_CONTROL , " NV4097_SET_POINT_SPRITE_CONTROL " } ,
{ NV4097_SET_TRANSFORM_TIMEOUT , " NV4097_SET_TRANSFORM_TIMEOUT " } ,
{ NV4097_SET_TRANSFORM_CONSTANT_LOAD , " NV4097_SET_TRANSFORM_CONSTANT_LOAD " } ,
{ NV4097_SET_FREQUENCY_DIVIDER_OPERATION , " NV4097_SET_FREQUENCY_DIVIDER_OPERATION " } ,
{ NV4097_SET_ATTRIB_COLOR , " NV4097_SET_ATTRIB_COLOR " } ,
{ NV4097_SET_ATTRIB_TEX_COORD , " NV4097_SET_ATTRIB_TEX_COORD " } ,
{ NV4097_SET_ATTRIB_TEX_COORD_EX , " NV4097_SET_ATTRIB_TEX_COORD_EX " } ,
{ NV4097_SET_ATTRIB_UCLIP0 , " NV4097_SET_ATTRIB_UCLIP0 " } ,
{ NV4097_SET_ATTRIB_UCLIP1 , " NV4097_SET_ATTRIB_UCLIP1 " } ,
{ NV4097_INVALIDATE_L2 , " NV4097_INVALIDATE_L2 " } ,
{ NV4097_SET_REDUCE_DST_COLOR , " NV4097_SET_REDUCE_DST_COLOR " } ,
{ NV4097_SET_NO_PARANOID_TEXTURE_FETCHES , " NV4097_SET_NO_PARANOID_TEXTURE_FETCHES " } ,
{ NV4097_SET_SHADER_PACKER , " NV4097_SET_SHADER_PACKER " } ,
{ NV4097_SET_VERTEX_ATTRIB_INPUT_MASK , " NV4097_SET_VERTEX_ATTRIB_INPUT_MASK " } ,
{ NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK , " NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK " } ,
2015-12-02 10:23:25 +01:00
{ NV4097_SET_TRANSFORM_BRANCH_BITS , " NV4097_SET_TRANSFORM_BRANCH_BITS " } ,
2015-11-30 20:16:01 +01:00
{ NV3062_SET_OBJECT , " NV3062_SET_OBJECT " } ,
{ NV3062_SET_CONTEXT_DMA_NOTIFIES , " NV3062_SET_CONTEXT_DMA_NOTIFIES " } ,
{ NV3062_SET_CONTEXT_DMA_IMAGE_SOURCE , " NV3062_SET_CONTEXT_DMA_IMAGE_SOURCE " } ,
{ NV3062_SET_CONTEXT_DMA_IMAGE_DESTIN , " NV3062_SET_CONTEXT_DMA_IMAGE_DESTIN " } ,
{ NV3062_SET_COLOR_FORMAT , " NV3062_SET_COLOR_FORMAT " } ,
{ NV3062_SET_PITCH , " NV3062_SET_PITCH " } ,
{ NV3062_SET_OFFSET_SOURCE , " NV3062_SET_OFFSET_SOURCE " } ,
{ NV3062_SET_OFFSET_DESTIN , " NV3062_SET_OFFSET_DESTIN " } ,
{ NV308A_POINT , " NV308A_POINT " } ,
{ NV308A_SIZE_OUT , " NV308A_SIZE_OUT " } ,
{ NV308A_SIZE_IN , " NV308A_SIZE_IN " } ,
{ NV308A_COLOR , " NV308A_COLOR " } ,
2015-11-10 00:43:36 +01:00
} ;
}
2016-01-20 18:12:48 +01:00
rsx : : vertex_base_type rsx : : to_vertex_base_type ( u8 in )
2016-01-07 23:35:59 +01:00
{
switch ( in )
{
2016-01-20 18:12:48 +01:00
case 1 : return rsx : : vertex_base_type : : s1 ;
case 2 : return rsx : : vertex_base_type : : f ;
case 3 : return rsx : : vertex_base_type : : sf ;
case 4 : return rsx : : vertex_base_type : : ub ;
case 5 : return rsx : : vertex_base_type : : s32k ;
case 6 : return rsx : : vertex_base_type : : cmp ;
case 7 : return rsx : : vertex_base_type : : ub256 ;
2016-01-07 23:35:59 +01:00
}
throw new EXCEPTION ( " Unknow vertex base type %d " , in ) ;
}
2016-01-20 18:12:48 +01:00
rsx : : index_array_type rsx : : to_index_array_type ( u8 in )
2016-01-12 00:54:07 +01:00
{
switch ( in )
{
2016-01-20 18:12:48 +01:00
case 0 : return rsx : : index_array_type : : u32 ;
case 1 : return rsx : : index_array_type : : u16 ;
2016-01-12 00:54:07 +01:00
}
throw new EXCEPTION ( " Unknown index array type %d " , in ) ;
}
2016-01-20 18:12:48 +01:00
rsx : : primitive_type rsx : : to_primitive_type ( u8 in )
2016-01-12 00:54:07 +01:00
{
switch ( in )
{
2016-01-20 18:12:48 +01:00
case 1 : return rsx : : primitive_type : : points ;
case 2 : return rsx : : primitive_type : : lines ;
case 3 : return rsx : : primitive_type : : line_loop ;
case 4 : return rsx : : primitive_type : : line_strip ;
case 5 : return rsx : : primitive_type : : triangles ;
case 6 : return rsx : : primitive_type : : triangle_strip ;
case 7 : return rsx : : primitive_type : : triangle_fan ;
case 8 : return rsx : : primitive_type : : quads ;
case 9 : return rsx : : primitive_type : : quad_strip ;
case 10 : return rsx : : primitive_type : : polygon ;
2016-01-12 00:54:07 +01:00
}
throw new EXCEPTION ( " Unknow primitive type %d " , in ) ;
}
2016-01-27 00:05:41 +01:00
enum
{
CELL_GCM_WINDOW_ORIGIN_TOP = 0 ,
CELL_GCM_WINDOW_ORIGIN_BOTTOM = 1 ,
CELL_GCM_WINDOW_PIXEL_CENTER_HALF = 0 ,
CELL_GCM_WINDOW_PIXEL_CENTER_INTEGER = 1 ,
} ;
rsx : : window_origin rsx : : to_window_origin ( u8 in )
{
switch ( in )
{
case CELL_GCM_WINDOW_ORIGIN_TOP : return rsx : : window_origin : : top ;
case CELL_GCM_WINDOW_ORIGIN_BOTTOM : return rsx : : window_origin : : bottom ;
}
throw EXCEPTION ( " Unknow window origin modifier %x " , in ) ;
}
rsx : : window_pixel_center rsx : : to_window_pixel_center ( u8 in )
{
switch ( in )
{
case CELL_GCM_WINDOW_PIXEL_CENTER_HALF : return rsx : : window_pixel_center : : half ;
case CELL_GCM_WINDOW_PIXEL_CENTER_INTEGER : return rsx : : window_pixel_center : : integer ;
}
throw EXCEPTION ( " Unknow window pixel center %x " , in ) ;
}
2016-02-06 19:54:12 +01:00
rsx : : comparaison_function rsx : : to_comparaison_function ( u16 in )
{
switch ( in )
{
case CELL_GCM_NEVER : return rsx : : comparaison_function : : never ;
case CELL_GCM_LESS : return rsx : : comparaison_function : : less ;
case CELL_GCM_EQUAL : return rsx : : comparaison_function : : equal ;
case CELL_GCM_LEQUAL : return rsx : : comparaison_function : : less_or_equal ;
case CELL_GCM_GREATER : return rsx : : comparaison_function : : greater ;
case CELL_GCM_NOTEQUAL : return rsx : : comparaison_function : : not_equal ;
case CELL_GCM_GEQUAL : return rsx : : comparaison_function : : greater_or_equal ;
case CELL_GCM_ALWAYS : return rsx : : comparaison_function : : always ;
}
throw EXCEPTION ( " Wrong comparaison function %x " , in ) ;
}
2016-02-27 18:43:51 +01:00
enum
{
CELL_GCM_FOG_MODE_LINEAR = 0x2601 ,
CELL_GCM_FOG_MODE_EXP = 0x0800 ,
CELL_GCM_FOG_MODE_EXP2 = 0x0801 ,
CELL_GCM_FOG_MODE_EXP_ABS = 0x0802 ,
CELL_GCM_FOG_MODE_EXP2_ABS = 0x0803 ,
CELL_GCM_FOG_MODE_LINEAR_ABS = 0x0804 ,
} ;
rsx : : fog_mode rsx : : to_fog_mode ( u32 in )
{
switch ( in )
{
case CELL_GCM_FOG_MODE_LINEAR : return rsx : : fog_mode : : linear ;
case CELL_GCM_FOG_MODE_EXP : return rsx : : fog_mode : : exponential ;
case CELL_GCM_FOG_MODE_EXP2 : return rsx : : fog_mode : : exponential2 ;
case CELL_GCM_FOG_MODE_EXP_ABS : return rsx : : fog_mode : : exponential_abs ;
case CELL_GCM_FOG_MODE_EXP2_ABS : return rsx : : fog_mode : : exponential2_abs ;
case CELL_GCM_FOG_MODE_LINEAR_ABS : return rsx : : fog_mode : : linear_abs ;
}
throw EXCEPTION ( " Wrong fog mode %x " , in ) ;
}
2016-01-13 17:40:10 +01:00
enum
{
// Surface Target
CELL_GCM_SURFACE_TARGET_NONE = 0 ,
CELL_GCM_SURFACE_TARGET_0 = 1 ,
CELL_GCM_SURFACE_TARGET_1 = 2 ,
CELL_GCM_SURFACE_TARGET_MRT1 = 0x13 ,
CELL_GCM_SURFACE_TARGET_MRT2 = 0x17 ,
CELL_GCM_SURFACE_TARGET_MRT3 = 0x1f ,
// Surface Depth
CELL_GCM_SURFACE_Z16 = 1 ,
CELL_GCM_SURFACE_Z24S8 = 2 ,
// Surface Antialias
CELL_GCM_SURFACE_CENTER_1 = 0 ,
CELL_GCM_SURFACE_DIAGONAL_CENTERED_2 = 3 ,
CELL_GCM_SURFACE_SQUARE_CENTERED_4 = 4 ,
CELL_GCM_SURFACE_SQUARE_ROTATED_4 = 5 ,
// Surface format
CELL_GCM_SURFACE_X1R5G5B5_Z1R5G5B5 = 1 ,
CELL_GCM_SURFACE_X1R5G5B5_O1R5G5B5 = 2 ,
CELL_GCM_SURFACE_R5G6B5 = 3 ,
CELL_GCM_SURFACE_X8R8G8B8_Z8R8G8B8 = 4 ,
CELL_GCM_SURFACE_X8R8G8B8_O8R8G8B8 = 5 ,
CELL_GCM_SURFACE_A8R8G8B8 = 8 ,
CELL_GCM_SURFACE_B8 = 9 ,
CELL_GCM_SURFACE_G8B8 = 10 ,
CELL_GCM_SURFACE_F_W16Z16Y16X16 = 11 ,
CELL_GCM_SURFACE_F_W32Z32Y32X32 = 12 ,
CELL_GCM_SURFACE_F_X32 = 13 ,
CELL_GCM_SURFACE_X8B8G8R8_Z8B8G8R8 = 14 ,
CELL_GCM_SURFACE_X8B8G8R8_O8B8G8R8 = 15 ,
CELL_GCM_SURFACE_A8B8G8R8 = 16 ,
} ;
2016-01-20 18:12:48 +01:00
rsx : : surface_target rsx : : to_surface_target ( u8 in )
2016-01-13 17:40:10 +01:00
{
switch ( in )
{
2016-01-20 18:12:48 +01:00
case CELL_GCM_SURFACE_TARGET_NONE : return rsx : : surface_target : : none ;
case CELL_GCM_SURFACE_TARGET_0 : return rsx : : surface_target : : surface_a ;
case CELL_GCM_SURFACE_TARGET_1 : return rsx : : surface_target : : surface_b ;
case CELL_GCM_SURFACE_TARGET_MRT1 : return rsx : : surface_target : : surfaces_a_b ;
case CELL_GCM_SURFACE_TARGET_MRT2 : return rsx : : surface_target : : surfaces_a_b_c ;
case CELL_GCM_SURFACE_TARGET_MRT3 : return rsx : : surface_target : : surfaces_a_b_c_d ;
2016-01-13 17:40:10 +01:00
}
throw EXCEPTION ( " Unknow surface target %x " , in ) ;
}
2016-01-20 18:12:48 +01:00
rsx : : surface_depth_format rsx : : to_surface_depth_format ( u8 in )
2016-01-13 17:40:10 +01:00
{
switch ( in )
{
2016-01-20 18:12:48 +01:00
case CELL_GCM_SURFACE_Z16 : return rsx : : surface_depth_format : : z16 ;
case CELL_GCM_SURFACE_Z24S8 : return rsx : : surface_depth_format : : z24s8 ;
2016-01-13 17:40:10 +01:00
}
throw EXCEPTION ( " Unknow surface depth format %x " , in ) ;
}
2015-12-02 10:23:25 +01:00
std : : string rsx : : get_method_name ( const u32 id )
2015-11-10 00:43:36 +01:00
{
auto found = methods . find ( id ) ;
if ( found ! = methods . end ( ) )
{
2015-12-02 10:23:25 +01:00
return " CELL_GCM_ " s + found - > second ;
2015-11-10 00:43:36 +01:00
}
return fmt : : format ( " unknown/illegal method [0x%08x] " , id ) ;
}
2016-01-20 18:12:48 +01:00
rsx : : surface_antialiasing rsx : : to_surface_antialiasing ( u8 in )
2016-01-13 17:40:10 +01:00
{
switch ( in )
{
2016-01-20 18:12:48 +01:00
case CELL_GCM_SURFACE_CENTER_1 : return rsx : : surface_antialiasing : : center_1_sample ;
case CELL_GCM_SURFACE_DIAGONAL_CENTERED_2 : return rsx : : surface_antialiasing : : diagonal_centered_2_samples ;
case CELL_GCM_SURFACE_SQUARE_CENTERED_4 : return rsx : : surface_antialiasing : : square_centered_4_samples ;
case CELL_GCM_SURFACE_SQUARE_ROTATED_4 : return rsx : : surface_antialiasing : : square_rotated_4_samples ;
2016-01-13 17:40:10 +01:00
}
throw EXCEPTION ( " unknow surface antialiasing format %x " , in ) ;
}
2016-01-20 18:12:48 +01:00
rsx : : surface_color_format rsx : : to_surface_color_format ( u8 in )
2016-01-13 17:40:10 +01:00
{
switch ( in )
{
2016-01-20 18:12:48 +01:00
case CELL_GCM_SURFACE_X1R5G5B5_Z1R5G5B5 : return rsx : : surface_color_format : : x1r5g5b5_z1r5g5b5 ;
case CELL_GCM_SURFACE_X1R5G5B5_O1R5G5B5 : return rsx : : surface_color_format : : x1r5g5b5_o1r5g5b5 ;
case CELL_GCM_SURFACE_R5G6B5 : return rsx : : surface_color_format : : r5g6b5 ;
case CELL_GCM_SURFACE_X8R8G8B8_Z8R8G8B8 : return rsx : : surface_color_format : : x8r8g8b8_z8r8g8b8 ;
case CELL_GCM_SURFACE_X8R8G8B8_O8R8G8B8 : return rsx : : surface_color_format : : x8r8g8b8_o8r8g8b8 ;
case CELL_GCM_SURFACE_A8R8G8B8 : return rsx : : surface_color_format : : a8r8g8b8 ;
case CELL_GCM_SURFACE_B8 : return rsx : : surface_color_format : : b8 ;
case CELL_GCM_SURFACE_G8B8 : return rsx : : surface_color_format : : g8b8 ;
case CELL_GCM_SURFACE_F_W16Z16Y16X16 : return rsx : : surface_color_format : : w16z16y16x16 ;
case CELL_GCM_SURFACE_F_W32Z32Y32X32 : return rsx : : surface_color_format : : w32z32y32x32 ;
case CELL_GCM_SURFACE_F_X32 : return rsx : : surface_color_format : : x32 ;
case CELL_GCM_SURFACE_X8B8G8R8_Z8B8G8R8 : return rsx : : surface_color_format : : x8b8g8r8_z8b8g8r8 ;
case CELL_GCM_SURFACE_X8B8G8R8_O8B8G8R8 : return rsx : : surface_color_format : : x8b8g8r8_o8b8g8r8 ;
case CELL_GCM_SURFACE_A8B8G8R8 : return rsx : : surface_color_format : : a8b8g8r8 ;
2016-01-13 17:40:10 +01:00
}
throw EXCEPTION ( " unknow surface color format %x " , in ) ;
}
2015-11-10 00:43:36 +01:00
// Various parameter pretty printing function
namespace
{
2015-12-17 18:31:27 +01:00
std : : string get_blend_factor ( u16 factor )
2015-11-10 00:43:36 +01:00
{
switch ( factor )
{
case CELL_GCM_ZERO : return " 0 " ;
case CELL_GCM_ONE : return " 1 " ;
case CELL_GCM_SRC_COLOR : return " src.rgb " ;
case CELL_GCM_ONE_MINUS_SRC_COLOR : return " (1 - src.rgb) " ;
case CELL_GCM_SRC_ALPHA : return " src.a " ;
case CELL_GCM_ONE_MINUS_SRC_ALPHA : return " (1 - src.a) " ;
case CELL_GCM_DST_ALPHA : return " dst.a " ;
case CELL_GCM_ONE_MINUS_DST_ALPHA : return " (1 - dst.a) " ;
case CELL_GCM_DST_COLOR : return " dst.rgb " ;
case CELL_GCM_ONE_MINUS_DST_COLOR : return " (1 - dst.rgb) " ;
case CELL_GCM_SRC_ALPHA_SATURATE : return " sat(src.a) " ;
case CELL_GCM_CONSTANT_COLOR : return " const.rgb " ;
case CELL_GCM_ONE_MINUS_CONSTANT_COLOR : return " (1 - const.rgb) " ;
case CELL_GCM_CONSTANT_ALPHA : return " const.a " ;
case CELL_GCM_ONE_MINUS_CONSTANT_ALPHA : return " (1 - const.a) " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string get_blend_op ( u16 op )
2015-11-10 00:43:36 +01:00
{
switch ( op )
{
case CELL_GCM_FUNC_ADD : return " Add " ;
case CELL_GCM_FUNC_SUBTRACT : return " Substract " ;
case CELL_GCM_FUNC_REVERSE_SUBTRACT : return " Reverse_substract " ;
case CELL_GCM_MIN : return " Min " ;
case CELL_GCM_MAX : return " Max " ;
case CELL_GCM_FUNC_ADD_SIGNED : return " Add_signed " ;
case CELL_GCM_FUNC_REVERSE_ADD_SIGNED : return " Reverse_add_signed " ;
case CELL_GCM_FUNC_REVERSE_SUBTRACT_SIGNED : return " Reverse_substract_signed " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string get_logic_op ( u32 op )
2015-11-10 00:43:36 +01:00
{
switch ( op )
{
case CELL_GCM_CLEAR : return " Clear " ;
case CELL_GCM_AND : return " And " ;
case CELL_GCM_AND_REVERSE : return " And_reverse " ;
case CELL_GCM_COPY : return " Copy " ;
case CELL_GCM_AND_INVERTED : return " And_inverted " ;
case CELL_GCM_NOOP : return " Noop " ;
case CELL_GCM_XOR : return " Xor " ;
case CELL_GCM_OR : return " Or " ;
case CELL_GCM_NOR : return " Nor " ;
case CELL_GCM_EQUIV : return " Equiv " ;
case CELL_GCM_INVERT : return " Invert " ;
case CELL_GCM_OR_REVERSE : return " Or_reverse " ;
case CELL_GCM_COPY_INVERTED : return " Copy_inverted " ;
case CELL_GCM_OR_INVERTED : return " Or_inverted " ;
case CELL_GCM_NAND : return " Nand " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string get_compare_func ( u32 op )
2015-11-10 00:43:36 +01:00
{
switch ( op )
{
case CELL_GCM_NEVER : return " Never " ;
case CELL_GCM_LESS : return " Less " ;
case CELL_GCM_EQUAL : return " Equal " ;
case CELL_GCM_LEQUAL : return " Less_equal " ;
case CELL_GCM_GREATER : return " Greater " ;
case CELL_GCM_NOTEQUAL : return " Not_equal " ;
case CELL_GCM_GEQUAL : return " Greater_equal " ;
case CELL_GCM_ALWAYS : return " Always " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string get_primitive_mode ( u8 draw_mode )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
switch ( rsx : : to_primitive_type ( draw_mode ) )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
case rsx : : primitive_type : : points : return " Points " ;
case rsx : : primitive_type : : lines : return " Lines " ;
case rsx : : primitive_type : : line_loop : return " Line_loop " ;
case rsx : : primitive_type : : line_strip : return " Line_strip " ;
case rsx : : primitive_type : : triangles : return " Triangles " ;
case rsx : : primitive_type : : triangle_strip : return " Triangle_strip " ;
case rsx : : primitive_type : : triangle_fan : return " Triangle_fan " ;
case rsx : : primitive_type : : quads : return " Quads " ;
case rsx : : primitive_type : : quad_strip : return " Quad_strip " ;
case rsx : : primitive_type : : polygon : return " Polygon " ;
2015-11-10 00:43:36 +01:00
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string ptr_to_string ( u32 ptr )
2015-11-10 00:43:36 +01:00
{
2015-12-02 10:23:25 +01:00
return fmt : : format ( " 0x%08x " , ptr ) ;
2015-11-10 00:43:36 +01:00
}
2015-12-17 18:31:27 +01:00
std : : string dma_mode ( u32 arg )
2015-11-10 00:43:36 +01:00
{
switch ( arg )
{
case CELL_GCM_LOCATION_LOCAL :
case CELL_GCM_CONTEXT_DMA_MEMORY_FRAME_BUFFER : return " Local memory " ;
case CELL_GCM_LOCATION_MAIN :
case CELL_GCM_CONTEXT_DMA_MEMORY_HOST_BUFFER : return " Main memory " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string depth_stencil_surface_format ( u32 format )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
switch ( rsx : : to_surface_depth_format ( format ) )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
case rsx : : surface_depth_format : : z16 : return " CELL_GCM_SURFACE_Z16 " ;
case rsx : : surface_depth_format : : z24s8 : return " CELL_GCM_SURFACE_Z24S8 " ;
2016-01-13 17:40:10 +01:00
}
return " Error " ;
}
std : : string surface_antialiasing ( u8 format )
{
2016-01-20 18:12:48 +01:00
switch ( rsx : : to_surface_antialiasing ( format ) )
2016-01-13 17:40:10 +01:00
{
2016-01-20 18:12:48 +01:00
case rsx : : surface_antialiasing : : center_1_sample : return " 1 sample centered " ;
case rsx : : surface_antialiasing : : diagonal_centered_2_samples : return " 2 samples diagonal centered " ;
case rsx : : surface_antialiasing : : square_centered_4_samples : return " 4 samples square centered " ;
case rsx : : surface_antialiasing : : square_rotated_4_samples : return " 4 samples diagonal rotated " ;
2015-11-10 00:43:36 +01:00
}
return " Error " ;
}
2016-01-20 18:12:48 +01:00
std : : string surface_color_format ( u32 format )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
switch ( rsx : : to_surface_color_format ( format ) )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
case rsx : : surface_color_format : : x1r5g5b5_z1r5g5b5 : return " CELL_GCM_SURFACE_X1R5G5B5_Z1R5G5B5 " ;
case rsx : : surface_color_format : : x1r5g5b5_o1r5g5b5 : return " CELL_GCM_SURFACE_X1R5G5B5_O1R5G5B5 " ;
case rsx : : surface_color_format : : r5g6b5 : return " CELL_GCM_SURFACE_R5G6B5 " ;
case rsx : : surface_color_format : : x8r8g8b8_z8r8g8b8 : return " CELL_GCM_SURFACE_X8R8G8B8_Z8R8G8B8 " ;
case rsx : : surface_color_format : : x8r8g8b8_o8r8g8b8 : return " CELL_GCM_SURFACE_X8R8G8B8_O8R8G8B8 " ;
case rsx : : surface_color_format : : a8r8g8b8 : return " CELL_GCM_SURFACE_A8R8G8B8 " ;
case rsx : : surface_color_format : : b8 : return " CELL_GCM_SURFACE_B8 " ;
case rsx : : surface_color_format : : g8b8 : return " CELL_GCM_SURFACE_G8B8 " ;
case rsx : : surface_color_format : : w16z16y16x16 : return " CELL_GCM_SURFACE_F_W16Z16Y16X16 " ;
case rsx : : surface_color_format : : w32z32y32x32 : return " CELL_GCM_SURFACE_F_W32Z32Y32X32 " ;
case rsx : : surface_color_format : : x32 : return " CELL_GCM_SURFACE_F_X32 " ;
case rsx : : surface_color_format : : x8b8g8r8_z8b8g8r8 : return " CELL_GCM_SURFACE_X8B8G8R8_Z8B8G8R8 " ;
case rsx : : surface_color_format : : x8b8g8r8_o8b8g8r8 : return " CELL_GCM_SURFACE_X8B8G8R8_O8B8G8R8 " ;
case rsx : : surface_color_format : : a8b8g8r8 : return " CELL_GCM_SURFACE_A8B8G8R8 " ;
2015-11-10 00:43:36 +01:00
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string surface_target ( u32 target )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
switch ( rsx : : to_surface_target ( target ) )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
case rsx : : surface_target : : none : return " none " ;
case rsx : : surface_target : : surface_a : return " surface A " ;
case rsx : : surface_target : : surface_b : return " surface B " ;
case rsx : : surface_target : : surfaces_a_b : return " surfaces A and B " ;
case rsx : : surface_target : : surfaces_a_b_c : return " surfaces A, B and C " ;
case rsx : : surface_target : : surfaces_a_b_c_d : return " surfaces A,B, C and D " ;
2015-11-10 00:43:36 +01:00
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string get_clear_color ( u32 clear_color )
2015-11-10 00:43:36 +01:00
{
u8 clear_a = clear_color > > 24 ;
u8 clear_r = clear_color > > 16 ;
u8 clear_g = clear_color > > 8 ;
u8 clear_b = clear_color ;
return " A = " + std : : to_string ( clear_a / 255.0f ) + " R = " + std : : to_string ( clear_r / 255.0f ) + " G = " + std : : to_string ( clear_g / 255.0f ) + " B = " + std : : to_string ( clear_b / 255.0f ) ;
}
2015-12-17 18:31:27 +01:00
static std : : string get_zstencil_clear ( u32 zstencil )
2015-11-10 00:43:36 +01:00
{
u32 depth = zstencil > > 8 ;
u32 stencil = zstencil & 0xff ;
return " Z = " + std : : to_string ( depth ) + " S = " + std : : to_string ( stencil ) ;
}
2015-12-17 18:31:27 +01:00
std : : string get_stencil_op ( u32 op )
2015-11-10 00:43:36 +01:00
{
switch ( op )
{
case CELL_GCM_KEEP : return " Keep " ;
case CELL_GCM_ZERO : return " Zero " ;
case CELL_GCM_REPLACE : return " Replace " ;
case CELL_GCM_INCR : return " Incr " ;
case CELL_GCM_DECR : return " Decr " ;
case CELL_GCM_INCR_WRAP : return " Incr_wrap " ;
case CELL_GCM_DECR_WRAP : return " Decr_wrap " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string get_vertex_attribute_format ( u8 type )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
switch ( rsx : : to_vertex_base_type ( type ) )
2015-11-10 00:43:36 +01:00
{
2016-02-22 22:07:38 +01:00
case rsx : : vertex_base_type : : s1 : return " Signed short normalized " ;
2016-01-20 18:12:48 +01:00
case rsx : : vertex_base_type : : f : return " Float " ;
case rsx : : vertex_base_type : : sf : return " Half float " ;
2016-02-22 21:36:48 +01:00
case rsx : : vertex_base_type : : ub : return " Unsigned byte normalized " ;
2016-02-22 22:07:38 +01:00
case rsx : : vertex_base_type : : s32k : return " Signed short unormalized " ;
2016-01-20 18:12:48 +01:00
case rsx : : vertex_base_type : : cmp : return " CMP " ;
2016-02-22 21:36:48 +01:00
case rsx : : vertex_base_type : : ub256 : return " Unsigned byte unormalized " ;
2015-11-10 00:43:36 +01:00
}
}
2015-12-17 18:31:27 +01:00
std : : string unpack_vertex_format ( u32 arg )
2015-11-10 00:43:36 +01:00
{
u32 frequency = arg > > 16 ;
u32 stride = ( arg > > 8 ) & 0xff ;
u32 size = ( arg > > 4 ) & 0xf ;
u32 type = arg & 0xf ;
if ( size = = 0 )
return " (disabled) " ;
return " Type = " + get_vertex_attribute_format ( type ) + " size = " + std : : to_string ( size ) + " stride = " + std : : to_string ( stride ) + " frequency = " + std : : to_string ( frequency ) ;
}
2015-12-17 18:31:27 +01:00
std : : string index_type ( u16 arg )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
switch ( rsx : : to_index_array_type ( arg ) )
2015-11-10 00:43:36 +01:00
{
2016-01-20 18:12:48 +01:00
case rsx : : index_array_type : : u16 : return " unsigned short " ;
case rsx : : index_array_type : : u32 : return " unsigned int " ;
2015-11-10 00:43:36 +01:00
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string transform_constant ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
return " Transform constant " + std : : to_string ( index ) + " : " + std : : to_string ( arg ) + " / " + std : : to_string ( ( float & ) arg ) ;
}
2015-12-17 18:31:27 +01:00
std : : string texture_offset ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
return " Texture " + std : : to_string ( index ) + " : Offset @ " + ptr_to_string ( arg ) ;
}
2015-12-17 18:31:27 +01:00
std : : string texture_size ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
return " Texture " + std : : to_string ( index ) + " : width = " + std : : to_string ( arg & 0xffff ) + " height = " + std : : to_string ( arg > > 16 ) ;
}
2015-12-17 18:31:27 +01:00
static std : : string get_texture_format_name ( u32 format )
2015-11-10 00:43:36 +01:00
{
switch ( format )
{
case CELL_GCM_TEXTURE_COMPRESSED_HILO8 : return " CELL_GCM_TEXTURE_COMPRESSED_HILO8 " ;
case CELL_GCM_TEXTURE_COMPRESSED_HILO_S8 : return " CELL_GCM_TEXTURE_COMPRESSED_HILO_S8 " ;
case CELL_GCM_TEXTURE_B8 : return " CELL_GCM_TEXTURE_B8 " ;
case CELL_GCM_TEXTURE_A1R5G5B5 : return " CELL_GCM_TEXTURE_A1R5G5B5 " ;
case CELL_GCM_TEXTURE_A4R4G4B4 : return " CELL_GCM_TEXTURE_A4R4G4B4 " ;
case CELL_GCM_TEXTURE_R5G6B5 : return " CELL_GCM_TEXTURE_R5G6B5 " ;
case CELL_GCM_TEXTURE_A8R8G8B8 : return " CELL_GCM_TEXTURE_A8R8G8B8 " ;
case CELL_GCM_TEXTURE_COMPRESSED_DXT1 : return " CELL_GCM_TEXTURE_COMPRESSED_DXT1 " ;
case CELL_GCM_TEXTURE_COMPRESSED_DXT23 : return " CELL_GCM_TEXTURE_COMPRESSED_DXT23 " ;
case CELL_GCM_TEXTURE_COMPRESSED_DXT45 : return " CELL_GCM_TEXTURE_COMPRESSED_DXT45 " ;
case CELL_GCM_TEXTURE_G8B8 : return " CELL_GCM_TEXTURE_G8B8 " ;
case CELL_GCM_TEXTURE_R6G5B5 : return " CELL_GCM_TEXTURE_R6G5B5 " ;
case CELL_GCM_TEXTURE_DEPTH24_D8 : return " CELL_GCM_TEXTURE_DEPTH24_D8 " ;
case CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT : return " CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT " ;
case CELL_GCM_TEXTURE_DEPTH16 : return " CELL_GCM_TEXTURE_DEPTH16 " ;
case CELL_GCM_TEXTURE_DEPTH16_FLOAT : return " CELL_GCM_TEXTURE_DEPTH16_FLOAT " ;
case CELL_GCM_TEXTURE_X16 : return " CELL_GCM_TEXTURE_X16 " ;
case CELL_GCM_TEXTURE_Y16_X16 : return " CELL_GCM_TEXTURE_Y16_X16 " ;
case CELL_GCM_TEXTURE_R5G5B5A1 : return " CELL_GCM_TEXTURE_R5G5B5A1 " ;
case CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT : return " CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT " ;
case CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT : return " CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT " ;
case CELL_GCM_TEXTURE_X32_FLOAT : return " CELL_GCM_TEXTURE_X32_FLOAT " ;
case CELL_GCM_TEXTURE_D1R5G5B5 : return " CELL_GCM_TEXTURE_D1R5G5B5 " ;
case CELL_GCM_TEXTURE_D8R8G8B8 : return " CELL_GCM_TEXTURE_D8R8G8B8 " ;
case CELL_GCM_TEXTURE_Y16_X16_FLOAT : return " CELL_GCM_TEXTURE_Y16_X16_FLOAT " ;
case CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8 : return " CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8 " ;
case CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8 : return " CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8 " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string texture_format ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
int format = ( ( arg > > 8 ) & 0xFF ) ;
return " Texture " + std : : to_string ( index ) + " : location = " + ptr_to_string ( ( arg & 0x3 ) - 1 ) +
( ( ( arg > > 2 ) & 0x1 ) ? " cubemap " : " " ) +
" border type = " + std : : to_string ( ( arg > > 3 ) & 0x1 ) +
" dimension = " + std : : to_string ( ( arg > > 4 ) & 0xF ) +
" format = " + get_texture_format_name ( format & ~ ( CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN ) ) +
( ( format & CELL_GCM_TEXTURE_LN ) ? " " : " swizzled " ) +
( ( format & CELL_GCM_TEXTURE_UN ) ? " unormalized coordinates " : " " ) +
" mipmap levels = " + std : : to_string ( ( arg > > 16 ) & 0xFFFF ) ;
}
2015-12-17 18:31:27 +01:00
std : : string get_texture_wrap_mode ( u8 wrap )
2015-11-10 00:43:36 +01:00
{
switch ( wrap )
{
case CELL_GCM_TEXTURE_WRAP : return " WRAP " ;
case CELL_GCM_TEXTURE_MIRROR : return " MIRROR " ;
case CELL_GCM_TEXTURE_CLAMP_TO_EDGE : return " CLAMP_TO_EDGE " ;
case CELL_GCM_TEXTURE_BORDER : return " BORDER " ;
case CELL_GCM_TEXTURE_CLAMP : return " CLAMP " ;
case CELL_GCM_TEXTURE_MIRROR_ONCE_CLAMP_TO_EDGE : return " MIRROR_ONCE_CLAMP_TO_EDGE " ;
case CELL_GCM_TEXTURE_MIRROR_ONCE_BORDER : return " MIRROR_ONCE_BORDER " ;
case CELL_GCM_TEXTURE_MIRROR_ONCE_CLAMP : return " MIRROR_ONCE_CLAMP " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string get_zfunc_name ( u8 op )
2015-11-10 00:43:36 +01:00
{
switch ( op )
{
case 0 : return " Never " ;
case 1 : return " Less " ;
case 2 : return " Equal " ;
case 3 : return " LEqual " ;
case 4 : return " Greater " ;
case 5 : return " NotEqual " ;
case 6 : return " GreaterOrEqual " ;
case 7 : return " Always " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string texture_address ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
return " Texture " + std : : to_string ( index ) + " : wrap_s = " + get_texture_wrap_mode ( arg & 0xF ) +
" wrap_t = " + get_texture_wrap_mode ( ( arg > > 8 ) & 0xF ) +
" wrap_r = " + get_texture_wrap_mode ( ( arg > > 16 ) & 0xF ) +
" unsigned remap = " + std : : to_string ( ( arg > > 12 ) & 0xF ) +
" zfunc = " + get_zfunc_name ( ( arg > > 28 ) & 0xF ) +
" gamma = " + std : : to_string ( ( arg > > 20 ) & 0xF ) +
" aniso bias = " + std : : to_string ( ( arg > > 4 ) & 0xF ) +
" signed remap = " + std : : to_string ( ( arg > > 24 ) & 0xF ) ;
}
2015-12-17 18:31:27 +01:00
std : : string get_texture_max_aniso_name ( u8 aniso )
2015-11-10 00:43:36 +01:00
{
switch ( aniso )
{
case CELL_GCM_TEXTURE_MAX_ANISO_1 : return " 1 " ;
case CELL_GCM_TEXTURE_MAX_ANISO_2 : return " 2 " ;
case CELL_GCM_TEXTURE_MAX_ANISO_4 : return " 4 " ;
case CELL_GCM_TEXTURE_MAX_ANISO_6 : return " 6 " ;
case CELL_GCM_TEXTURE_MAX_ANISO_8 : return " 8 " ;
case CELL_GCM_TEXTURE_MAX_ANISO_10 : return " 10 " ;
case CELL_GCM_TEXTURE_MAX_ANISO_12 : return " 12 " ;
case CELL_GCM_TEXTURE_MAX_ANISO_16 : return " 16 " ;
}
return " Error " ;
}
2015-12-17 18:31:27 +01:00
std : : string texture_control0 ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
std : : string result = " Texture " + std : : to_string ( index ) ;
if ( ( arg > > 31 ) & 0x1 )
{
result + = " min lod = " + std : : to_string ( ( arg > > 19 ) & 0xFFF ) +
" max lod = " + std : : to_string ( ( arg > > 7 ) & 0xFFF ) +
" max aniso = " + get_texture_max_aniso_name ( ( arg > > 4 ) & 0x7 ) +
" alpha kill = " + ( ( ( arg > > 2 ) & 0x1 ) ? " true " : " false " ) ;
}
else
result + = " (disabled) " ;
return result ;
}
2015-11-30 20:16:01 +01:00
std : : string get_remap_channel ( u8 op ) noexcept
{
switch ( op )
{
case 0 : return " A " ;
case 1 : return " R " ;
case 2 : return " G " ;
case 3 : return " B " ;
}
return " Error " ;
}
std : : string texture_control1 ( size_t index , u32 arg ) noexcept
2015-11-10 00:43:36 +01:00
{
return " Texture " + std : : to_string ( index ) +
2015-11-30 20:16:01 +01:00
" Component 0 = " + get_remap_channel ( arg & 0x3 ) +
" Component 1 = " + get_remap_channel ( ( arg > > 2 ) & 0x3 ) +
" Component 2 = " + get_remap_channel ( ( arg > > 4 ) & 0x3 ) +
" Component 3 = " + get_remap_channel ( ( arg > > 6 ) & 0x3 ) ;
2015-11-10 00:43:36 +01:00
}
2015-12-17 18:31:27 +01:00
std : : string texture_control3 ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
return " Texture " + std : : to_string ( index ) +
" depth = " + std : : to_string ( arg > > 20 ) +
" pitch = " + std : : to_string ( arg & 0xFFFFF ) ;
}
2015-12-17 18:31:27 +01:00
std : : string texture_border_color ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
return " Texture " + std : : to_string ( index ) +
" border color = " + std : : to_string ( arg ) ;
}
2015-12-17 18:31:27 +01:00
std : : string texture_filter ( size_t index , u32 arg )
2015-11-10 00:43:36 +01:00
{
return " Texture " + std : : to_string ( index ) +
2015-11-30 20:16:01 +01:00
" bias = " + std : : to_string ( arg & 0x1fff ) +
" min_filter = " + std : : to_string ( ( arg > > 16 ) & 0x7 ) +
" mag_filter = " + std : : to_string ( ( arg > > 24 ) & 0x7 ) +
" convolution_filter = " + std : : to_string ( ( arg > > 13 ) & 0xF ) +
" a_signed = " + std : : to_string ( ( arg > > 28 ) & 0x1 ) +
" r_signed = " + std : : to_string ( ( arg > > 29 ) & 0x1 ) +
" g_signed = " + std : : to_string ( ( arg > > 30 ) & 0x1 ) +
" b_signed = " + std : : to_string ( ( arg > > 31 ) & 0x1 ) ;
}
std : : string vertex_input_mask ( u32 arg )
{
const std : : string input_names [ ] =
{
" in_pos " , " in_weight " , " in_normal " ,
" in_diff_color " , " in_spec_color " ,
" in_fog " ,
" in_point_size " , " in_7 " ,
" in_tc0 " , " in_tc1 " , " in_tc2 " , " in_tc3 " ,
" in_tc4 " , " in_tc5 " , " in_tc6 " , " in_tc7 "
} ;
std : : string result = " Transform program enabled inputs: " ;
for ( unsigned i = 0 ; i < 16 ; i + + )
if ( arg & ( 1 < < i ) )
result + = input_names [ i ] + " " ;
return result ;
}
std : : string vertex_output_mask ( u32 arg )
{
const std : : string output_names [ ] =
{
" diffuse_color " ,
" specular_color " ,
" back_diffuse_color " ,
" back_specular_color " ,
" fog " ,
" point_size " ,
" clip_distance[0] " ,
" clip_distance[1] " ,
" clip_distance[2] " ,
" clip_distance[3] " ,
" clip_distance[4] " ,
" clip_distance[5] " ,
" tc8 " ,
" tc9 " ,
" tc0 " ,
" tc1 " ,
" tc2 " ,
" tc3 " ,
" tc4 " ,
" tc5 " ,
" tc6 " ,
" tc7 "
} ;
std : : string result = " Transform program outputs: " ;
for ( unsigned i = 0 ; i < 22 ; i + + )
if ( arg & ( 1 < < i ) )
result + = output_names [ i ] + " " ;
return result ;
}
std : : string shader_control ( u32 arg )
{
return " Shader control: raw_value = " + std : : to_string ( arg ) +
" reg_count = " + std : : to_string ( ( arg > > 24 ) & 0xFF ) +
( ( arg & CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT ) ? " depth_replace " : " " ) +
( ( arg & CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS ) ? " 32b_exports " : " " ) ;
2015-11-10 00:43:36 +01:00
}
2016-01-03 02:12:41 +01:00
std : : string anti_aliasing_control ( u32 arg )
{
std : : string result = " Anti_aliasing: " ;
if ( arg & 0x1 )
result + = " enabled " ;
else
result + = " disabled " ;
result + = " alpha_to_coverage = " ;
if ( ( arg > > 4 ) & 0x1 )
result + = " enabled " ;
else
result + = " disabled " ;
result + = " alpha_to_one = " ;
if ( ( arg > > 8 ) & 0x1 )
result + = " enabled " ;
else
result + = " disabled " ;
result + = " sample_mask = " + ptr_to_string ( arg > > 16 ) ;
return result ;
}
2016-01-27 00:05:41 +01:00
std : : string origin_mode ( u32 origin )
{
switch ( rsx : : to_window_origin ( origin ) )
{
case rsx : : window_origin : : bottom : return " bottom " ;
case rsx : : window_origin : : top : return " top " ;
}
throw EXCEPTION ( " Wrong origin mode " ) ;
}
std : : string pixel_center_mode ( u32 in )
{
switch ( rsx : : to_window_pixel_center ( in ) )
{
case rsx : : window_pixel_center : : half : return " half " ;
case rsx : : window_pixel_center : : integer : return " integer " ;
}
throw EXCEPTION ( " Wrong origin mode " ) ;
}
std : : string shader_window ( u32 arg )
{
return " Viewport: height = " + std : : to_string ( arg & 0xFFF ) + " origin = " + origin_mode ( ( arg > > 12 ) & 0xF ) + " pixel center = " + pixel_center_mode ( ( arg > > 16 ) & 0xF ) ;
}
2015-11-10 00:43:36 +01:00
# define OPCODE_RANGE_1(opcode, increment, index, printing_function) \
2015-12-02 10:23:25 +01:00
{ ( opcode ) + ( index ) * ( increment ) , [ ] ( u32 arg ) - > std : : string { return ( printing_function ) ( ( index ) , arg ) ; } } ,
2015-11-10 00:43:36 +01:00
# define OPCODE_RANGE_2(opcode, increment, index, printing_function) \
OPCODE_RANGE_1 ( ( opcode ) , ( increment ) , ( index ) , ( printing_function ) ) \
OPCODE_RANGE_1 ( ( opcode ) , ( increment ) , ( index ) + 1 , ( printing_function ) )
# define OPCODE_RANGE_4(opcode, increment, index, printing_function) \
OPCODE_RANGE_2 ( ( opcode ) , ( increment ) , ( index ) , ( printing_function ) ) \
OPCODE_RANGE_2 ( ( opcode ) , ( increment ) , ( index ) + 2 , ( printing_function ) )
# define OPCODE_RANGE_8(opcode, increment, index, printing_function) \
OPCODE_RANGE_4 ( ( opcode ) , ( increment ) , ( index ) , ( printing_function ) ) \
OPCODE_RANGE_4 ( ( opcode ) , ( increment ) , ( index ) + 4 , ( printing_function ) )
# define OPCODE_RANGE_16(opcode, increment, index, printing_function) \
OPCODE_RANGE_8 ( ( opcode ) , ( increment ) , ( index ) , ( printing_function ) ) \
OPCODE_RANGE_8 ( ( opcode ) , ( increment ) , ( index ) + 8 , ( printing_function ) )
# define OPCODE_RANGE_32(opcode, increment, index, printing_function) \
OPCODE_RANGE_16 ( ( opcode ) , ( increment ) , ( index ) , ( printing_function ) ) \
OPCODE_RANGE_16 ( ( opcode ) , ( increment ) , ( index ) + 16 , ( printing_function ) )
2015-11-30 20:16:01 +01:00
# define OPCODE_RANGE_64(opcode, increment, index, printing_function) \
OPCODE_RANGE_32 ( ( opcode ) , ( increment ) , ( index ) , ( printing_function ) ) \
OPCODE_RANGE_32 ( ( opcode ) , ( increment ) , ( index ) + 32 , ( printing_function ) )
2015-12-02 10:23:25 +01:00
const std : : unordered_map < u32 , std : : string ( * ) ( u32 ) > printing_functions =
2015-11-10 00:43:36 +01:00
{
2015-12-02 10:23:25 +01:00
{ NV4097_NO_OPERATION , [ ] ( u32 ) - > std : : string { return " (nop) " ; } } ,
{ NV4097_SET_ALPHA_TEST_ENABLE , [ ] ( u32 arg ) - > std : : string { return ( ! ! arg ) ? " Alpha: enable " : " Alpha: disable " ; } } ,
{ NV4097_SET_DEPTH_TEST_ENABLE , [ ] ( u32 arg ) - > std : : string { return ( ! ! arg ) ? " Depth: enable " : " Depth: disable " ; } } ,
{ NV4097_SET_DEPTH_MASK , [ ] ( u32 arg ) - > std : : string { return ( ! ! arg ) ? " Depth: write enabled " : " Depth: write disabled " ; } } ,
{ NV4097_SET_DEPTH_FUNC , [ ] ( u32 arg ) - > std : : string { return " Depth: " + get_compare_func ( arg ) ; } } ,
{ NV4097_SET_LOGIC_OP_ENABLE , [ ] ( u32 arg ) - > std : : string { return ( ! ! arg ) ? " Logic Op: enable " : " Logic Op: disable " ; } } ,
{ NV4097_SET_LOGIC_OP , [ ] ( u32 arg ) - > std : : string { return " Logic Op: " + get_logic_op ( arg ) ; } } ,
{ NV4097_SET_BLEND_ENABLE , [ ] ( u32 arg ) - > std : : string { return ( ! ! arg ) ? " Blend: enable " : " Blend: disable " ; } } ,
{ NV4097_SET_BLEND_FUNC_SFACTOR , [ ] ( u32 arg ) - > std : : string { return " Blend: sfactor.rgb = " + get_blend_factor ( arg & 0xFFFF ) + " sfactor.a = " + get_blend_factor ( arg > > 16 ) ; } } ,
{ NV4097_SET_BLEND_FUNC_DFACTOR , [ ] ( u32 arg ) - > std : : string { return " Blend: dfactor.rgb = " + get_blend_factor ( arg & 0xFFFF ) + " dfactor.a = " + get_blend_factor ( arg > > 16 ) ; } } ,
{ NV4097_SET_BLEND_EQUATION , [ ] ( u32 arg ) - > std : : string { return " Blend: op.rgb = " + get_blend_op ( arg & 0xFFFF ) + " op.a = " + get_blend_op ( arg > > 16 ) ; } } ,
{ NV4097_SET_BLEND_ENABLE_MRT , [ ] ( u32 arg ) - > std : : string { return " Blend: mrt0 = " + std : : to_string ( ! ! ( arg & 0x2 ) ) + " mrt1 = " + std : : to_string ( ! ! ( arg & 0x4 ) ) + " mrt2 = " + std : : to_string ( ! ! ( arg & 0x8 ) ) ; } } ,
{ NV4097_SET_COLOR_MASK , [ ] ( u32 arg ) - > std : : string { return " Color mask: A = " + std : : to_string ( ! ! ( arg & 0x1000000 ) ) + " R = " + std : : to_string ( ! ! ( arg & 0x10000 ) ) + " G = " + std : : to_string ( ! ! ( arg & 0x100 ) ) + " B = " + std : : to_string ( ! ! ( arg & 0x1 ) ) ; } } ,
{ NV4097_SET_VIEWPORT_HORIZONTAL , [ ] ( u32 arg ) - > std : : string { return " Viewport: x = " + std : : to_string ( arg & 0xFFFF ) + " width = " + std : : to_string ( arg > > 16 ) ; } } ,
{ NV4097_SET_VIEWPORT_VERTICAL , [ ] ( u32 arg ) - > std : : string { return " Viewport: y = " + std : : to_string ( arg & 0xFFFF ) + " height = " + std : : to_string ( arg > > 16 ) ; } } ,
{ NV4097_SET_BEGIN_END , [ ] ( u32 arg ) - > std : : string { return arg ? " - Begin: " + get_primitive_mode ( arg ) + " - " : " - End - " ; } } ,
{ NV4097_DRAW_ARRAYS , [ ] ( u32 arg ) - > std : : string { return " Draw " + std : : to_string ( ( arg > > 24 ) + 1 ) + " vertex starting from " + std : : to_string ( arg & 0xFFFFFF ) ; } } ,
{ NV4097_DRAW_INDEX_ARRAY , [ ] ( u32 arg ) - > std : : string { return " Draw " + std : : to_string ( ( arg > > 24 ) + 1 ) + " index starting from " + std : : to_string ( arg & 0xFFFFFF ) ; } } ,
{ NV4097_SET_SEMAPHORE_OFFSET , [ ] ( u32 arg ) - > std : : string { return " Semaphore: @ " + ptr_to_string ( arg ) ; } } ,
{ NV4097_TEXTURE_READ_SEMAPHORE_RELEASE , [ ] ( u32 arg ) - > std : : string { return " Write semaphore value " + std : : to_string ( arg ) ; } } ,
{ NV4097_CLEAR_SURFACE , [ ] ( u32 arg ) - > std : : string { return " Clear surface " + std : : string ( arg & 0x1 ? " Depth " : " " ) + std : : string ( arg & 0x2 ? " Stencil " : " " ) + std : : string ( arg & 0xF0 ? " Color " : " " ) ; } } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_A , [ ] ( u32 arg ) - > std : : string { return " Surface A: DMA mode = " + dma_mode ( arg ) ; } } ,
{ NV4097_SET_SURFACE_PITCH_A , [ ] ( u32 arg ) - > std : : string { return " Surface A: Pitch = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_SURFACE_COLOR_AOFFSET , [ ] ( u32 arg ) - > std : : string { return " Surface A: Offset = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_B , [ ] ( u32 arg ) - > std : : string { return " Surface B: DMA mode = " + dma_mode ( arg ) ; } } ,
{ NV4097_SET_SURFACE_PITCH_B , [ ] ( u32 arg ) - > std : : string { return " Surface B: Pitch = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_SURFACE_COLOR_BOFFSET , [ ] ( u32 arg ) - > std : : string { return " Surface B: Offset = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_C , [ ] ( u32 arg ) - > std : : string { return " Surface C: DMA mode = " + dma_mode ( arg ) ; } } ,
{ NV4097_SET_SURFACE_PITCH_C , [ ] ( u32 arg ) - > std : : string { return " Surface C: Pitch = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_SURFACE_COLOR_COFFSET , [ ] ( u32 arg ) - > std : : string { return " Surface C: Offset = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_SURFACE_PITCH_D , [ ] ( u32 arg ) - > std : : string { return " Surface D: Pitch = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_SURFACE_COLOR_DOFFSET , [ ] ( u32 arg ) - > std : : string { return " Surface D: Offset = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_CONTEXT_DMA_COLOR_D , [ ] ( u32 arg ) - > std : : string { return " Surface D: DMA mode = " + dma_mode ( arg ) ; } } ,
{ NV4097_SET_SURFACE_PITCH_Z , [ ] ( u32 arg ) - > std : : string { return " Surface Zeta: Pitch = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_SURFACE_ZETA_OFFSET , [ ] ( u32 arg ) - > std : : string { return " Surface Zeta: Offset = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_CONTEXT_DMA_ZETA , [ ] ( u32 arg ) - > std : : string { return " Surface Zeta: DMA mode = " + dma_mode ( arg ) ; } } ,
2016-01-20 18:12:48 +01:00
{ NV4097_SET_SURFACE_FORMAT , [ ] ( u32 arg ) - > std : : string { return " Surface: Color format = " + surface_color_format ( arg & 0x1F ) + " DepthStencil format = " + depth_stencil_surface_format ( ( arg > > 5 ) & 0x7 ) + " Anti aliasing = " + surface_antialiasing ( ( arg > > 12 ) & 0x7 ) ; } } ,
2015-12-02 10:23:25 +01:00
{ NV4097_SET_SURFACE_CLIP_HORIZONTAL , [ ] ( u32 arg ) - > std : : string { return " Surface: clip x = " + std : : to_string ( arg & 0xFFFF ) + " width = " + std : : to_string ( arg > > 16 ) ; } } ,
{ NV4097_SET_SURFACE_CLIP_VERTICAL , [ ] ( u32 arg ) - > std : : string { return " Surface: clip y = " + std : : to_string ( arg & 0xFFFF ) + " height = " + std : : to_string ( arg > > 16 ) ; } } ,
{ NV4097_SET_SURFACE_COLOR_TARGET , [ ] ( u32 arg ) - > std : : string { return " Surface: Targets " + surface_target ( arg ) ; } } ,
{ NV4097_SET_COLOR_CLEAR_VALUE , [ ] ( u32 arg ) - > std : : string { return " Clear: " + get_clear_color ( arg ) ; } } ,
{ NV4097_SET_ZSTENCIL_CLEAR_VALUE , [ ] ( u32 arg ) - > std : : string { return " Clear: " + get_zstencil_clear ( arg ) ; } } ,
{ NV4097_SET_CLIP_MIN , [ ] ( u32 arg ) - > std : : string { return " Depth: Min = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_CLIP_MAX , [ ] ( u32 arg ) - > std : : string { return " Depth: Max = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_VIEWPORT_SCALE , [ ] ( u32 arg ) - > std : : string { return " Viewport: x scale = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_VIEWPORT_SCALE + 1 , [ ] ( u32 arg ) - > std : : string { return " Viewport: y scale = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_VIEWPORT_SCALE + 2 , [ ] ( u32 arg ) - > std : : string { return " Viewport: z scale = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_VIEWPORT_OFFSET , [ ] ( u32 arg ) - > std : : string { return " Viewport: x offset = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_VIEWPORT_OFFSET + 1 , [ ] ( u32 arg ) - > std : : string { return " Viewport: y offset = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_VIEWPORT_OFFSET + 2 , [ ] ( u32 arg ) - > std : : string { return " Viewport: z offset = " + std : : to_string ( ( f32 & ) arg ) ; } } ,
{ NV4097_SET_SCISSOR_HORIZONTAL , [ ] ( u32 arg ) - > std : : string { return " Scissor: x = " + std : : to_string ( arg & 0xFFFF ) + " width = " + std : : to_string ( arg > > 16 ) ; } } ,
{ NV4097_SET_SCISSOR_VERTICAL , [ ] ( u32 arg ) - > std : : string { return " Scissor: y = " + std : : to_string ( arg & 0xFFFF ) + " height = " + std : : to_string ( arg > > 16 ) ; } } ,
{ NV4097_SET_STENCIL_TEST_ENABLE , [ ] ( u32 arg ) - > std : : string { return ( ! ! arg ) ? " Stencil: Enable " : " Stencil : Disable " ; } } ,
{ NV4097_SET_STENCIL_FUNC , [ ] ( u32 arg ) - > std : : string { return " Stencil: " + get_compare_func ( arg ) ; } } ,
{ NV4097_SET_BACK_STENCIL_OP_ZPASS , [ ] ( u32 arg ) - > std : : string { return " Stencil: Back ZPass = " + get_stencil_op ( arg ) ; } } ,
{ NV4097_SET_BACK_STENCIL_OP_ZFAIL , [ ] ( u32 arg ) - > std : : string { return " Stencil: Back ZFail = " + get_stencil_op ( arg ) ; } } ,
{ NV4097_SET_BACK_STENCIL_OP_FAIL , [ ] ( u32 arg ) - > std : : string { return " Stencil: Back Fail = " + get_stencil_op ( arg ) ; } } ,
{ NV4097_SET_STENCIL_OP_ZPASS , [ ] ( u32 arg ) - > std : : string { return " Stencil: ZPass = " + get_stencil_op ( arg ) ; } } ,
{ NV4097_SET_STENCIL_OP_ZFAIL , [ ] ( u32 arg ) - > std : : string { return " Stencil: ZFail = " + get_stencil_op ( arg ) ; } } ,
{ NV4097_SET_STENCIL_OP_FAIL , [ ] ( u32 arg ) - > std : : string { return " Stencil: Fail = " + get_stencil_op ( arg ) ; } } ,
{ NV4097_SET_STENCIL_FUNC_MASK , [ ] ( u32 arg ) - > std : : string { return " Stencil: Func mask = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_STENCIL_MASK , [ ] ( u32 arg ) - > std : : string { return " Stencil: Mask = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_STENCIL_FUNC_REF , [ ] ( u32 arg ) - > std : : string { return " Stencil: Ref = " + std : : to_string ( arg ) ; } } ,
{ NV4097_INVALIDATE_VERTEX_CACHE_FILE , [ ] ( u32 ) - > std : : string { return " (invalidate vertex cache file) " ; } } ,
{ NV4097_INVALIDATE_VERTEX_FILE , [ ] ( u32 ) - > std : : string { return " (invalidate vertex file) " ; } } ,
2015-11-30 20:16:01 +01:00
{ NV4097_SET_VERTEX_ATTRIB_INPUT_MASK , vertex_input_mask } ,
{ NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK , vertex_output_mask } ,
{ NV4097_SET_SHADER_CONTROL , shader_control } ,
2016-01-03 02:12:41 +01:00
{ NV4097_SET_ANTI_ALIASING_CONTROL , anti_aliasing_control } ,
2016-01-27 00:05:41 +01:00
{ NV4097_SET_SHADER_WINDOW , shader_window } ,
2015-12-02 10:23:25 +01:00
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT , [ ] ( u32 arg ) - > std : : string { return " Vertex array 0: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 1 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 1: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 2 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 2: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 3 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 3: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 4 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 4: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 5 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 5: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 6 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 6: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 7 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 7: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 8 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 8: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 9 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 9: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 10 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 10: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 11 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 11: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 12 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 12: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 13 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 13: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 14 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 14: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + 15 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 15: " + unpack_vertex_format ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET , [ ] ( u32 arg ) - > std : : string { return " Vertex array 0: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 1 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 1: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 2 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 2: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 3 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 3: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 4 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 4: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 5 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 5: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 6 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 6: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 7 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 7: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 8 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 8: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 9 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 9: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 10 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 10: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 11 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 11: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 12 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 12: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 13 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 13: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 14 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 14: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_VERTEX_DATA_ARRAY_OFFSET + 15 , [ ] ( u32 arg ) - > std : : string { return " Vertex array 15: Offset = " + std : : to_string ( arg ) ; } } ,
{ NV4097_SET_INDEX_ARRAY_ADDRESS , [ ] ( u32 arg ) - > std : : string { return " Index array: Address = " + ptr_to_string ( arg ) ; } } ,
{ NV4097_SET_INDEX_ARRAY_DMA , [ ] ( u32 arg ) - > std : : string { return " Index array: DMA mode = " + dma_mode ( arg & 0xF ) + " type = " + index_type ( arg > > 4 ) ; } } ,
2015-11-10 00:43:36 +01:00
OPCODE_RANGE_32 ( NV4097_SET_TRANSFORM_CONSTANT , 1 , 0 , transform_constant )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_OFFSET , 8 , 0 , texture_offset )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_FORMAT , 8 , 0 , texture_format )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_IMAGE_RECT , 8 , 0 , texture_size )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_ADDRESS , 8 , 0 , texture_address )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_CONTROL0 , 8 , 0 , texture_control0 )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_CONTROL1 , 8 , 0 , texture_control1 )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_CONTROL3 , 1 , 0 , texture_control3 )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_BORDER_COLOR , 8 , 0 , texture_border_color )
OPCODE_RANGE_16 ( NV4097_SET_TEXTURE_FILTER , 8 , 0 , texture_filter )
} ;
}
2015-12-02 10:23:25 +01:00
std : : function < std : : string ( u32 ) > rsx : : get_pretty_printing_function ( u32 id )
2015-11-10 00:43:36 +01:00
{
auto found = printing_functions . find ( id ) ;
if ( found ! = printing_functions . end ( ) )
{
return found - > second ;
}
return [ = ] ( u32 v )
{
2015-12-02 10:23:25 +01:00
return fmt : : format ( " %s : 0x%08x " , rsx : : get_method_name ( id ) , v ) ;
2015-11-10 00:43:36 +01:00
} ;
2015-12-02 10:23:25 +01:00
}