From 6b7ce373746fbbd2e0b86839c7f05ca012cd2b9e Mon Sep 17 00:00:00 2001 From: vlj Date: Sun, 18 Sep 2016 00:43:20 +0200 Subject: [PATCH 1/3] rsx: vertex attribute size is 1 again for CMP, let backend handles this formats properties. --- rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp | 15 ++++++--------- rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp | 9 +-------- rpcs3/Emu/RSX/rsx_vertex_data.h | 2 -- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp index 09043b5b62..27aa74e184 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12Buffer.cpp @@ -11,8 +11,9 @@ namespace { - UINT get_component_mapping_from_vector_size(u8 size) + UINT get_component_mapping_from_vector_size(rsx::vertex_base_type type, u8 size) { + if (type == rsx::vertex_base_type::cmp) return D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; switch (size) { case 1: @@ -51,9 +52,8 @@ namespace { u32 element_size = rsx::get_vertex_type_size_on_host(info.type(), info.size()); D3D12_SHADER_RESOURCE_VIEW_DESC vertex_buffer_view = { - get_vertex_attribute_format(info.type(), info.size()), - D3D12_SRV_DIMENSION_BUFFER, - get_component_mapping_from_vector_size(info.size())}; + get_vertex_attribute_format(info.type(), info.size()), D3D12_SRV_DIMENSION_BUFFER, + get_component_mapping_from_vector_size(info.type(), info.size())}; vertex_buffer_view.Buffer.FirstElement = offset_in_vertex_buffers_buffer / element_size; vertex_buffer_view.Buffer.NumElements = buffer_size / element_size; return vertex_buffer_view; @@ -62,11 +62,8 @@ namespace D3D12_SHADER_RESOURCE_VIEW_DESC get_vertex_attribute_srv(const rsx::vertex_base_type type, u8 size, UINT64 offset_in_vertex_buffers_buffer, UINT buffer_size) { u32 element_size = rsx::get_vertex_type_size_on_host(type, size); - D3D12_SHADER_RESOURCE_VIEW_DESC vertex_buffer_view = { - get_vertex_attribute_format(type, size), - D3D12_SRV_DIMENSION_BUFFER, - get_component_mapping_from_vector_size(size) - }; + D3D12_SHADER_RESOURCE_VIEW_DESC vertex_buffer_view = {get_vertex_attribute_format(type, size), + D3D12_SRV_DIMENSION_BUFFER, get_component_mapping_from_vector_size(type, size)}; vertex_buffer_view.Buffer.FirstElement = offset_in_vertex_buffers_buffer / element_size; vertex_buffer_view.Buffer.NumElements = buffer_size / element_size; return vertex_buffer_view; diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp index ff4891ecf2..b2effbe3d5 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12Formats.cpp @@ -453,14 +453,7 @@ DXGI_FORMAT get_vertex_attribute_format(rsx::vertex_base_type type, u8 size) } case rsx::vertex_base_type::cmp: { - switch (size) - { - case 1: - case 2: - case 3: fmt::throw_exception("Unsupported CMP vertex format with size > 1" HERE); - case 4: return DXGI_FORMAT_R16G16B16A16_SNORM; - } - break; + return DXGI_FORMAT_R16G16B16A16_SNORM; } case rsx::vertex_base_type::ub256: { diff --git a/rpcs3/Emu/RSX/rsx_vertex_data.h b/rpcs3/Emu/RSX/rsx_vertex_data.h index 988fe38051..7f6a89345d 100644 --- a/rpcs3/Emu/RSX/rsx_vertex_data.h +++ b/rpcs3/Emu/RSX/rsx_vertex_data.h @@ -38,8 +38,6 @@ public: u8 size() const { - if (decode_reg().type() == rsx::vertex_base_type::cmp) - return 4; return decode_reg().size(); } From 8f5e94c1551e96c207854805ff35e2583e2d8ccb Mon Sep 17 00:00:00 2001 From: vlj Date: Sun, 18 Sep 2016 00:40:42 +0200 Subject: [PATCH 2/3] rsx: Set default attribute format to float. --- rpcs3/Emu/RSX/rsx_methods.cpp | 1 + rpcs3/Emu/RSX/rsx_vertex_data.h | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index c3cd80946f..3c62164756 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -867,6 +867,7 @@ namespace rsx for (auto& tex : fragment_textures) tex.init(); for (auto& tex : vertex_textures) tex.init(); + for (auto& vtx : vertex_arrays_info) vtx.reset(); } void rsx_state::decode(u32 reg, u32 value) diff --git a/rpcs3/Emu/RSX/rsx_vertex_data.h b/rpcs3/Emu/RSX/rsx_vertex_data.h index 7f6a89345d..8b868c9a7f 100644 --- a/rpcs3/Emu/RSX/rsx_vertex_data.h +++ b/rpcs3/Emu/RSX/rsx_vertex_data.h @@ -50,6 +50,11 @@ public: { return decode_reg().type(); } + + void reset() + { + registers[NV4097_SET_VERTEX_DATA_ARRAY_FORMAT + index] = 0x2; + } }; struct register_vertex_data_info From 9ff52cf063de695435842aaaa7cb56f5195710c9 Mon Sep 17 00:00:00 2001 From: vlj Date: Mon, 19 Sep 2016 16:17:37 +0200 Subject: [PATCH 3/3] rsx: Move printing function in a separate header/cpp --- rpcs3/Emu/RSX/GCM.cpp | 1014 -------------------------------- rpcs3/Emu/RSX/GCM.h | 620 +------------------ rpcs3/Emu/RSX/gcm_enums.cpp | 34 -- rpcs3/Emu/RSX/gcm_enums.h | 616 +++++++++++++++++++ rpcs3/Emu/RSX/gcm_printing.cpp | 1007 +++++++++++++++++++++++++++++++ rpcs3/Emu/RSX/gcm_printing.h | 11 + rpcs3/Emu/RSX/rsx_decode.h | 2 +- rpcs3/emucore.vcxproj | 9 +- rpcs3/emucore.vcxproj.filters | 9 +- 9 files changed, 1650 insertions(+), 1672 deletions(-) delete mode 100644 rpcs3/Emu/RSX/GCM.cpp create mode 100644 rpcs3/Emu/RSX/gcm_printing.cpp create mode 100644 rpcs3/Emu/RSX/gcm_printing.h diff --git a/rpcs3/Emu/RSX/GCM.cpp b/rpcs3/Emu/RSX/GCM.cpp deleted file mode 100644 index 86794a7d58..0000000000 --- a/rpcs3/Emu/RSX/GCM.cpp +++ /dev/null @@ -1,1014 +0,0 @@ -#include "stdafx.h" -#include "GCM.h" -#include "rsx_decode.h" - -namespace -{ - const std::unordered_map methods_name = - { - { 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" }, - { NV4097_SET_TRANSFORM_BRANCH_BITS, "NV4097_SET_TRANSFORM_BRANCH_BITS" }, - { 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" }, - }; -} - -std::string rsx::get_method_name(const u32 id) -{ - auto found = methods_name.find(id); - if (found != methods_name.end()) - { - return "CELL_GCM_"s + found->second; - } - - return fmt::format("Unknown/illegal method [0x%08x]", id); -} - -// Various parameter pretty printing function -namespace -{ - std::string ptr_to_string(u32 ptr) - { - return fmt::format("0x%08x", ptr); - } - - std::string dma_mode(u32 arg) - { - 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"; - } - - std::string texture_dimension(u8 dim) - { - switch (rsx::to_texture_dimension(dim)) - { - case rsx::texture_dimension::dimension1d: return "1D"; - case rsx::texture_dimension::dimension2d: return "2D"; - case rsx::texture_dimension::dimension3d: return "3D"; - } - return ""; - } - - std::string get_vertex_attribute_format(u8 type) - { - switch (rsx::to_vertex_base_type(type)) - { - case rsx::vertex_base_type::s1: return "Signed short normalized"; - case rsx::vertex_base_type::f: return "Float"; - case rsx::vertex_base_type::sf: return "Half float"; - case rsx::vertex_base_type::ub: return "Unsigned byte normalized"; - case rsx::vertex_base_type::s32k: return "Signed short unormalized"; - case rsx::vertex_base_type::cmp: return "CMP"; - case rsx::vertex_base_type::ub256: return "Unsigned byte unormalized"; - } - } - - std::string unpack_vertex_format(u32 arg) - { - 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); - } - - std::string transform_constant(size_t index, u32 arg) - { - return "Transform constant " + std::to_string(index) + ": " + std::to_string(arg) + "/" + std::to_string((float&)arg); - } - - std::string texture_offset(size_t index, u32 arg) - { - return "Texture " + std::to_string(index) + ": Offset @" + ptr_to_string(arg); - } - - std::string texture_size(size_t index, u32 arg) - { - return "Texture " + std::to_string(index) + ": width = " + std::to_string(arg & 0xffff) + " height = " + std::to_string(arg >> 16); - } - - static std::string get_texture_format_name(u32 format) - { - 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"; - } - - std::string texture_format(size_t index, u32 arg) - { - 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); - } - - std::string get_texture_wrap_mode(u8 wrap) - { - switch (rsx::to_texture_wrap_mode(wrap)) - { - case rsx::texture_wrap_mode::wrap: return "WRAP"; - case rsx::texture_wrap_mode::mirror: return "MIRROR"; - case rsx::texture_wrap_mode::clamp_to_edge: return "CLAMP_TO_EDGE"; - case rsx::texture_wrap_mode::border: return "BORDER"; - case rsx::texture_wrap_mode::clamp: return "CLAMP"; - case rsx::texture_wrap_mode::mirror_once_clamp_to_edge: return "MIRROR_ONCE_CLAMP_TO_EDGE"; - case rsx::texture_wrap_mode::mirror_once_border: return "MIRROR_ONCE_BORDER"; - case rsx::texture_wrap_mode::mirror_once_clamp: return "MIRROR_ONCE_CLAMP"; - } - return "Error"; - } - - std::string get_zfunc_name(u8 op) - { - 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"; - } - - std::string texture_address(size_t index, u32 arg) - { - 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); - } - - std::string get_texture_max_aniso_name(u8 aniso) - { - switch (rsx::to_texture_max_anisotropy(aniso)) - { - case rsx::texture_max_anisotropy::x1: return "1"; - case rsx::texture_max_anisotropy::x2: return "2"; - case rsx::texture_max_anisotropy::x4: return "4"; - case rsx::texture_max_anisotropy::x6: return "6"; - case rsx::texture_max_anisotropy::x8: return "8"; - case rsx::texture_max_anisotropy::x10: return "10"; - case rsx::texture_max_anisotropy::x12: return "12"; - case rsx::texture_max_anisotropy::x16: return "16"; - } - return "Error"; - } - - std::string texture_control0(size_t index, u32 arg) - { - 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; - } - - 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 - { - return "Texture " + std::to_string(index) + - " 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); - } - - std::string texture_control3(size_t index, u32 arg) - { - return "Texture " + std::to_string(index) + - " depth = " + std::to_string(arg >> 20) + - " pitch = " + std::to_string(arg & 0xFFFFF); - } - - std::string texture_border_color(size_t index, u32 arg) - { - return "Texture " + std::to_string(index) + - " border color = " + std::to_string(arg); - } - - std::string texture_filter(size_t index, u32 arg) - { - return "Texture " + std::to_string(index) + - " 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); - } - - namespace - { - template - auto register_pretty_printing(u32 arg) - { - typename rsx::registers_decoder::decoded_type decoded_value(arg); - return rsx::registers_decoder::dump(std::move(arg)); - } - - template - auto create_printing_table(const std::integer_sequence &) - { - return std::unordered_map{ {opcode, register_pretty_printing}... }; - } - } - - const std::unordered_map printing_functions = create_printing_table(rsx::opcode_list); -/* { - { 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 " : ""); } }, - };*/ -} - -std::function rsx::get_pretty_printing_function(u32 id) -{ - auto found = printing_functions.find(id); - if (found != printing_functions.end()) - { - return found->second; - } - - return [=](u32 v) - { - return fmt::format("%s : 0x%08x", rsx::get_method_name(id), v); - }; -} diff --git a/rpcs3/Emu/RSX/GCM.h b/rpcs3/Emu/RSX/GCM.h index 1321e8cf4a..d2ab97634b 100644 --- a/rpcs3/Emu/RSX/GCM.h +++ b/rpcs3/Emu/RSX/GCM.h @@ -2,315 +2,8 @@ #include "Emu/Memory/vm.h" #include "gcm_enums.h" +#include "gcm_printing.h" -enum -{ - CELL_GCM_DISPLAY_HSYNC = 1, - CELL_GCM_DISPLAY_VSYNC = 2, - CELL_GCM_DISPLAY_HSYNC_WITH_NOISE = 3, -}; - -enum -{ - CELL_GCM_DEBUG_LEVEL0 = 1, - CELL_GCM_DEBUG_LEVEL1 = 2, - CELL_GCM_DEBUG_LEVEL2 = 3, -}; - -enum -{ - CELL_GCM_DISPLAY_FREQUENCY_59_94HZ = 1, - CELL_GCM_DISPLAY_FREQUENCY_SCANOUT = 2, - CELL_GCM_DISPLAY_FREQUENCY_DISABLE = 3, -}; - -enum -{ - CELL_GCM_DISPLAY_FLIP_STATUS_ = 0, - CELL_GCM_DISPLAY_FLIP_STATUS_WAITING = 1, -}; - -enum -{ - CELL_GCM_LOCATION_LOCAL = 0, - CELL_GCM_LOCATION_MAIN = 1, -}; - -enum -{ - CELL_GCM_FREQUENCY_MODULO = 1, - CELL_GCM_FREQUENCY_DIVIDE = 0, -}; - -enum CellRescTableElement -{ - CELL_RESC_ELEMENT_HALF = 0, - CELL_RESC_ELEMENT_FLOAT = 1, -}; - -enum -{ - CELL_GCM_SYSTEM_MODE_IOMAP_512MB = 1, -}; - -// GCM Texture -enum -{ - // Color Flag - CELL_GCM_TEXTURE_B8 = 0x81, - CELL_GCM_TEXTURE_A1R5G5B5 = 0x82, - CELL_GCM_TEXTURE_A4R4G4B4 = 0x83, - CELL_GCM_TEXTURE_R5G6B5 = 0x84, - CELL_GCM_TEXTURE_A8R8G8B8 = 0x85, - CELL_GCM_TEXTURE_COMPRESSED_DXT1 = 0x86, - CELL_GCM_TEXTURE_COMPRESSED_DXT23 = 0x87, - CELL_GCM_TEXTURE_COMPRESSED_DXT45 = 0x88, - CELL_GCM_TEXTURE_G8B8 = 0x8B, - CELL_GCM_TEXTURE_R6G5B5 = 0x8F, - CELL_GCM_TEXTURE_DEPTH24_D8 = 0x90, - CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT = 0x91, - CELL_GCM_TEXTURE_DEPTH16 = 0x92, - CELL_GCM_TEXTURE_DEPTH16_FLOAT = 0x93, - CELL_GCM_TEXTURE_X16 = 0x94, - CELL_GCM_TEXTURE_Y16_X16 = 0x95, - CELL_GCM_TEXTURE_R5G5B5A1 = 0x97, - CELL_GCM_TEXTURE_COMPRESSED_HILO8 = 0x98, - CELL_GCM_TEXTURE_COMPRESSED_HILO_S8 = 0x99, - CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT = 0x9A, - CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT = 0x9B, - CELL_GCM_TEXTURE_X32_FLOAT = 0x9C, - CELL_GCM_TEXTURE_D1R5G5B5 = 0x9D, - CELL_GCM_TEXTURE_D8R8G8B8 = 0x9E, - CELL_GCM_TEXTURE_Y16_X16_FLOAT = 0x9F, - CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8 = 0xAD, - CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8 = 0xAE, - - // Swizzle Flag - CELL_GCM_TEXTURE_SZ = 0x00, - CELL_GCM_TEXTURE_LN = 0x20, - - // Normalization Flag - CELL_GCM_TEXTURE_NR = 0x00, - CELL_GCM_TEXTURE_UN = 0x40, -}; - -// GCM Surface -enum -{ - // Surface type - CELL_GCM_SURFACE_PITCH = 1, - CELL_GCM_SURFACE_SWIZZLE = 2, -}; - -enum -{ - CELL_GCM_TEXTURE_UNSIGNED_REMAP_NORMAL = 0, - CELL_GCM_TEXTURE_UNSIGNED_REMAP_BIASED = 1, - - CELL_GCM_TEXTURE_SIGNED_REMAP_NORMAL = 0x0, - CELL_GCM_TEXTURE_SIGNED_REMAP_CLAMPED = 0x3, - - CELL_GCM_TEXTURE_ZFUNC_NEVER = 0, - CELL_GCM_TEXTURE_ZFUNC_LESS = 1, - CELL_GCM_TEXTURE_ZFUNC_EQUAL = 2, - CELL_GCM_TEXTURE_ZFUNC_LEQUAL = 3, - CELL_GCM_TEXTURE_ZFUNC_GREATER = 4, - CELL_GCM_TEXTURE_ZFUNC_NOTEQUAL = 5, - CELL_GCM_TEXTURE_ZFUNC_GEQUAL = 6, - CELL_GCM_TEXTURE_ZFUNC_ALWAYS = 7, - - CELL_GCM_TEXTURE_GAMMA_R = 1 << 0, - CELL_GCM_TEXTURE_GAMMA_G = 1 << 1, - CELL_GCM_TEXTURE_GAMMA_B = 1 << 2, - CELL_GCM_TEXTURE_GAMMA_A = 1 << 3, - - CELL_GCM_TEXTURE_ANISO_SPREAD_0_50_TEXEL = 0x0, - CELL_GCM_TEXTURE_ANISO_SPREAD_1_00_TEXEL = 0x1, - CELL_GCM_TEXTURE_ANISO_SPREAD_1_125_TEXEL = 0x2, - CELL_GCM_TEXTURE_ANISO_SPREAD_1_25_TEXEL = 0x3, - CELL_GCM_TEXTURE_ANISO_SPREAD_1_375_TEXEL = 0x4, - CELL_GCM_TEXTURE_ANISO_SPREAD_1_50_TEXEL = 0x5, - CELL_GCM_TEXTURE_ANISO_SPREAD_1_75_TEXEL = 0x6, - CELL_GCM_TEXTURE_ANISO_SPREAD_2_00_TEXEL = 0x7, - - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_U = 1 << 0, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_V = 1 << 1, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_P = 1 << 2, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_Q = 1 << 3, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_U = 1 << 4, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_V = 1 << 5, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_P = 1 << 6, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_Q = 1 << 7, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_U = 1 << 8, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_V = 1 << 9, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_P = 1 << 10, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_Q = 1 << 11, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_U = 1 << 12, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_V = 1 << 13, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_P = 1 << 14, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_Q = 1 << 15, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_U = 1 << 16, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_V = 1 << 17, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_P = 1 << 18, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_Q = 1 << 19, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_U = 1 << 20, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_V = 1 << 21, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_P = 1 << 22, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_Q = 1 << 23, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_U = 1 << 24, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_V = 1 << 25, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_P = 1 << 26, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_Q = 1 << 27, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_U = 1 << 28, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_V = 1 << 29, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_P = 1 << 30, - CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_Q = 1 << 31, - - CELL_GCM_COLOR_MASK_B = 1 << 0, - CELL_GCM_COLOR_MASK_G = 1 << 8, - CELL_GCM_COLOR_MASK_R = 1 << 16, - CELL_GCM_COLOR_MASK_A = 1 << 24, - - CELL_GCM_COLOR_MASK_MRT1_A = 1 << 4, - CELL_GCM_COLOR_MASK_MRT1_R = 1 << 5, - CELL_GCM_COLOR_MASK_MRT1_G = 1 << 6, - CELL_GCM_COLOR_MASK_MRT1_B = 1 << 7, - CELL_GCM_COLOR_MASK_MRT2_A = 1 << 8, - CELL_GCM_COLOR_MASK_MRT2_R = 1 << 9, - CELL_GCM_COLOR_MASK_MRT2_G = 1 << 10, - CELL_GCM_COLOR_MASK_MRT2_B = 1 << 11, - CELL_GCM_COLOR_MASK_MRT3_A = 1 << 12, - CELL_GCM_COLOR_MASK_MRT3_R = 1 << 13, - CELL_GCM_COLOR_MASK_MRT3_G = 1 << 14, - CELL_GCM_COLOR_MASK_MRT3_B = 1 << 15, - - CELL_GCM_NEVER = 0x0200, - CELL_GCM_LESS = 0x0201, - CELL_GCM_EQUAL = 0x0202, - CELL_GCM_LEQUAL = 0x0203, - CELL_GCM_GREATER = 0x0204, - CELL_GCM_NOTEQUAL = 0x0205, - CELL_GCM_GEQUAL = 0x0206, - CELL_GCM_ALWAYS = 0x0207, - - CELL_GCM_ZERO = 0, - CELL_GCM_ONE = 1, - - CELL_GCM_FRONT = 0x0404, - CELL_GCM_BACK = 0x0405, - CELL_GCM_FRONT_AND_BACK = 0x0408, - - CELL_GCM_CW = 0x0900, - CELL_GCM_CCW = 0x0901, - - CELL_GCM_TRANSFER_LOCAL_TO_LOCAL = 0, - CELL_GCM_TRANSFER_MAIN_TO_LOCAL = 1, - CELL_GCM_TRANSFER_LOCAL_TO_MAIN = 2, - CELL_GCM_TRANSFER_MAIN_TO_MAIN = 3, - - CELL_GCM_INVALIDATE_TEXTURE = 1, - CELL_GCM_INVALIDATE_VERTEX_TEXTURE = 2, - - CELL_GCM_COMPMODE_DISABLED = 0, - CELL_GCM_COMPMODE_C32_2X1 = 7, - CELL_GCM_COMPMODE_C32_2X2 = 8, - CELL_GCM_COMPMODE_Z32_SEPSTENCIL = 9, - CELL_GCM_COMPMODE_Z32_SEPSTENCIL_REG = 10, - CELL_GCM_COMPMODE_Z32_SEPSTENCIL_REGULAR = 10, - CELL_GCM_COMPMODE_Z32_SEPSTENCIL_DIAGONAL = 11, - CELL_GCM_COMPMODE_Z32_SEPSTENCIL_ROTATED = 12, - - CELL_GCM_ZCULL_Z16 = 1, - CELL_GCM_ZCULL_Z24S8 = 2, - CELL_GCM_ZCULL_MSB = 0, - CELL_GCM_ZCULL_LONES = 1, - CELL_GCM_ZCULL_LESS = 0, - CELL_GCM_ZCULL_GREATER = 1, - - CELL_GCM_SCULL_SFUNC_NEVER = 0, - CELL_GCM_SCULL_SFUNC_LESS = 1, - CELL_GCM_SCULL_SFUNC_EQUAL = 2, - CELL_GCM_SCULL_SFUNC_LEQUAL = 3, - CELL_GCM_SCULL_SFUNC_GREATER = 4, - CELL_GCM_SCULL_SFUNC_NOTEQUAL = 5, - CELL_GCM_SCULL_SFUNC_GEQUAL = 6, - CELL_GCM_SCULL_SFUNC_ALWAYS = 7, - - CELL_GCM_ATTRIB_OUTPUT_FRONTDIFFUSE = 0, - CELL_GCM_ATTRIB_OUTPUT_FRONTSPECULAR = 1, - CELL_GCM_ATTRIB_OUTPUT_BACKDIFFUSE = 2, - CELL_GCM_ATTRIB_OUTPUT_BACKSPECULAR = 3, - CELL_GCM_ATTRIB_OUTPUT_FOG = 4, - CELL_GCM_ATTRIB_OUTPUT_POINTSIZE = 5, - CELL_GCM_ATTRIB_OUTPUT_UC0 = 6, - CELL_GCM_ATTRIB_OUTPUT_UC1 = 7, - CELL_GCM_ATTRIB_OUTPUT_UC2 = 8, - CELL_GCM_ATTRIB_OUTPUT_UC3 = 9, - CELL_GCM_ATTRIB_OUTPUT_UC4 = 10, - CELL_GCM_ATTRIB_OUTPUT_UC5 = 11, - CELL_GCM_ATTRIB_OUTPUT_TEX8 = 12, - CELL_GCM_ATTRIB_OUTPUT_TEX9 = 13, - CELL_GCM_ATTRIB_OUTPUT_TEX0 = 14, - CELL_GCM_ATTRIB_OUTPUT_TEX1 = 15, - CELL_GCM_ATTRIB_OUTPUT_TEX2 = 16, - CELL_GCM_ATTRIB_OUTPUT_TEX3 = 17, - CELL_GCM_ATTRIB_OUTPUT_TEX4 = 18, - CELL_GCM_ATTRIB_OUTPUT_TEX5 = 19, - CELL_GCM_ATTRIB_OUTPUT_TEX6 = 20, - CELL_GCM_ATTRIB_OUTPUT_TEX7 = 21, - - CELL_GCM_ATTRIB_OUTPUT_MASK_FRONTDIFFUSE = 1 << CELL_GCM_ATTRIB_OUTPUT_FRONTDIFFUSE, - CELL_GCM_ATTRIB_OUTPUT_MASK_FRONTSPECULAR = 1 << CELL_GCM_ATTRIB_OUTPUT_FRONTSPECULAR, - CELL_GCM_ATTRIB_OUTPUT_MASK_BACKDIFFUSE = 1 << CELL_GCM_ATTRIB_OUTPUT_BACKDIFFUSE, - CELL_GCM_ATTRIB_OUTPUT_MASK_BACKSPECULAR = 1 << CELL_GCM_ATTRIB_OUTPUT_BACKSPECULAR, - CELL_GCM_ATTRIB_OUTPUT_MASK_FOG = 1 << CELL_GCM_ATTRIB_OUTPUT_FOG, - CELL_GCM_ATTRIB_OUTPUT_MASK_POINTSIZE = 1 << CELL_GCM_ATTRIB_OUTPUT_POINTSIZE, - CELL_GCM_ATTRIB_OUTPUT_MASK_UC0 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC0, - CELL_GCM_ATTRIB_OUTPUT_MASK_UC1 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC1, - CELL_GCM_ATTRIB_OUTPUT_MASK_UC2 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC2, - CELL_GCM_ATTRIB_OUTPUT_MASK_UC3 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC3, - CELL_GCM_ATTRIB_OUTPUT_MASK_UC4 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC4, - CELL_GCM_ATTRIB_OUTPUT_MASK_UC5 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC5, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX8 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX8, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX9 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX9, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX0 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX0, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX1 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX1, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX2 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX2, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX3 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX3, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX4 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX4, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX5 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX5, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX6 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX6, - CELL_GCM_ATTRIB_OUTPUT_MASK_TEX7 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX7, - - CELL_GCM_TRUE = 1, - CELL_GCM_FALSE = 0, -}; - -enum -{ - CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT = 0xe, ///< shader program exports the depth of the shaded fragment - CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS = 0x40 ///< shader program exports 32 bits registers values (instead of 16 bits ones) -}; - -// GCM Reports -enum -{ - CELL_GCM_ZPASS_PIXEL_CNT = 1, - CELL_GCM_ZCULL_STATS = 2, - CELL_GCM_ZCULL_STATS1 = 3, - CELL_GCM_ZCULL_STATS2 = 4, - CELL_GCM_ZCULL_STATS3 = 5, -}; - -// GPU Class Handles -enum -{ - CELL_GCM_CONTEXT_DMA_MEMORY_FRAME_BUFFER = 0xFEED0000, // Local memory - CELL_GCM_CONTEXT_DMA_MEMORY_HOST_BUFFER = 0xFEED0001, // Main memory - CELL_GCM_CONTEXT_DMA_TO_MEMORY_GET_REPORT = 0x66626660, - CELL_GCM_CONTEXT_DMA_REPORT_LOCATION_MAIN = 0xBAD68000, - CELL_GCM_CONTEXT_DMA_NOTIFY_MAIN_0 = 0x6660420F, -}; struct CellGcmControl { @@ -466,313 +159,6 @@ struct GcmTileInfo } }; -enum -{ - // NV40_CHANNEL_DMA (NV406E) - NV406E_SET_REFERENCE = 0x00000050 >> 2, - NV406E_SET_CONTEXT_DMA_SEMAPHORE = 0x00000060 >> 2, - NV406E_SEMAPHORE_OFFSET = 0x00000064 >> 2, - NV406E_SEMAPHORE_ACQUIRE = 0x00000068 >> 2, - NV406E_SEMAPHORE_RELEASE = 0x0000006c >> 2, - - // NV40_CURIE_PRIMITIVE (NV4097) - NV4097_SET_OBJECT = 0x00000000 >> 2, - NV4097_NO_OPERATION = 0x00000100 >> 2, - NV4097_NOTIFY = 0x00000104 >> 2, - NV4097_WAIT_FOR_IDLE = 0x00000110 >> 2, - NV4097_PM_TRIGGER = 0x00000140 >> 2, - NV4097_SET_CONTEXT_DMA_NOTIFIES = 0x00000180 >> 2, - NV4097_SET_CONTEXT_DMA_A = 0x00000184 >> 2, - NV4097_SET_CONTEXT_DMA_B = 0x00000188 >> 2, - NV4097_SET_CONTEXT_DMA_COLOR_B = 0x0000018c >> 2, - NV4097_SET_CONTEXT_DMA_STATE = 0x00000190 >> 2, - NV4097_SET_CONTEXT_DMA_COLOR_A = 0x00000194 >> 2, - NV4097_SET_CONTEXT_DMA_ZETA = 0x00000198 >> 2, - NV4097_SET_CONTEXT_DMA_VERTEX_A = 0x0000019c >> 2, - NV4097_SET_CONTEXT_DMA_VERTEX_B = 0x000001a0 >> 2, - NV4097_SET_CONTEXT_DMA_SEMAPHORE = 0x000001a4 >> 2, - NV4097_SET_CONTEXT_DMA_REPORT = 0x000001a8 >> 2, - NV4097_SET_CONTEXT_DMA_CLIP_ID = 0x000001ac >> 2, - NV4097_SET_CONTEXT_DMA_CULL_DATA = 0x000001b0 >> 2, - NV4097_SET_CONTEXT_DMA_COLOR_C = 0x000001b4 >> 2, - NV4097_SET_CONTEXT_DMA_COLOR_D = 0x000001b8 >> 2, - NV4097_SET_SURFACE_CLIP_HORIZONTAL = 0x00000200 >> 2, - NV4097_SET_SURFACE_CLIP_VERTICAL = 0x00000204 >> 2, - NV4097_SET_SURFACE_FORMAT = 0x00000208 >> 2, - NV4097_SET_SURFACE_PITCH_A = 0x0000020c >> 2, - NV4097_SET_SURFACE_COLOR_AOFFSET = 0x00000210 >> 2, - NV4097_SET_SURFACE_ZETA_OFFSET = 0x00000214 >> 2, - NV4097_SET_SURFACE_COLOR_BOFFSET = 0x00000218 >> 2, - NV4097_SET_SURFACE_PITCH_B = 0x0000021c >> 2, - NV4097_SET_SURFACE_COLOR_TARGET = 0x00000220 >> 2, - NV4097_SET_SURFACE_PITCH_Z = 0x0000022c >> 2, - NV4097_INVALIDATE_ZCULL = 0x00000234 >> 2, - NV4097_SET_CYLINDRICAL_WRAP = 0x00000238 >> 2, - NV4097_SET_CYLINDRICAL_WRAP1 = 0x0000023c >> 2, - NV4097_SET_SURFACE_PITCH_C = 0x00000280 >> 2, - NV4097_SET_SURFACE_PITCH_D = 0x00000284 >> 2, - NV4097_SET_SURFACE_COLOR_COFFSET = 0x00000288 >> 2, - NV4097_SET_SURFACE_COLOR_DOFFSET = 0x0000028c >> 2, - NV4097_SET_WINDOW_OFFSET = 0x000002b8 >> 2, - NV4097_SET_WINDOW_CLIP_TYPE = 0x000002bc >> 2, - NV4097_SET_WINDOW_CLIP_HORIZONTAL = 0x000002c0 >> 2, - NV4097_SET_WINDOW_CLIP_VERTICAL = 0x000002c4 >> 2, - NV4097_SET_DITHER_ENABLE = 0x00000300 >> 2, - NV4097_SET_ALPHA_TEST_ENABLE = 0x00000304 >> 2, - NV4097_SET_ALPHA_FUNC = 0x00000308 >> 2, - NV4097_SET_ALPHA_REF = 0x0000030c >> 2, - NV4097_SET_BLEND_ENABLE = 0x00000310 >> 2, - NV4097_SET_BLEND_FUNC_SFACTOR = 0x00000314 >> 2, - NV4097_SET_BLEND_FUNC_DFACTOR = 0x00000318 >> 2, - NV4097_SET_BLEND_COLOR = 0x0000031c >> 2, - NV4097_SET_BLEND_EQUATION = 0x00000320 >> 2, - NV4097_SET_COLOR_MASK = 0x00000324 >> 2, - NV4097_SET_STENCIL_TEST_ENABLE = 0x00000328 >> 2, - NV4097_SET_STENCIL_MASK = 0x0000032c >> 2, - NV4097_SET_STENCIL_FUNC = 0x00000330 >> 2, - NV4097_SET_STENCIL_FUNC_REF = 0x00000334 >> 2, - NV4097_SET_STENCIL_FUNC_MASK = 0x00000338 >> 2, - NV4097_SET_STENCIL_OP_FAIL = 0x0000033c >> 2, - NV4097_SET_STENCIL_OP_ZFAIL = 0x00000340 >> 2, - NV4097_SET_STENCIL_OP_ZPASS = 0x00000344 >> 2, - NV4097_SET_TWO_SIDED_STENCIL_TEST_ENABLE = 0x00000348 >> 2, - NV4097_SET_BACK_STENCIL_MASK = 0x0000034c >> 2, - NV4097_SET_BACK_STENCIL_FUNC = 0x00000350 >> 2, - NV4097_SET_BACK_STENCIL_FUNC_REF = 0x00000354 >> 2, - NV4097_SET_BACK_STENCIL_FUNC_MASK = 0x00000358 >> 2, - NV4097_SET_BACK_STENCIL_OP_FAIL = 0x0000035c >> 2, - NV4097_SET_BACK_STENCIL_OP_ZFAIL = 0x00000360 >> 2, - NV4097_SET_BACK_STENCIL_OP_ZPASS = 0x00000364 >> 2, - NV4097_SET_SHADE_MODE = 0x00000368 >> 2, - NV4097_SET_BLEND_ENABLE_MRT = 0x0000036c >> 2, - NV4097_SET_COLOR_MASK_MRT = 0x00000370 >> 2, - NV4097_SET_LOGIC_OP_ENABLE = 0x00000374 >> 2, - NV4097_SET_LOGIC_OP = 0x00000378 >> 2, - NV4097_SET_BLEND_COLOR2 = 0x0000037c >> 2, - NV4097_SET_DEPTH_BOUNDS_TEST_ENABLE = 0x00000380 >> 2, - NV4097_SET_DEPTH_BOUNDS_MIN = 0x00000384 >> 2, - NV4097_SET_DEPTH_BOUNDS_MAX = 0x00000388 >> 2, - NV4097_SET_CLIP_MIN = 0x00000394 >> 2, - NV4097_SET_CLIP_MAX = 0x00000398 >> 2, - NV4097_SET_CONTROL0 = 0x000003b0 >> 2, - NV4097_SET_LINE_WIDTH = 0x000003b8 >> 2, - NV4097_SET_LINE_SMOOTH_ENABLE = 0x000003bc >> 2, - NV4097_SET_ANISO_SPREAD = 0x000003c0 >> 2, - NV4097_SET_SCISSOR_HORIZONTAL = 0x000008c0 >> 2, - NV4097_SET_SCISSOR_VERTICAL = 0x000008c4 >> 2, - NV4097_SET_FOG_MODE = 0x000008cc >> 2, - NV4097_SET_FOG_PARAMS = 0x000008d0 >> 2, - NV4097_SET_SHADER_PROGRAM = 0x000008e4 >> 2, - NV4097_SET_VERTEX_TEXTURE_OFFSET = 0x00000900 >> 2, - NV4097_SET_VERTEX_TEXTURE_FORMAT = 0x00000904 >> 2, - NV4097_SET_VERTEX_TEXTURE_ADDRESS = 0x00000908 >> 2, - NV4097_SET_VERTEX_TEXTURE_CONTROL0 = 0x0000090c >> 2, - NV4097_SET_VERTEX_TEXTURE_CONTROL3 = 0x00000910 >> 2, - NV4097_SET_VERTEX_TEXTURE_FILTER = 0x00000914 >> 2, - NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT = 0x00000918 >> 2, - NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR = 0x0000091c >> 2, - NV4097_SET_VIEWPORT_HORIZONTAL = 0x00000a00 >> 2, - NV4097_SET_VIEWPORT_VERTICAL = 0x00000a04 >> 2, - NV4097_SET_POINT_CENTER_MODE = 0x00000a0c >> 2, - NV4097_ZCULL_SYNC = 0x00000a1c >> 2, - NV4097_SET_VIEWPORT_OFFSET = 0x00000a20 >> 2, - NV4097_SET_VIEWPORT_SCALE = 0x00000a30 >> 2, - NV4097_SET_POLY_OFFSET_POINT_ENABLE = 0x00000a60 >> 2, - NV4097_SET_POLY_OFFSET_LINE_ENABLE = 0x00000a64 >> 2, - NV4097_SET_POLY_OFFSET_FILL_ENABLE = 0x00000a68 >> 2, - NV4097_SET_DEPTH_FUNC = 0x00000a6c >> 2, - NV4097_SET_DEPTH_MASK = 0x00000a70 >> 2, - NV4097_SET_DEPTH_TEST_ENABLE = 0x00000a74 >> 2, - NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR = 0x00000a78 >> 2, - NV4097_SET_POLYGON_OFFSET_BIAS = 0x00000a7c >> 2, - NV4097_SET_VERTEX_DATA_SCALED4S_M = 0x00000a80 >> 2, - NV4097_SET_TEXTURE_CONTROL2 = 0x00000b00 >> 2, - NV4097_SET_TEX_COORD_CONTROL = 0x00000b40 >> 2, - NV4097_SET_TRANSFORM_PROGRAM = 0x00000b80 >> 2, - NV4097_SET_SPECULAR_ENABLE = 0x00001428 >> 2, - NV4097_SET_TWO_SIDE_LIGHT_EN = 0x0000142c >> 2, - NV4097_CLEAR_ZCULL_SURFACE = 0x00001438 >> 2, - NV4097_SET_PERFORMANCE_PARAMS = 0x00001450 >> 2, - NV4097_SET_FLAT_SHADE_OP = 0x00001454 >> 2, - NV4097_SET_EDGE_FLAG = 0x0000145c >> 2, - NV4097_SET_USER_CLIP_PLANE_CONTROL = 0x00001478 >> 2, - NV4097_SET_POLYGON_STIPPLE = 0x0000147c >> 2, - NV4097_SET_POLYGON_STIPPLE_PATTERN = 0x00001480 >> 2, - NV4097_SET_VERTEX_DATA3F_M = 0x00001500 >> 2, - NV4097_SET_VERTEX_DATA_ARRAY_OFFSET = 0x00001680 >> 2, - NV4097_INVALIDATE_VERTEX_CACHE_FILE = 0x00001710 >> 2, - NV4097_INVALIDATE_VERTEX_FILE = 0x00001714 >> 2, - NV4097_PIPE_NOP = 0x00001718 >> 2, - NV4097_SET_VERTEX_DATA_BASE_OFFSET = 0x00001738 >> 2, - NV4097_SET_VERTEX_DATA_BASE_INDEX = 0x0000173c >> 2, - NV4097_SET_VERTEX_DATA_ARRAY_FORMAT = 0x00001740 >> 2, - NV4097_CLEAR_REPORT_VALUE = 0x000017c8 >> 2, - NV4097_SET_ZPASS_PIXEL_COUNT_ENABLE = 0x000017cc >> 2, - NV4097_GET_REPORT = 0x00001800 >> 2, - NV4097_SET_ZCULL_STATS_ENABLE = 0x00001804 >> 2, - NV4097_SET_BEGIN_END = 0x00001808 >> 2, - NV4097_ARRAY_ELEMENT16 = 0x0000180c >> 2, - NV4097_ARRAY_ELEMENT32 = 0x00001810 >> 2, - NV4097_DRAW_ARRAYS = 0x00001814 >> 2, - NV4097_INLINE_ARRAY = 0x00001818 >> 2, - NV4097_SET_INDEX_ARRAY_ADDRESS = 0x0000181c >> 2, - NV4097_SET_INDEX_ARRAY_DMA = 0x00001820 >> 2, - NV4097_DRAW_INDEX_ARRAY = 0x00001824 >> 2, - NV4097_SET_FRONT_POLYGON_MODE = 0x00001828 >> 2, - NV4097_SET_BACK_POLYGON_MODE = 0x0000182c >> 2, - NV4097_SET_CULL_FACE = 0x00001830 >> 2, - NV4097_SET_FRONT_FACE = 0x00001834 >> 2, - NV4097_SET_POLY_SMOOTH_ENABLE = 0x00001838 >> 2, - NV4097_SET_CULL_FACE_ENABLE = 0x0000183c >> 2, - NV4097_SET_TEXTURE_CONTROL3 = 0x00001840 >> 2, - NV4097_SET_VERTEX_DATA2F_M = 0x00001880 >> 2, - NV4097_SET_VERTEX_DATA2S_M = 0x00001900 >> 2, - NV4097_SET_VERTEX_DATA4UB_M = 0x00001940 >> 2, - NV4097_SET_VERTEX_DATA4S_M = 0x00001980 >> 2, - NV4097_SET_TEXTURE_OFFSET = 0x00001a00 >> 2, - NV4097_SET_TEXTURE_FORMAT = 0x00001a04 >> 2, - NV4097_SET_TEXTURE_ADDRESS = 0x00001a08 >> 2, - NV4097_SET_TEXTURE_CONTROL0 = 0x00001a0c >> 2, - NV4097_SET_TEXTURE_CONTROL1 = 0x00001a10 >> 2, - NV4097_SET_TEXTURE_FILTER = 0x00001a14 >> 2, - NV4097_SET_TEXTURE_IMAGE_RECT = 0x00001a18 >> 2, - NV4097_SET_TEXTURE_BORDER_COLOR = 0x00001a1c >> 2, - NV4097_SET_VERTEX_DATA4F_M = 0x00001c00 >> 2, - NV4097_SET_COLOR_KEY_COLOR = 0x00001d00 >> 2, - NV4097_SET_SHADER_CONTROL = 0x00001d60 >> 2, - NV4097_SET_INDEXED_CONSTANT_READ_LIMITS = 0x00001d64 >> 2, - NV4097_SET_SEMAPHORE_OFFSET = 0x00001d6c >> 2, - NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE = 0x00001d70 >> 2, - NV4097_TEXTURE_READ_SEMAPHORE_RELEASE = 0x00001d74 >> 2, - NV4097_SET_ZMIN_MAX_CONTROL = 0x00001d78 >> 2, - NV4097_SET_ANTI_ALIASING_CONTROL = 0x00001d7c >> 2, - NV4097_SET_SURFACE_COMPRESSION = 0x00001d80 >> 2, - NV4097_SET_ZCULL_EN = 0x00001d84 >> 2, - NV4097_SET_SHADER_WINDOW = 0x00001d88 >> 2, - NV4097_SET_ZSTENCIL_CLEAR_VALUE = 0x00001d8c >> 2, - NV4097_SET_COLOR_CLEAR_VALUE = 0x00001d90 >> 2, - NV4097_CLEAR_SURFACE = 0x00001d94 >> 2, - NV4097_SET_CLEAR_RECT_HORIZONTAL = 0x00001d98 >> 2, - NV4097_SET_CLEAR_RECT_VERTICAL = 0x00001d9c >> 2, - NV4097_SET_CLIP_ID_TEST_ENABLE = 0x00001da4 >> 2, - NV4097_SET_RESTART_INDEX_ENABLE = 0x00001dac >> 2, - NV4097_SET_RESTART_INDEX = 0x00001db0 >> 2, - NV4097_SET_LINE_STIPPLE = 0x00001db4 >> 2, - NV4097_SET_LINE_STIPPLE_PATTERN = 0x00001db8 >> 2, - NV4097_SET_VERTEX_DATA1F_M = 0x00001e40 >> 2, - NV4097_SET_TRANSFORM_EXECUTION_MODE = 0x00001e94 >> 2, - NV4097_SET_RENDER_ENABLE = 0x00001e98 >> 2, - NV4097_SET_TRANSFORM_PROGRAM_LOAD = 0x00001e9c >> 2, - NV4097_SET_TRANSFORM_PROGRAM_START = 0x00001ea0 >> 2, - NV4097_SET_ZCULL_CONTROL0 = 0x00001ea4 >> 2, - NV4097_SET_ZCULL_CONTROL1 = 0x00001ea8 >> 2, - NV4097_SET_SCULL_CONTROL = 0x00001eac >> 2, - NV4097_SET_POINT_SIZE = 0x00001ee0 >> 2, - NV4097_SET_POINT_PARAMS_ENABLE = 0x00001ee4 >> 2, - NV4097_SET_POINT_SPRITE_CONTROL = 0x00001ee8 >> 2, - NV4097_SET_TRANSFORM_TIMEOUT = 0x00001ef8 >> 2, - NV4097_SET_TRANSFORM_CONSTANT_LOAD = 0x00001efc >> 2, - NV4097_SET_TRANSFORM_CONSTANT = 0x00001f00 >> 2, - NV4097_SET_FREQUENCY_DIVIDER_OPERATION = 0x00001fc0 >> 2, - NV4097_SET_ATTRIB_COLOR = 0x00001fc4 >> 2, - NV4097_SET_ATTRIB_TEX_COORD = 0x00001fc8 >> 2, - NV4097_SET_ATTRIB_TEX_COORD_EX = 0x00001fcc >> 2, - NV4097_SET_ATTRIB_UCLIP0 = 0x00001fd0 >> 2, - NV4097_SET_ATTRIB_UCLIP1 = 0x00001fd4 >> 2, - NV4097_INVALIDATE_L2 = 0x00001fd8 >> 2, - NV4097_SET_REDUCE_DST_COLOR = 0x00001fe0 >> 2, - NV4097_SET_NO_PARANOID_TEXTURE_FETCHES = 0x00001fe8 >> 2, - NV4097_SET_SHADER_PACKER = 0x00001fec >> 2, - NV4097_SET_VERTEX_ATTRIB_INPUT_MASK = 0x00001ff0 >> 2, - NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK = 0x00001ff4 >> 2, - NV4097_SET_TRANSFORM_BRANCH_BITS = 0x00001ff8 >> 2, - - // NV03_MEMORY_TO_MEMORY_FORMAT (NV0039) - NV0039_SET_OBJECT = 0x00002000 >> 2, - NV0039_SET_CONTEXT_DMA_NOTIFIES = 0x00002180 >> 2, - NV0039_SET_CONTEXT_DMA_BUFFER_IN = 0x00002184 >> 2, - NV0039_SET_CONTEXT_DMA_BUFFER_OUT = 0x00002188 >> 2, - NV0039_OFFSET_IN = 0x0000230C >> 2, - NV0039_OFFSET_OUT = 0x00002310 >> 2, - NV0039_PITCH_IN = 0x00002314 >> 2, - NV0039_PITCH_OUT = 0x00002318 >> 2, - NV0039_LINE_LENGTH_IN = 0x0000231C >> 2, - NV0039_LINE_COUNT = 0x00002320 >> 2, - NV0039_FORMAT = 0x00002324 >> 2, - NV0039_BUFFER_NOTIFY = 0x00002328 >> 2, - - // NV30_CONTEXT_SURFACES_2D (NV3062) - NV3062_SET_OBJECT = 0x00006000 >> 2, - NV3062_SET_CONTEXT_DMA_NOTIFIES = 0x00006180 >> 2, - NV3062_SET_CONTEXT_DMA_IMAGE_SOURCE = 0x00006184 >> 2, - NV3062_SET_CONTEXT_DMA_IMAGE_DESTIN = 0x00006188 >> 2, - NV3062_SET_COLOR_FORMAT = 0x00006300 >> 2, - NV3062_SET_PITCH = 0x00006304 >> 2, - NV3062_SET_OFFSET_SOURCE = 0x00006308 >> 2, - NV3062_SET_OFFSET_DESTIN = 0x0000630C >> 2, - - // NV30_CONTEXT_SURFACE_SWIZZLED (NV309E) - NV309E_SET_OBJECT = 0x00008000 >> 2, - NV309E_SET_CONTEXT_DMA_NOTIFIES = 0x00008180 >> 2, - NV309E_SET_CONTEXT_DMA_IMAGE = 0x00008184 >> 2, - NV309E_SET_FORMAT = 0x00008300 >> 2, - NV309E_SET_OFFSET = 0x00008304 >> 2, - - // NV30_IMAGE_FROM_CPU (NV308A) - NV308A_SET_OBJECT = 0x0000A000 >> 2, - NV308A_SET_CONTEXT_DMA_NOTIFIES = 0x0000A180 >> 2, - NV308A_SET_CONTEXT_COLOR_KEY = 0x0000A184 >> 2, - NV308A_SET_CONTEXT_CLIP_RECTANGLE = 0x0000A188 >> 2, - NV308A_SET_CONTEXT_PATTERN = 0x0000A18C >> 2, - NV308A_SET_CONTEXT_ROP = 0x0000A190 >> 2, - NV308A_SET_CONTEXT_BETA1 = 0x0000A194 >> 2, - NV308A_SET_CONTEXT_BETA4 = 0x0000A198 >> 2, - NV308A_SET_CONTEXT_SURFACE = 0x0000A19C >> 2, - NV308A_SET_COLOR_CONVERSION = 0x0000A2F8 >> 2, - NV308A_SET_OPERATION = 0x0000A2FC >> 2, - NV308A_SET_COLOR_FORMAT = 0x0000A300 >> 2, - NV308A_POINT = 0x0000A304 >> 2, - NV308A_SIZE_OUT = 0x0000A308 >> 2, - NV308A_SIZE_IN = 0x0000A30C >> 2, - NV308A_COLOR = 0x0000A400 >> 2, - - // NV30_SCALED_IMAGE_FROM_MEMORY (NV3089) - NV3089_SET_OBJECT = 0x0000C000 >> 2, - NV3089_SET_CONTEXT_DMA_NOTIFIES = 0x0000C180 >> 2, - NV3089_SET_CONTEXT_DMA_IMAGE = 0x0000C184 >> 2, - NV3089_SET_CONTEXT_PATTERN = 0x0000C188 >> 2, - NV3089_SET_CONTEXT_ROP = 0x0000C18C >> 2, - NV3089_SET_CONTEXT_BETA1 = 0x0000C190 >> 2, - NV3089_SET_CONTEXT_BETA4 = 0x0000C194 >> 2, - NV3089_SET_CONTEXT_SURFACE = 0x0000C198 >> 2, - NV3089_SET_COLOR_CONVERSION = 0x0000C2FC >> 2, - NV3089_SET_COLOR_FORMAT = 0x0000C300 >> 2, - NV3089_SET_OPERATION = 0x0000C304 >> 2, - NV3089_CLIP_POINT = 0x0000C308 >> 2, - NV3089_CLIP_SIZE = 0x0000C30C >> 2, - NV3089_IMAGE_OUT_POINT = 0x0000C310 >> 2, - NV3089_IMAGE_OUT_SIZE = 0x0000C314 >> 2, - NV3089_DS_DX = 0x0000C318 >> 2, - NV3089_DT_DY = 0x0000C31C >> 2, - NV3089_IMAGE_IN_SIZE = 0x0000C400 >> 2, - NV3089_IMAGE_IN_FORMAT = 0x0000C404 >> 2, - NV3089_IMAGE_IN_OFFSET = 0x0000C408 >> 2, - NV3089_IMAGE_IN = 0x0000C40C >> 2, - - GCM_SET_USER_COMMAND = 0x0000EB00 >> 2, - - GCM_FLIP_COMMAND = 0x0000FEAC >> 2 -}; - - -enum Method -{ - CELL_GCM_METHOD_FLAG_NON_INCREMENT = 0x40000000, - CELL_GCM_METHOD_FLAG_JUMP = 0x20000000, - CELL_GCM_METHOD_FLAG_CALL = 0x00000002, - CELL_GCM_METHOD_FLAG_RETURN = 0x00020000, -}; - namespace rsx { template @@ -795,8 +181,4 @@ namespace rsx return SIZE_32(u32); } - - std::string get_method_name(const u32 id); - - std::function get_pretty_printing_function(const u32 id); } diff --git a/rpcs3/Emu/RSX/gcm_enums.cpp b/rpcs3/Emu/RSX/gcm_enums.cpp index 8cd1aa8f5b..e1d4864e75 100644 --- a/rpcs3/Emu/RSX/gcm_enums.cpp +++ b/rpcs3/Emu/RSX/gcm_enums.cpp @@ -73,21 +73,6 @@ rsx::window_pixel_center rsx::to_window_pixel_center(u8 in) fmt::throw_exception("Unknown window pixel center 0x%x" HERE, in); } -enum -{ - CELL_GCM_NEVER = 0x0200, - CELL_GCM_LESS = 0x0201, - CELL_GCM_EQUAL = 0x0202, - CELL_GCM_LEQUAL = 0x0203, - CELL_GCM_GREATER = 0x0204, - CELL_GCM_NOTEQUAL = 0x0205, - CELL_GCM_GEQUAL = 0x0206, - CELL_GCM_ALWAYS = 0x0207, - - CELL_GCM_ZERO = 0, - CELL_GCM_ONE = 1, -}; - rsx::comparison_function rsx::to_comparison_function(u16 in) { switch (in) @@ -829,12 +814,6 @@ rsx::logic_op rsx::to_logic_op(u16 in) fmt::throw_exception("Unknown logic op 0x%x" HERE, in); } -enum -{ - CELL_GCM_CW = 0x0900, - CELL_GCM_CCW = 0x0901, -}; - rsx::front_face rsx::to_front_face(u16 in) { switch (in) @@ -846,13 +825,6 @@ rsx::front_face rsx::to_front_face(u16 in) fmt::throw_exception("Unknown front face 0x%x" HERE, in); } -enum -{ - CELL_GCM_FRONT = 0x0404, - CELL_GCM_BACK = 0x0405, - CELL_GCM_FRONT_AND_BACK = 0x0408, -}; - rsx::cull_face rsx::to_cull_face(u16 in) { switch (in) @@ -990,12 +962,6 @@ rsx::blit_engine::context_surface rsx::blit_engine::to_context_surface(u32 in) fmt::throw_exception("Unknown context surface 0x%x" HERE, in); } -enum -{ - CELL_GCM_CONTEXT_DMA_TO_MEMORY_GET_REPORT = 0x66626660, - CELL_GCM_CONTEXT_DMA_REPORT_LOCATION_MAIN = 0xBAD68000, -}; - rsx::blit_engine::context_dma rsx::blit_engine::to_context_dma(u32 in) { switch (in) diff --git a/rpcs3/Emu/RSX/gcm_enums.h b/rpcs3/Emu/RSX/gcm_enums.h index b3a4ea7d39..ea18d1d3a4 100644 --- a/rpcs3/Emu/RSX/gcm_enums.h +++ b/rpcs3/Emu/RSX/gcm_enums.h @@ -381,3 +381,619 @@ namespace rsx context_dma to_context_dma(u32 in); } } + +enum +{ + CELL_GCM_DISPLAY_HSYNC = 1, + CELL_GCM_DISPLAY_VSYNC = 2, + CELL_GCM_DISPLAY_HSYNC_WITH_NOISE = 3, +}; + +enum +{ + CELL_GCM_DEBUG_LEVEL0 = 1, + CELL_GCM_DEBUG_LEVEL1 = 2, + CELL_GCM_DEBUG_LEVEL2 = 3, +}; + +enum +{ + CELL_GCM_DISPLAY_FREQUENCY_59_94HZ = 1, + CELL_GCM_DISPLAY_FREQUENCY_SCANOUT = 2, + CELL_GCM_DISPLAY_FREQUENCY_DISABLE = 3, +}; + +enum +{ + CELL_GCM_DISPLAY_FLIP_STATUS_ = 0, + CELL_GCM_DISPLAY_FLIP_STATUS_WAITING = 1, +}; + +enum +{ + CELL_GCM_LOCATION_LOCAL = 0, + CELL_GCM_LOCATION_MAIN = 1, +}; + +enum +{ + CELL_GCM_FREQUENCY_MODULO = 1, + CELL_GCM_FREQUENCY_DIVIDE = 0, +}; + +enum CellRescTableElement +{ + CELL_RESC_ELEMENT_HALF = 0, + CELL_RESC_ELEMENT_FLOAT = 1, +}; + +enum +{ + CELL_GCM_SYSTEM_MODE_IOMAP_512MB = 1, +}; + +// GCM Texture +enum +{ + // Color Flag + CELL_GCM_TEXTURE_B8 = 0x81, + CELL_GCM_TEXTURE_A1R5G5B5 = 0x82, + CELL_GCM_TEXTURE_A4R4G4B4 = 0x83, + CELL_GCM_TEXTURE_R5G6B5 = 0x84, + CELL_GCM_TEXTURE_A8R8G8B8 = 0x85, + CELL_GCM_TEXTURE_COMPRESSED_DXT1 = 0x86, + CELL_GCM_TEXTURE_COMPRESSED_DXT23 = 0x87, + CELL_GCM_TEXTURE_COMPRESSED_DXT45 = 0x88, + CELL_GCM_TEXTURE_G8B8 = 0x8B, + CELL_GCM_TEXTURE_R6G5B5 = 0x8F, + CELL_GCM_TEXTURE_DEPTH24_D8 = 0x90, + CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT = 0x91, + CELL_GCM_TEXTURE_DEPTH16 = 0x92, + CELL_GCM_TEXTURE_DEPTH16_FLOAT = 0x93, + CELL_GCM_TEXTURE_X16 = 0x94, + CELL_GCM_TEXTURE_Y16_X16 = 0x95, + CELL_GCM_TEXTURE_R5G5B5A1 = 0x97, + CELL_GCM_TEXTURE_COMPRESSED_HILO8 = 0x98, + CELL_GCM_TEXTURE_COMPRESSED_HILO_S8 = 0x99, + CELL_GCM_TEXTURE_W16_Z16_Y16_X16_FLOAT = 0x9A, + CELL_GCM_TEXTURE_W32_Z32_Y32_X32_FLOAT = 0x9B, + CELL_GCM_TEXTURE_X32_FLOAT = 0x9C, + CELL_GCM_TEXTURE_D1R5G5B5 = 0x9D, + CELL_GCM_TEXTURE_D8R8G8B8 = 0x9E, + CELL_GCM_TEXTURE_Y16_X16_FLOAT = 0x9F, + CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8 = 0xAD, + CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8 = 0xAE, + + // Swizzle Flag + CELL_GCM_TEXTURE_SZ = 0x00, + CELL_GCM_TEXTURE_LN = 0x20, + + // Normalization Flag + CELL_GCM_TEXTURE_NR = 0x00, + CELL_GCM_TEXTURE_UN = 0x40, +}; + +// GCM Surface +enum +{ + // Surface type + CELL_GCM_SURFACE_PITCH = 1, + CELL_GCM_SURFACE_SWIZZLE = 2, +}; + +enum +{ + CELL_GCM_TEXTURE_UNSIGNED_REMAP_NORMAL = 0, + CELL_GCM_TEXTURE_UNSIGNED_REMAP_BIASED = 1, + + CELL_GCM_TEXTURE_SIGNED_REMAP_NORMAL = 0x0, + CELL_GCM_TEXTURE_SIGNED_REMAP_CLAMPED = 0x3, + + CELL_GCM_TEXTURE_ZFUNC_NEVER = 0, + CELL_GCM_TEXTURE_ZFUNC_LESS = 1, + CELL_GCM_TEXTURE_ZFUNC_EQUAL = 2, + CELL_GCM_TEXTURE_ZFUNC_LEQUAL = 3, + CELL_GCM_TEXTURE_ZFUNC_GREATER = 4, + CELL_GCM_TEXTURE_ZFUNC_NOTEQUAL = 5, + CELL_GCM_TEXTURE_ZFUNC_GEQUAL = 6, + CELL_GCM_TEXTURE_ZFUNC_ALWAYS = 7, + + CELL_GCM_TEXTURE_GAMMA_R = 1 << 0, + CELL_GCM_TEXTURE_GAMMA_G = 1 << 1, + CELL_GCM_TEXTURE_GAMMA_B = 1 << 2, + CELL_GCM_TEXTURE_GAMMA_A = 1 << 3, + + CELL_GCM_TEXTURE_ANISO_SPREAD_0_50_TEXEL = 0x0, + CELL_GCM_TEXTURE_ANISO_SPREAD_1_00_TEXEL = 0x1, + CELL_GCM_TEXTURE_ANISO_SPREAD_1_125_TEXEL = 0x2, + CELL_GCM_TEXTURE_ANISO_SPREAD_1_25_TEXEL = 0x3, + CELL_GCM_TEXTURE_ANISO_SPREAD_1_375_TEXEL = 0x4, + CELL_GCM_TEXTURE_ANISO_SPREAD_1_50_TEXEL = 0x5, + CELL_GCM_TEXTURE_ANISO_SPREAD_1_75_TEXEL = 0x6, + CELL_GCM_TEXTURE_ANISO_SPREAD_2_00_TEXEL = 0x7, + + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_U = 1 << 0, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_V = 1 << 1, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_P = 1 << 2, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX0_Q = 1 << 3, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_U = 1 << 4, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_V = 1 << 5, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_P = 1 << 6, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX1_Q = 1 << 7, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_U = 1 << 8, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_V = 1 << 9, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_P = 1 << 10, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX2_Q = 1 << 11, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_U = 1 << 12, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_V = 1 << 13, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_P = 1 << 14, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX3_Q = 1 << 15, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_U = 1 << 16, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_V = 1 << 17, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_P = 1 << 18, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX4_Q = 1 << 19, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_U = 1 << 20, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_V = 1 << 21, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_P = 1 << 22, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX5_Q = 1 << 23, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_U = 1 << 24, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_V = 1 << 25, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_P = 1 << 26, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX6_Q = 1 << 27, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_U = 1 << 28, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_V = 1 << 29, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_P = 1 << 30, + CELL_GCM_TEXTURE_CYLINDRICAL_WRAP_ENABLE_TEX7_Q = 1 << 31, + + CELL_GCM_COLOR_MASK_B = 1 << 0, + CELL_GCM_COLOR_MASK_G = 1 << 8, + CELL_GCM_COLOR_MASK_R = 1 << 16, + CELL_GCM_COLOR_MASK_A = 1 << 24, + + CELL_GCM_COLOR_MASK_MRT1_A = 1 << 4, + CELL_GCM_COLOR_MASK_MRT1_R = 1 << 5, + CELL_GCM_COLOR_MASK_MRT1_G = 1 << 6, + CELL_GCM_COLOR_MASK_MRT1_B = 1 << 7, + CELL_GCM_COLOR_MASK_MRT2_A = 1 << 8, + CELL_GCM_COLOR_MASK_MRT2_R = 1 << 9, + CELL_GCM_COLOR_MASK_MRT2_G = 1 << 10, + CELL_GCM_COLOR_MASK_MRT2_B = 1 << 11, + CELL_GCM_COLOR_MASK_MRT3_A = 1 << 12, + CELL_GCM_COLOR_MASK_MRT3_R = 1 << 13, + CELL_GCM_COLOR_MASK_MRT3_G = 1 << 14, + CELL_GCM_COLOR_MASK_MRT3_B = 1 << 15, + + CELL_GCM_NEVER = 0x0200, + CELL_GCM_LESS = 0x0201, + CELL_GCM_EQUAL = 0x0202, + CELL_GCM_LEQUAL = 0x0203, + CELL_GCM_GREATER = 0x0204, + CELL_GCM_NOTEQUAL = 0x0205, + CELL_GCM_GEQUAL = 0x0206, + CELL_GCM_ALWAYS = 0x0207, + + CELL_GCM_ZERO = 0, + CELL_GCM_ONE = 1, + + CELL_GCM_FRONT = 0x0404, + CELL_GCM_BACK = 0x0405, + CELL_GCM_FRONT_AND_BACK = 0x0408, + + CELL_GCM_CW = 0x0900, + CELL_GCM_CCW = 0x0901, + + CELL_GCM_TRANSFER_LOCAL_TO_LOCAL = 0, + CELL_GCM_TRANSFER_MAIN_TO_LOCAL = 1, + CELL_GCM_TRANSFER_LOCAL_TO_MAIN = 2, + CELL_GCM_TRANSFER_MAIN_TO_MAIN = 3, + + CELL_GCM_INVALIDATE_TEXTURE = 1, + CELL_GCM_INVALIDATE_VERTEX_TEXTURE = 2, + + CELL_GCM_COMPMODE_DISABLED = 0, + CELL_GCM_COMPMODE_C32_2X1 = 7, + CELL_GCM_COMPMODE_C32_2X2 = 8, + CELL_GCM_COMPMODE_Z32_SEPSTENCIL = 9, + CELL_GCM_COMPMODE_Z32_SEPSTENCIL_REG = 10, + CELL_GCM_COMPMODE_Z32_SEPSTENCIL_REGULAR = 10, + CELL_GCM_COMPMODE_Z32_SEPSTENCIL_DIAGONAL = 11, + CELL_GCM_COMPMODE_Z32_SEPSTENCIL_ROTATED = 12, + + CELL_GCM_ZCULL_Z16 = 1, + CELL_GCM_ZCULL_Z24S8 = 2, + CELL_GCM_ZCULL_MSB = 0, + CELL_GCM_ZCULL_LONES = 1, + CELL_GCM_ZCULL_LESS = 0, + CELL_GCM_ZCULL_GREATER = 1, + + CELL_GCM_SCULL_SFUNC_NEVER = 0, + CELL_GCM_SCULL_SFUNC_LESS = 1, + CELL_GCM_SCULL_SFUNC_EQUAL = 2, + CELL_GCM_SCULL_SFUNC_LEQUAL = 3, + CELL_GCM_SCULL_SFUNC_GREATER = 4, + CELL_GCM_SCULL_SFUNC_NOTEQUAL = 5, + CELL_GCM_SCULL_SFUNC_GEQUAL = 6, + CELL_GCM_SCULL_SFUNC_ALWAYS = 7, + + CELL_GCM_ATTRIB_OUTPUT_FRONTDIFFUSE = 0, + CELL_GCM_ATTRIB_OUTPUT_FRONTSPECULAR = 1, + CELL_GCM_ATTRIB_OUTPUT_BACKDIFFUSE = 2, + CELL_GCM_ATTRIB_OUTPUT_BACKSPECULAR = 3, + CELL_GCM_ATTRIB_OUTPUT_FOG = 4, + CELL_GCM_ATTRIB_OUTPUT_POINTSIZE = 5, + CELL_GCM_ATTRIB_OUTPUT_UC0 = 6, + CELL_GCM_ATTRIB_OUTPUT_UC1 = 7, + CELL_GCM_ATTRIB_OUTPUT_UC2 = 8, + CELL_GCM_ATTRIB_OUTPUT_UC3 = 9, + CELL_GCM_ATTRIB_OUTPUT_UC4 = 10, + CELL_GCM_ATTRIB_OUTPUT_UC5 = 11, + CELL_GCM_ATTRIB_OUTPUT_TEX8 = 12, + CELL_GCM_ATTRIB_OUTPUT_TEX9 = 13, + CELL_GCM_ATTRIB_OUTPUT_TEX0 = 14, + CELL_GCM_ATTRIB_OUTPUT_TEX1 = 15, + CELL_GCM_ATTRIB_OUTPUT_TEX2 = 16, + CELL_GCM_ATTRIB_OUTPUT_TEX3 = 17, + CELL_GCM_ATTRIB_OUTPUT_TEX4 = 18, + CELL_GCM_ATTRIB_OUTPUT_TEX5 = 19, + CELL_GCM_ATTRIB_OUTPUT_TEX6 = 20, + CELL_GCM_ATTRIB_OUTPUT_TEX7 = 21, + + CELL_GCM_ATTRIB_OUTPUT_MASK_FRONTDIFFUSE = 1 << CELL_GCM_ATTRIB_OUTPUT_FRONTDIFFUSE, + CELL_GCM_ATTRIB_OUTPUT_MASK_FRONTSPECULAR = 1 << CELL_GCM_ATTRIB_OUTPUT_FRONTSPECULAR, + CELL_GCM_ATTRIB_OUTPUT_MASK_BACKDIFFUSE = 1 << CELL_GCM_ATTRIB_OUTPUT_BACKDIFFUSE, + CELL_GCM_ATTRIB_OUTPUT_MASK_BACKSPECULAR = 1 << CELL_GCM_ATTRIB_OUTPUT_BACKSPECULAR, + CELL_GCM_ATTRIB_OUTPUT_MASK_FOG = 1 << CELL_GCM_ATTRIB_OUTPUT_FOG, + CELL_GCM_ATTRIB_OUTPUT_MASK_POINTSIZE = 1 << CELL_GCM_ATTRIB_OUTPUT_POINTSIZE, + CELL_GCM_ATTRIB_OUTPUT_MASK_UC0 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC0, + CELL_GCM_ATTRIB_OUTPUT_MASK_UC1 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC1, + CELL_GCM_ATTRIB_OUTPUT_MASK_UC2 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC2, + CELL_GCM_ATTRIB_OUTPUT_MASK_UC3 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC3, + CELL_GCM_ATTRIB_OUTPUT_MASK_UC4 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC4, + CELL_GCM_ATTRIB_OUTPUT_MASK_UC5 = 1 << CELL_GCM_ATTRIB_OUTPUT_UC5, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX8 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX8, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX9 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX9, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX0 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX0, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX1 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX1, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX2 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX2, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX3 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX3, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX4 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX4, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX5 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX5, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX6 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX6, + CELL_GCM_ATTRIB_OUTPUT_MASK_TEX7 = 1 << CELL_GCM_ATTRIB_OUTPUT_TEX7, + + CELL_GCM_TRUE = 1, + CELL_GCM_FALSE = 0, +}; + +enum +{ + CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT = 0xe, ///< shader program exports the depth of the shaded fragment + CELL_GCM_SHADER_CONTROL_32_BITS_EXPORTS = 0x40 ///< shader program exports 32 bits registers values (instead of 16 bits ones) +}; + +// GCM Reports +enum +{ + CELL_GCM_ZPASS_PIXEL_CNT = 1, + CELL_GCM_ZCULL_STATS = 2, + CELL_GCM_ZCULL_STATS1 = 3, + CELL_GCM_ZCULL_STATS2 = 4, + CELL_GCM_ZCULL_STATS3 = 5, +}; + +// GPU Class Handles +enum +{ + CELL_GCM_CONTEXT_DMA_MEMORY_FRAME_BUFFER = 0xFEED0000, // Local memory + CELL_GCM_CONTEXT_DMA_MEMORY_HOST_BUFFER = 0xFEED0001, // Main memory + CELL_GCM_CONTEXT_DMA_TO_MEMORY_GET_REPORT = 0x66626660, + CELL_GCM_CONTEXT_DMA_REPORT_LOCATION_MAIN = 0xBAD68000, + CELL_GCM_CONTEXT_DMA_NOTIFY_MAIN_0 = 0x6660420F, +}; + +enum +{ + // NV40_CHANNEL_DMA (NV406E) + NV406E_SET_REFERENCE = 0x00000050 >> 2, + NV406E_SET_CONTEXT_DMA_SEMAPHORE = 0x00000060 >> 2, + NV406E_SEMAPHORE_OFFSET = 0x00000064 >> 2, + NV406E_SEMAPHORE_ACQUIRE = 0x00000068 >> 2, + NV406E_SEMAPHORE_RELEASE = 0x0000006c >> 2, + + // NV40_CURIE_PRIMITIVE (NV4097) + NV4097_SET_OBJECT = 0x00000000 >> 2, + NV4097_NO_OPERATION = 0x00000100 >> 2, + NV4097_NOTIFY = 0x00000104 >> 2, + NV4097_WAIT_FOR_IDLE = 0x00000110 >> 2, + NV4097_PM_TRIGGER = 0x00000140 >> 2, + NV4097_SET_CONTEXT_DMA_NOTIFIES = 0x00000180 >> 2, + NV4097_SET_CONTEXT_DMA_A = 0x00000184 >> 2, + NV4097_SET_CONTEXT_DMA_B = 0x00000188 >> 2, + NV4097_SET_CONTEXT_DMA_COLOR_B = 0x0000018c >> 2, + NV4097_SET_CONTEXT_DMA_STATE = 0x00000190 >> 2, + NV4097_SET_CONTEXT_DMA_COLOR_A = 0x00000194 >> 2, + NV4097_SET_CONTEXT_DMA_ZETA = 0x00000198 >> 2, + NV4097_SET_CONTEXT_DMA_VERTEX_A = 0x0000019c >> 2, + NV4097_SET_CONTEXT_DMA_VERTEX_B = 0x000001a0 >> 2, + NV4097_SET_CONTEXT_DMA_SEMAPHORE = 0x000001a4 >> 2, + NV4097_SET_CONTEXT_DMA_REPORT = 0x000001a8 >> 2, + NV4097_SET_CONTEXT_DMA_CLIP_ID = 0x000001ac >> 2, + NV4097_SET_CONTEXT_DMA_CULL_DATA = 0x000001b0 >> 2, + NV4097_SET_CONTEXT_DMA_COLOR_C = 0x000001b4 >> 2, + NV4097_SET_CONTEXT_DMA_COLOR_D = 0x000001b8 >> 2, + NV4097_SET_SURFACE_CLIP_HORIZONTAL = 0x00000200 >> 2, + NV4097_SET_SURFACE_CLIP_VERTICAL = 0x00000204 >> 2, + NV4097_SET_SURFACE_FORMAT = 0x00000208 >> 2, + NV4097_SET_SURFACE_PITCH_A = 0x0000020c >> 2, + NV4097_SET_SURFACE_COLOR_AOFFSET = 0x00000210 >> 2, + NV4097_SET_SURFACE_ZETA_OFFSET = 0x00000214 >> 2, + NV4097_SET_SURFACE_COLOR_BOFFSET = 0x00000218 >> 2, + NV4097_SET_SURFACE_PITCH_B = 0x0000021c >> 2, + NV4097_SET_SURFACE_COLOR_TARGET = 0x00000220 >> 2, + NV4097_SET_SURFACE_PITCH_Z = 0x0000022c >> 2, + NV4097_INVALIDATE_ZCULL = 0x00000234 >> 2, + NV4097_SET_CYLINDRICAL_WRAP = 0x00000238 >> 2, + NV4097_SET_CYLINDRICAL_WRAP1 = 0x0000023c >> 2, + NV4097_SET_SURFACE_PITCH_C = 0x00000280 >> 2, + NV4097_SET_SURFACE_PITCH_D = 0x00000284 >> 2, + NV4097_SET_SURFACE_COLOR_COFFSET = 0x00000288 >> 2, + NV4097_SET_SURFACE_COLOR_DOFFSET = 0x0000028c >> 2, + NV4097_SET_WINDOW_OFFSET = 0x000002b8 >> 2, + NV4097_SET_WINDOW_CLIP_TYPE = 0x000002bc >> 2, + NV4097_SET_WINDOW_CLIP_HORIZONTAL = 0x000002c0 >> 2, + NV4097_SET_WINDOW_CLIP_VERTICAL = 0x000002c4 >> 2, + NV4097_SET_DITHER_ENABLE = 0x00000300 >> 2, + NV4097_SET_ALPHA_TEST_ENABLE = 0x00000304 >> 2, + NV4097_SET_ALPHA_FUNC = 0x00000308 >> 2, + NV4097_SET_ALPHA_REF = 0x0000030c >> 2, + NV4097_SET_BLEND_ENABLE = 0x00000310 >> 2, + NV4097_SET_BLEND_FUNC_SFACTOR = 0x00000314 >> 2, + NV4097_SET_BLEND_FUNC_DFACTOR = 0x00000318 >> 2, + NV4097_SET_BLEND_COLOR = 0x0000031c >> 2, + NV4097_SET_BLEND_EQUATION = 0x00000320 >> 2, + NV4097_SET_COLOR_MASK = 0x00000324 >> 2, + NV4097_SET_STENCIL_TEST_ENABLE = 0x00000328 >> 2, + NV4097_SET_STENCIL_MASK = 0x0000032c >> 2, + NV4097_SET_STENCIL_FUNC = 0x00000330 >> 2, + NV4097_SET_STENCIL_FUNC_REF = 0x00000334 >> 2, + NV4097_SET_STENCIL_FUNC_MASK = 0x00000338 >> 2, + NV4097_SET_STENCIL_OP_FAIL = 0x0000033c >> 2, + NV4097_SET_STENCIL_OP_ZFAIL = 0x00000340 >> 2, + NV4097_SET_STENCIL_OP_ZPASS = 0x00000344 >> 2, + NV4097_SET_TWO_SIDED_STENCIL_TEST_ENABLE = 0x00000348 >> 2, + NV4097_SET_BACK_STENCIL_MASK = 0x0000034c >> 2, + NV4097_SET_BACK_STENCIL_FUNC = 0x00000350 >> 2, + NV4097_SET_BACK_STENCIL_FUNC_REF = 0x00000354 >> 2, + NV4097_SET_BACK_STENCIL_FUNC_MASK = 0x00000358 >> 2, + NV4097_SET_BACK_STENCIL_OP_FAIL = 0x0000035c >> 2, + NV4097_SET_BACK_STENCIL_OP_ZFAIL = 0x00000360 >> 2, + NV4097_SET_BACK_STENCIL_OP_ZPASS = 0x00000364 >> 2, + NV4097_SET_SHADE_MODE = 0x00000368 >> 2, + NV4097_SET_BLEND_ENABLE_MRT = 0x0000036c >> 2, + NV4097_SET_COLOR_MASK_MRT = 0x00000370 >> 2, + NV4097_SET_LOGIC_OP_ENABLE = 0x00000374 >> 2, + NV4097_SET_LOGIC_OP = 0x00000378 >> 2, + NV4097_SET_BLEND_COLOR2 = 0x0000037c >> 2, + NV4097_SET_DEPTH_BOUNDS_TEST_ENABLE = 0x00000380 >> 2, + NV4097_SET_DEPTH_BOUNDS_MIN = 0x00000384 >> 2, + NV4097_SET_DEPTH_BOUNDS_MAX = 0x00000388 >> 2, + NV4097_SET_CLIP_MIN = 0x00000394 >> 2, + NV4097_SET_CLIP_MAX = 0x00000398 >> 2, + NV4097_SET_CONTROL0 = 0x000003b0 >> 2, + NV4097_SET_LINE_WIDTH = 0x000003b8 >> 2, + NV4097_SET_LINE_SMOOTH_ENABLE = 0x000003bc >> 2, + NV4097_SET_ANISO_SPREAD = 0x000003c0 >> 2, + NV4097_SET_SCISSOR_HORIZONTAL = 0x000008c0 >> 2, + NV4097_SET_SCISSOR_VERTICAL = 0x000008c4 >> 2, + NV4097_SET_FOG_MODE = 0x000008cc >> 2, + NV4097_SET_FOG_PARAMS = 0x000008d0 >> 2, + NV4097_SET_SHADER_PROGRAM = 0x000008e4 >> 2, + NV4097_SET_VERTEX_TEXTURE_OFFSET = 0x00000900 >> 2, + NV4097_SET_VERTEX_TEXTURE_FORMAT = 0x00000904 >> 2, + NV4097_SET_VERTEX_TEXTURE_ADDRESS = 0x00000908 >> 2, + NV4097_SET_VERTEX_TEXTURE_CONTROL0 = 0x0000090c >> 2, + NV4097_SET_VERTEX_TEXTURE_CONTROL3 = 0x00000910 >> 2, + NV4097_SET_VERTEX_TEXTURE_FILTER = 0x00000914 >> 2, + NV4097_SET_VERTEX_TEXTURE_IMAGE_RECT = 0x00000918 >> 2, + NV4097_SET_VERTEX_TEXTURE_BORDER_COLOR = 0x0000091c >> 2, + NV4097_SET_VIEWPORT_HORIZONTAL = 0x00000a00 >> 2, + NV4097_SET_VIEWPORT_VERTICAL = 0x00000a04 >> 2, + NV4097_SET_POINT_CENTER_MODE = 0x00000a0c >> 2, + NV4097_ZCULL_SYNC = 0x00000a1c >> 2, + NV4097_SET_VIEWPORT_OFFSET = 0x00000a20 >> 2, + NV4097_SET_VIEWPORT_SCALE = 0x00000a30 >> 2, + NV4097_SET_POLY_OFFSET_POINT_ENABLE = 0x00000a60 >> 2, + NV4097_SET_POLY_OFFSET_LINE_ENABLE = 0x00000a64 >> 2, + NV4097_SET_POLY_OFFSET_FILL_ENABLE = 0x00000a68 >> 2, + NV4097_SET_DEPTH_FUNC = 0x00000a6c >> 2, + NV4097_SET_DEPTH_MASK = 0x00000a70 >> 2, + NV4097_SET_DEPTH_TEST_ENABLE = 0x00000a74 >> 2, + NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR = 0x00000a78 >> 2, + NV4097_SET_POLYGON_OFFSET_BIAS = 0x00000a7c >> 2, + NV4097_SET_VERTEX_DATA_SCALED4S_M = 0x00000a80 >> 2, + NV4097_SET_TEXTURE_CONTROL2 = 0x00000b00 >> 2, + NV4097_SET_TEX_COORD_CONTROL = 0x00000b40 >> 2, + NV4097_SET_TRANSFORM_PROGRAM = 0x00000b80 >> 2, + NV4097_SET_SPECULAR_ENABLE = 0x00001428 >> 2, + NV4097_SET_TWO_SIDE_LIGHT_EN = 0x0000142c >> 2, + NV4097_CLEAR_ZCULL_SURFACE = 0x00001438 >> 2, + NV4097_SET_PERFORMANCE_PARAMS = 0x00001450 >> 2, + NV4097_SET_FLAT_SHADE_OP = 0x00001454 >> 2, + NV4097_SET_EDGE_FLAG = 0x0000145c >> 2, + NV4097_SET_USER_CLIP_PLANE_CONTROL = 0x00001478 >> 2, + NV4097_SET_POLYGON_STIPPLE = 0x0000147c >> 2, + NV4097_SET_POLYGON_STIPPLE_PATTERN = 0x00001480 >> 2, + NV4097_SET_VERTEX_DATA3F_M = 0x00001500 >> 2, + NV4097_SET_VERTEX_DATA_ARRAY_OFFSET = 0x00001680 >> 2, + NV4097_INVALIDATE_VERTEX_CACHE_FILE = 0x00001710 >> 2, + NV4097_INVALIDATE_VERTEX_FILE = 0x00001714 >> 2, + NV4097_PIPE_NOP = 0x00001718 >> 2, + NV4097_SET_VERTEX_DATA_BASE_OFFSET = 0x00001738 >> 2, + NV4097_SET_VERTEX_DATA_BASE_INDEX = 0x0000173c >> 2, + NV4097_SET_VERTEX_DATA_ARRAY_FORMAT = 0x00001740 >> 2, + NV4097_CLEAR_REPORT_VALUE = 0x000017c8 >> 2, + NV4097_SET_ZPASS_PIXEL_COUNT_ENABLE = 0x000017cc >> 2, + NV4097_GET_REPORT = 0x00001800 >> 2, + NV4097_SET_ZCULL_STATS_ENABLE = 0x00001804 >> 2, + NV4097_SET_BEGIN_END = 0x00001808 >> 2, + NV4097_ARRAY_ELEMENT16 = 0x0000180c >> 2, + NV4097_ARRAY_ELEMENT32 = 0x00001810 >> 2, + NV4097_DRAW_ARRAYS = 0x00001814 >> 2, + NV4097_INLINE_ARRAY = 0x00001818 >> 2, + NV4097_SET_INDEX_ARRAY_ADDRESS = 0x0000181c >> 2, + NV4097_SET_INDEX_ARRAY_DMA = 0x00001820 >> 2, + NV4097_DRAW_INDEX_ARRAY = 0x00001824 >> 2, + NV4097_SET_FRONT_POLYGON_MODE = 0x00001828 >> 2, + NV4097_SET_BACK_POLYGON_MODE = 0x0000182c >> 2, + NV4097_SET_CULL_FACE = 0x00001830 >> 2, + NV4097_SET_FRONT_FACE = 0x00001834 >> 2, + NV4097_SET_POLY_SMOOTH_ENABLE = 0x00001838 >> 2, + NV4097_SET_CULL_FACE_ENABLE = 0x0000183c >> 2, + NV4097_SET_TEXTURE_CONTROL3 = 0x00001840 >> 2, + NV4097_SET_VERTEX_DATA2F_M = 0x00001880 >> 2, + NV4097_SET_VERTEX_DATA2S_M = 0x00001900 >> 2, + NV4097_SET_VERTEX_DATA4UB_M = 0x00001940 >> 2, + NV4097_SET_VERTEX_DATA4S_M = 0x00001980 >> 2, + NV4097_SET_TEXTURE_OFFSET = 0x00001a00 >> 2, + NV4097_SET_TEXTURE_FORMAT = 0x00001a04 >> 2, + NV4097_SET_TEXTURE_ADDRESS = 0x00001a08 >> 2, + NV4097_SET_TEXTURE_CONTROL0 = 0x00001a0c >> 2, + NV4097_SET_TEXTURE_CONTROL1 = 0x00001a10 >> 2, + NV4097_SET_TEXTURE_FILTER = 0x00001a14 >> 2, + NV4097_SET_TEXTURE_IMAGE_RECT = 0x00001a18 >> 2, + NV4097_SET_TEXTURE_BORDER_COLOR = 0x00001a1c >> 2, + NV4097_SET_VERTEX_DATA4F_M = 0x00001c00 >> 2, + NV4097_SET_COLOR_KEY_COLOR = 0x00001d00 >> 2, + NV4097_SET_SHADER_CONTROL = 0x00001d60 >> 2, + NV4097_SET_INDEXED_CONSTANT_READ_LIMITS = 0x00001d64 >> 2, + NV4097_SET_SEMAPHORE_OFFSET = 0x00001d6c >> 2, + NV4097_BACK_END_WRITE_SEMAPHORE_RELEASE = 0x00001d70 >> 2, + NV4097_TEXTURE_READ_SEMAPHORE_RELEASE = 0x00001d74 >> 2, + NV4097_SET_ZMIN_MAX_CONTROL = 0x00001d78 >> 2, + NV4097_SET_ANTI_ALIASING_CONTROL = 0x00001d7c >> 2, + NV4097_SET_SURFACE_COMPRESSION = 0x00001d80 >> 2, + NV4097_SET_ZCULL_EN = 0x00001d84 >> 2, + NV4097_SET_SHADER_WINDOW = 0x00001d88 >> 2, + NV4097_SET_ZSTENCIL_CLEAR_VALUE = 0x00001d8c >> 2, + NV4097_SET_COLOR_CLEAR_VALUE = 0x00001d90 >> 2, + NV4097_CLEAR_SURFACE = 0x00001d94 >> 2, + NV4097_SET_CLEAR_RECT_HORIZONTAL = 0x00001d98 >> 2, + NV4097_SET_CLEAR_RECT_VERTICAL = 0x00001d9c >> 2, + NV4097_SET_CLIP_ID_TEST_ENABLE = 0x00001da4 >> 2, + NV4097_SET_RESTART_INDEX_ENABLE = 0x00001dac >> 2, + NV4097_SET_RESTART_INDEX = 0x00001db0 >> 2, + NV4097_SET_LINE_STIPPLE = 0x00001db4 >> 2, + NV4097_SET_LINE_STIPPLE_PATTERN = 0x00001db8 >> 2, + NV4097_SET_VERTEX_DATA1F_M = 0x00001e40 >> 2, + NV4097_SET_TRANSFORM_EXECUTION_MODE = 0x00001e94 >> 2, + NV4097_SET_RENDER_ENABLE = 0x00001e98 >> 2, + NV4097_SET_TRANSFORM_PROGRAM_LOAD = 0x00001e9c >> 2, + NV4097_SET_TRANSFORM_PROGRAM_START = 0x00001ea0 >> 2, + NV4097_SET_ZCULL_CONTROL0 = 0x00001ea4 >> 2, + NV4097_SET_ZCULL_CONTROL1 = 0x00001ea8 >> 2, + NV4097_SET_SCULL_CONTROL = 0x00001eac >> 2, + NV4097_SET_POINT_SIZE = 0x00001ee0 >> 2, + NV4097_SET_POINT_PARAMS_ENABLE = 0x00001ee4 >> 2, + NV4097_SET_POINT_SPRITE_CONTROL = 0x00001ee8 >> 2, + NV4097_SET_TRANSFORM_TIMEOUT = 0x00001ef8 >> 2, + NV4097_SET_TRANSFORM_CONSTANT_LOAD = 0x00001efc >> 2, + NV4097_SET_TRANSFORM_CONSTANT = 0x00001f00 >> 2, + NV4097_SET_FREQUENCY_DIVIDER_OPERATION = 0x00001fc0 >> 2, + NV4097_SET_ATTRIB_COLOR = 0x00001fc4 >> 2, + NV4097_SET_ATTRIB_TEX_COORD = 0x00001fc8 >> 2, + NV4097_SET_ATTRIB_TEX_COORD_EX = 0x00001fcc >> 2, + NV4097_SET_ATTRIB_UCLIP0 = 0x00001fd0 >> 2, + NV4097_SET_ATTRIB_UCLIP1 = 0x00001fd4 >> 2, + NV4097_INVALIDATE_L2 = 0x00001fd8 >> 2, + NV4097_SET_REDUCE_DST_COLOR = 0x00001fe0 >> 2, + NV4097_SET_NO_PARANOID_TEXTURE_FETCHES = 0x00001fe8 >> 2, + NV4097_SET_SHADER_PACKER = 0x00001fec >> 2, + NV4097_SET_VERTEX_ATTRIB_INPUT_MASK = 0x00001ff0 >> 2, + NV4097_SET_VERTEX_ATTRIB_OUTPUT_MASK = 0x00001ff4 >> 2, + NV4097_SET_TRANSFORM_BRANCH_BITS = 0x00001ff8 >> 2, + + // NV03_MEMORY_TO_MEMORY_FORMAT (NV0039) + NV0039_SET_OBJECT = 0x00002000 >> 2, + NV0039_SET_CONTEXT_DMA_NOTIFIES = 0x00002180 >> 2, + NV0039_SET_CONTEXT_DMA_BUFFER_IN = 0x00002184 >> 2, + NV0039_SET_CONTEXT_DMA_BUFFER_OUT = 0x00002188 >> 2, + NV0039_OFFSET_IN = 0x0000230C >> 2, + NV0039_OFFSET_OUT = 0x00002310 >> 2, + NV0039_PITCH_IN = 0x00002314 >> 2, + NV0039_PITCH_OUT = 0x00002318 >> 2, + NV0039_LINE_LENGTH_IN = 0x0000231C >> 2, + NV0039_LINE_COUNT = 0x00002320 >> 2, + NV0039_FORMAT = 0x00002324 >> 2, + NV0039_BUFFER_NOTIFY = 0x00002328 >> 2, + + // NV30_CONTEXT_SURFACES_2D (NV3062) + NV3062_SET_OBJECT = 0x00006000 >> 2, + NV3062_SET_CONTEXT_DMA_NOTIFIES = 0x00006180 >> 2, + NV3062_SET_CONTEXT_DMA_IMAGE_SOURCE = 0x00006184 >> 2, + NV3062_SET_CONTEXT_DMA_IMAGE_DESTIN = 0x00006188 >> 2, + NV3062_SET_COLOR_FORMAT = 0x00006300 >> 2, + NV3062_SET_PITCH = 0x00006304 >> 2, + NV3062_SET_OFFSET_SOURCE = 0x00006308 >> 2, + NV3062_SET_OFFSET_DESTIN = 0x0000630C >> 2, + + // NV30_CONTEXT_SURFACE_SWIZZLED (NV309E) + NV309E_SET_OBJECT = 0x00008000 >> 2, + NV309E_SET_CONTEXT_DMA_NOTIFIES = 0x00008180 >> 2, + NV309E_SET_CONTEXT_DMA_IMAGE = 0x00008184 >> 2, + NV309E_SET_FORMAT = 0x00008300 >> 2, + NV309E_SET_OFFSET = 0x00008304 >> 2, + + // NV30_IMAGE_FROM_CPU (NV308A) + NV308A_SET_OBJECT = 0x0000A000 >> 2, + NV308A_SET_CONTEXT_DMA_NOTIFIES = 0x0000A180 >> 2, + NV308A_SET_CONTEXT_COLOR_KEY = 0x0000A184 >> 2, + NV308A_SET_CONTEXT_CLIP_RECTANGLE = 0x0000A188 >> 2, + NV308A_SET_CONTEXT_PATTERN = 0x0000A18C >> 2, + NV308A_SET_CONTEXT_ROP = 0x0000A190 >> 2, + NV308A_SET_CONTEXT_BETA1 = 0x0000A194 >> 2, + NV308A_SET_CONTEXT_BETA4 = 0x0000A198 >> 2, + NV308A_SET_CONTEXT_SURFACE = 0x0000A19C >> 2, + NV308A_SET_COLOR_CONVERSION = 0x0000A2F8 >> 2, + NV308A_SET_OPERATION = 0x0000A2FC >> 2, + NV308A_SET_COLOR_FORMAT = 0x0000A300 >> 2, + NV308A_POINT = 0x0000A304 >> 2, + NV308A_SIZE_OUT = 0x0000A308 >> 2, + NV308A_SIZE_IN = 0x0000A30C >> 2, + NV308A_COLOR = 0x0000A400 >> 2, + + // NV30_SCALED_IMAGE_FROM_MEMORY (NV3089) + NV3089_SET_OBJECT = 0x0000C000 >> 2, + NV3089_SET_CONTEXT_DMA_NOTIFIES = 0x0000C180 >> 2, + NV3089_SET_CONTEXT_DMA_IMAGE = 0x0000C184 >> 2, + NV3089_SET_CONTEXT_PATTERN = 0x0000C188 >> 2, + NV3089_SET_CONTEXT_ROP = 0x0000C18C >> 2, + NV3089_SET_CONTEXT_BETA1 = 0x0000C190 >> 2, + NV3089_SET_CONTEXT_BETA4 = 0x0000C194 >> 2, + NV3089_SET_CONTEXT_SURFACE = 0x0000C198 >> 2, + NV3089_SET_COLOR_CONVERSION = 0x0000C2FC >> 2, + NV3089_SET_COLOR_FORMAT = 0x0000C300 >> 2, + NV3089_SET_OPERATION = 0x0000C304 >> 2, + NV3089_CLIP_POINT = 0x0000C308 >> 2, + NV3089_CLIP_SIZE = 0x0000C30C >> 2, + NV3089_IMAGE_OUT_POINT = 0x0000C310 >> 2, + NV3089_IMAGE_OUT_SIZE = 0x0000C314 >> 2, + NV3089_DS_DX = 0x0000C318 >> 2, + NV3089_DT_DY = 0x0000C31C >> 2, + NV3089_IMAGE_IN_SIZE = 0x0000C400 >> 2, + NV3089_IMAGE_IN_FORMAT = 0x0000C404 >> 2, + NV3089_IMAGE_IN_OFFSET = 0x0000C408 >> 2, + NV3089_IMAGE_IN = 0x0000C40C >> 2, + + GCM_SET_USER_COMMAND = 0x0000EB00 >> 2, + + GCM_FLIP_COMMAND = 0x0000FEAC >> 2 +}; + + +enum Method +{ + CELL_GCM_METHOD_FLAG_NON_INCREMENT = 0x40000000, + CELL_GCM_METHOD_FLAG_JUMP = 0x20000000, + CELL_GCM_METHOD_FLAG_CALL = 0x00000002, + CELL_GCM_METHOD_FLAG_RETURN = 0x00020000, +}; diff --git a/rpcs3/Emu/RSX/gcm_printing.cpp b/rpcs3/Emu/RSX/gcm_printing.cpp new file mode 100644 index 0000000000..980bf9f4bf --- /dev/null +++ b/rpcs3/Emu/RSX/gcm_printing.cpp @@ -0,0 +1,1007 @@ +#include "gcm_printing.h" +#include "rsx_decode.h" +#include +#include + +namespace +{ + const std::unordered_map methods_name = { + {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"}, + {NV4097_SET_TRANSFORM_BRANCH_BITS, "NV4097_SET_TRANSFORM_BRANCH_BITS"}, + {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"}, + }; +} + +std::string rsx::get_method_name(const u32 id) +{ + auto found = methods_name.find(id); + if (found != methods_name.end()) { + return std::string("CELL_GCM_") + found->second; + } + + return fmt::format("Unknown/illegal method [0x%08x]", id); +} + +// Various parameter pretty printing function +namespace +{ + std::string ptr_to_string(u32 ptr) + { + return fmt::format("0x%08x", ptr); + } + + std::string dma_mode(u32 arg) + { + 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"; + } + + std::string texture_dimension(u8 dim) + { + switch (rsx::to_texture_dimension(dim)) + { + case rsx::texture_dimension::dimension1d: return "1D"; + case rsx::texture_dimension::dimension2d: return "2D"; + case rsx::texture_dimension::dimension3d: return "3D"; + } + return ""; + } + + std::string get_vertex_attribute_format(u8 type) + { + switch (rsx::to_vertex_base_type(type)) + { + case rsx::vertex_base_type::s1: return "Signed short normalized"; + case rsx::vertex_base_type::f: return "Float"; + case rsx::vertex_base_type::sf: return "Half float"; + case rsx::vertex_base_type::ub: return "Unsigned byte normalized"; + case rsx::vertex_base_type::s32k: return "Signed short unormalized"; + case rsx::vertex_base_type::cmp: return "CMP"; + case rsx::vertex_base_type::ub256: return "Unsigned byte unormalized"; + } + } + + std::string unpack_vertex_format(u32 arg) + { + 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); + } + + std::string transform_constant(size_t index, u32 arg) + { + return "Transform constant " + std::to_string(index) + ": " + std::to_string(arg) + "/" + + std::to_string((float&)arg); + } + + std::string texture_offset(size_t index, u32 arg) + { + return "Texture " + std::to_string(index) + ": Offset @" + ptr_to_string(arg); + } + + std::string texture_size(size_t index, u32 arg) + { + return "Texture " + std::to_string(index) + ": width = " + std::to_string(arg & 0xffff) + + " height = " + std::to_string(arg >> 16); + } + + static std::string get_texture_format_name(u32 format) + { + 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"; + } + + std::string texture_format(size_t index, u32 arg) + { + 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); + } + + std::string get_texture_wrap_mode(u8 wrap) + { + switch (rsx::to_texture_wrap_mode(wrap)) + { + case rsx::texture_wrap_mode::wrap: return "WRAP"; + case rsx::texture_wrap_mode::mirror: return "MIRROR"; + case rsx::texture_wrap_mode::clamp_to_edge: return "CLAMP_TO_EDGE"; + case rsx::texture_wrap_mode::border: return "BORDER"; + case rsx::texture_wrap_mode::clamp: return "CLAMP"; + case rsx::texture_wrap_mode::mirror_once_clamp_to_edge: return "MIRROR_ONCE_CLAMP_TO_EDGE"; + case rsx::texture_wrap_mode::mirror_once_border: return "MIRROR_ONCE_BORDER"; + case rsx::texture_wrap_mode::mirror_once_clamp: return "MIRROR_ONCE_CLAMP"; + } + return "Error"; + } + + std::string get_zfunc_name(u8 op) + { + 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"; + } + + std::string texture_address(size_t index, u32 arg) + { + 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); + } + + std::string get_texture_max_aniso_name(u8 aniso) + { + switch (rsx::to_texture_max_anisotropy(aniso)) + { + case rsx::texture_max_anisotropy::x1: return "1"; + case rsx::texture_max_anisotropy::x2: return "2"; + case rsx::texture_max_anisotropy::x4: return "4"; + case rsx::texture_max_anisotropy::x6: return "6"; + case rsx::texture_max_anisotropy::x8: return "8"; + case rsx::texture_max_anisotropy::x10: return "10"; + case rsx::texture_max_anisotropy::x12: return "12"; + case rsx::texture_max_anisotropy::x16: return "16"; + } + return "Error"; + } + + std::string texture_control0(size_t index, u32 arg) + { + 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; + } + + 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 + { + return "Texture " + std::to_string(index) + " 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); + } + + std::string texture_control3(size_t index, u32 arg) + { + return "Texture " + std::to_string(index) + " depth = " + std::to_string(arg >> 20) + + " pitch = " + std::to_string(arg & 0xFFFFF); + } + + std::string texture_border_color(size_t index, u32 arg) + { + return "Texture " + std::to_string(index) + " border color = " + std::to_string(arg); + } + + std::string texture_filter(size_t index, u32 arg) + { + return "Texture " + std::to_string(index) + " 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); + } + + namespace + { + template + auto register_pretty_printing(u32 arg) + { + typename rsx::registers_decoder::decoded_type decoded_value(arg); + return rsx::registers_decoder::dump(std::move(arg)); + } + + template + auto create_printing_table(const std::integer_sequence&) + { + return std::unordered_map{ + {opcode, register_pretty_printing}...}; + } + } + + const std::unordered_map printing_functions = + create_printing_table(rsx::opcode_list); + /* { + { 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 + " : ""); } }, + };*/ +} + +std::function rsx::get_pretty_printing_function(u32 id) +{ + auto found = printing_functions.find(id); + if (found != printing_functions.end()) { + return found->second; + } + + return [=](u32 v) { return fmt::format("%s : 0x%08x", rsx::get_method_name(id), v); }; +} diff --git a/rpcs3/Emu/RSX/gcm_printing.h b/rpcs3/Emu/RSX/gcm_printing.h new file mode 100644 index 0000000000..8971a29ab3 --- /dev/null +++ b/rpcs3/Emu/RSX/gcm_printing.h @@ -0,0 +1,11 @@ +#pragma once +#include +#include +#include + +namespace rsx +{ + std::string get_method_name(const u32 id); + + std::function get_pretty_printing_function(const u32 id); +} diff --git a/rpcs3/Emu/RSX/rsx_decode.h b/rpcs3/Emu/RSX/rsx_decode.h index fe323616fe..7e793e3dad 100644 --- a/rpcs3/Emu/RSX/rsx_decode.h +++ b/rpcs3/Emu/RSX/rsx_decode.h @@ -2,7 +2,7 @@ #include "Utilities/types.h" #include "Utilities/BitField.h" #include -#include "GCM.h" +#include "gcm_enums.h" #pragma warning(disable:4503) namespace diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index 778de05c0d..7afe34599d 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -258,7 +258,13 @@ - + + NotUsing + NotUsing + NotUsing + NotUsing + NotUsing + NotUsing @@ -603,6 +609,7 @@ + diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index cebc04f463..469cc4db0a 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -206,9 +206,6 @@ Emu\GPU\RSX\Null - - Emu\GPU\RSX - Emu\GPU\RSX @@ -887,6 +884,9 @@ Loader + + Emu\GPU\RSX + @@ -1702,5 +1702,8 @@ Utilities + + Emu\GPU\RSX + \ No newline at end of file