cellGcm: add more enums

This commit is contained in:
Megamouse 2023-03-28 22:18:01 +02:00
parent 603b775f4a
commit 60fc51ed22
2 changed files with 192 additions and 5 deletions

View File

@ -1056,7 +1056,7 @@ error_code cellGcmMapEaIoAddressWithFlags(ppu_thread& ppu, u32 ea, u32 io, u32 s
{
cellGcmSys.warning("cellGcmMapEaIoAddressWithFlags(ea=0x%x, io=0x%x, size=0x%x, flags=0x%x)", ea, io, size, flags);
ensure(flags == 2 /*CELL_GCM_IOMAP_FLAG_STRICT_ORDERING*/);
ensure(flags == CELL_GCM_IOMAP_FLAG_STRICT_ORDERING);
auto& gcm_cfg = g_fxo->get<gcm_config>();
std::lock_guard lock(gcm_cfg.gcmio_mutex);

View File

@ -6,6 +6,19 @@
namespace gcm
{
enum
{
CELL_GCM_TYPE_B = 1,
CELL_GCM_TYPE_C = 2,
CELL_GCM_TYPE_RSX = 3,
CELL_GCM_MRT_MAXCOUNT = 4,
CELL_GCM_DISPLAY_MAXID = 8,
CELL_GCM_CONDITIONAL = 2,
};
enum
{
CELL_GCM_DISPLAY_HSYNC = 1,
@ -33,6 +46,42 @@ namespace gcm
CELL_GCM_DISPLAY_FLIP_STATUS_WAITING = 1,
};
enum
{
CELL_GCM_ZCULL_ALIGN_OFFSET = 4096,
CELL_GCM_ZCULL_ALIGN_WIDTH = 64,
CELL_GCM_ZCULL_ALIGN_HEIGHT = 64,
CELL_GCM_ZCULL_ALIGN_CULLSTART = 4096,
CELL_GCM_ZCULL_COMPRESSION_TAG_BASE_MAX = 0x7FF,
CELL_GCM_ZCULL_RAM_SIZE_MAX = 0x00300000,
CELL_GCM_TILE_ALIGN_OFFSET = 0x00010000,
CELL_GCM_TILE_ALIGN_SIZE = 0x00010000,
CELL_GCM_TILE_LOCAL_ALIGN_HEIGHT = 32,
CELL_GCM_TILE_MAIN_ALIGN_HEIGHT = 64,
CELL_GCM_TILE_ALIGN_BUFFER_START_BOUNDARY = 8,
CELL_GCM_FRAGMENT_UCODE_LOCAL_ALIGN_OFFSET = 64,
CELL_GCM_FRAGMENT_UCODE_MAIN_ALIGN_OFFSET = 128,
CELL_GCM_SURFACE_LINEAR_ALIGN_OFFSET = 64,
CELL_GCM_SURFACE_SWIZZLE_ALIGN_OFFSET = 128,
CELL_GCM_TEXTURE_SWIZZLE_ALIGN_OFFSET = 128,
CELL_GCM_TEXTURE_CUBEMAP_ALIGN_OFFSET = 128,
CELL_GCM_TEXTURE_SWIZZLED_CUBEMAP_FACE_ALIGN_OFFSET = 128,
CELL_GCM_VERTEX_TEXTURE_CACHE_LINE_SIZE = 32,
CELL_GCM_L2_TEXTURE_CACHE_LOCAL_LINE_SIZE = 64,
CELL_GCM_L2_TEXTURE_CACHE_MAIN_LINE_SIZE = 128,
CELL_GCM_IDX_FRAGMENT_UCODE_INSTRUCTION_PREFETCH_COUNT = 16,
CELL_GCM_DRAW_INDEX_ARRAY_INDEX_RANGE_MAX = 0x000FFFFF,
CELL_GCM_CURSOR_ALIGN_OFFSET = 2048
};
enum
{
CELL_GCM_FREQUENCY_MODULO = 1,
@ -45,9 +94,17 @@ namespace gcm
CELL_RESC_ELEMENT_FLOAT = 1,
};
enum
enum CellGcmDefaultFifoMode
{
CELL_GCM_DEFAULT_FIFO_MODE_TRADITIONAL = 0,
CELL_GCM_DEFAULT_FIFO_MODE_OPTIMIZE = 1,
CELL_GCM_DEFAULT_FIFO_MODE_CONDITIONAL = 2,
};
enum CellGcmSystemMode
{
CELL_GCM_SYSTEM_MODE_IOMAP_512MB = 1,
CELL_GCM_SYSTEM_MODE_MASK = 1
};
enum
@ -84,8 +141,8 @@ namespace gcm
CELL_GCM_TEXTURE_COMPRESSED_DXT23 = 0x87,
CELL_GCM_TEXTURE_COMPRESSED_DXT45 = 0x88,
CELL_GCM_TEXTURE_G8B8 = 0x8B,
CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8 = 0x8D,
CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8 = 0x8E,
CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8 = 0x8D, // NOTE: 0xAD in firmware
CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8 = 0x8E, // NOTE: 0xAE in firmware
CELL_GCM_TEXTURE_R6G5B5 = 0x8F,
CELL_GCM_TEXTURE_DEPTH24_D8 = 0x90,
CELL_GCM_TEXTURE_DEPTH24_D8_FLOAT = 0x91,
@ -153,12 +210,19 @@ namespace gcm
enum
{
CELL_GCM_TEXTURE_DIMENSION_1 = 1,
CELL_GCM_TEXTURE_DIMENSION_2 = 2,
CELL_GCM_TEXTURE_DIMENSION_3 = 3,
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_REMAP_ORDER_XYXY = 0,
CELL_GCM_TEXTURE_REMAP_ORDER_XXXY = 1,
CELL_GCM_TEXTURE_REMAP_FROM_A = 0,
CELL_GCM_TEXTURE_REMAP_FROM_R = 1,
CELL_GCM_TEXTURE_REMAP_FROM_G = 2,
@ -168,6 +232,9 @@ namespace gcm
CELL_GCM_TEXTURE_REMAP_ONE = 1,
CELL_GCM_TEXTURE_REMAP_REMAP = 2,
CELL_GCM_TEXTURE_BORDER_TEXTURE = 0,
CELL_GCM_TEXTURE_BORDER_COLOR = 1,
CELL_GCM_TEXTURE_ZFUNC_NEVER = 0,
CELL_GCM_TEXTURE_ZFUNC_LESS = 1,
CELL_GCM_TEXTURE_ZFUNC_EQUAL = 2,
@ -352,6 +419,24 @@ namespace gcm
CELL_GCM_FALSE = 0,
};
enum
{
CELL_GCM_POINT_SPRITE_RMODE_ZERO = 0,
CELL_GCM_POINT_SPRITE_RMODE_FROM_R = 1,
CELL_GCM_POINT_SPRITE_RMODE_FROM_S = 2,
CELL_GCM_POINT_SPRITE_TEX0 = 1 << 8,
CELL_GCM_POINT_SPRITE_TEX1 = 1 << 9,
CELL_GCM_POINT_SPRITE_TEX2 = 1 << 10,
CELL_GCM_POINT_SPRITE_TEX3 = 1 << 11,
CELL_GCM_POINT_SPRITE_TEX4 = 1 << 12,
CELL_GCM_POINT_SPRITE_TEX5 = 1 << 13,
CELL_GCM_POINT_SPRITE_TEX6 = 1 << 14,
CELL_GCM_POINT_SPRITE_TEX7 = 1 << 15,
CELL_GCM_POINT_SPRITE_TEX8 = 1 << 16,
CELL_GCM_POINT_SPRITE_TEX9 = 1 << 17,
};
enum
{
CELL_GCM_SHADER_CONTROL_DEPTH_EXPORT = 0xe, ///< shader program exports the depth of the shaded fragment
@ -754,7 +839,7 @@ namespace gcm
RSX_CALL_STACK_EMPTY = 0x00000003,
};
//Fog
// Fog
enum
{
CELL_GCM_FOG_MODE_LINEAR = 0x2601,
@ -765,6 +850,22 @@ namespace gcm
CELL_GCM_FOG_MODE_LINEAR_ABS = 0x0804,
};
// ISO
enum
{
CELL_GCM_TEXTURE_ISO_LOW = 0,
CELL_GCM_TEXTURE_ISO_HIGH = 1,
CELL_GCM_TEXTURE_ANISO_LOW = 0,
CELL_GCM_TEXTURE_ANISO_HIGH = 1,
};
// Depth format
enum
{
CELL_GCM_DEPTH_FORMAT_FIXED = 0,
CELL_GCM_DEPTH_FORMAT_FLOAT = 1,
};
// Surface clear bitfields (aggregates)
enum
{
@ -847,6 +948,9 @@ namespace gcm
CELL_GCM_TEXTURE_LINEAR_LINEAR = 6,
CELL_GCM_TEXTURE_CONVOLUTION_MIN = 7,
CELL_GCM_TEXTURE_CONVOLUTION_MAG = 4,
CELL_GCM_TEXTURE_CONVOLUTION_QUINCUNX = 1,
CELL_GCM_TEXTURE_CONVOLUTION_GAUSSIAN = 2,
CELL_GCM_TEXTURE_CONVOLUTION_QUINCUNX_ALT = 3,
};
enum
@ -887,6 +991,13 @@ namespace gcm
CELL_GCM_TRANSFER_OPERATION_BLEND_PREMULT = 5,
};
enum
{
CELL_GCM_TRANSFER_CONVERSION_DITHER = 0,
CELL_GCM_TRANSFER_CONVERSION_TRUNCATE = 1,
CELL_GCM_TRANSFER_CONVERSION_SUBTRACT_TRUNCATE = 2,
};
enum
{
CELL_GCM_TRANSFER_SCALE_FORMAT_A1R5G5B5 = 1,
@ -912,12 +1023,58 @@ namespace gcm
CELL_GCM_TRANSFER_SURFACE_FORMAT_Y32 = 11,
};
enum
{
CELL_GCM_TRANSFER_SURFACE = 0,
CELL_GCM_TRANSFER_SWIZZLE = 1,
};
enum
{
CELL_GCM_SHIFT_SET_SHADER_CONTROL_CONTROL_TXP = 15,
CELL_GCM_MASK_SET_SHADER_CONTROL_CONTROL_TXP = 0x00008000,
CELL_GCM_IOMAP_FLAG_STRICT_ORDERING = 1 << 1,
};
enum
{
CELL_GCM_CONTEXT_SURFACE2D = 0x313371C3,
CELL_GCM_CONTEXT_SWIZZLE2D = 0x31337A73,
};
enum
{
CELL_GCM_INDEX_RANGE_LABEL_MIN = 64,
CELL_GCM_INDEX_RANGE_LABEL_MAX = 255,
CELL_GCM_INDEX_RANGE_LABEL_COUNT = (256 - 64),
CELL_GCM_INDEX_RANGE_NOTIFY_MAIN_MIN = 0,
CELL_GCM_INDEX_RANGE_NOTIFY_MAIN_MAX = 255,
CELL_GCM_INDEX_RANGE_NOTIFY_MAIN_COUNT = 256,
CELL_GCM_INDEX_RANGE_REPORT_MAIN_MIN = 0,
CELL_GCM_INDEX_RANGE_REPORT_MAIN_MAX = (1024 * 1024 - 1),
CELL_GCM_INDEX_RANGE_REPORT_MAIN_COUNT = (1024 * 1024),
CELL_GCM_INDEX_RANGE_REPORT_LOCAL_MIN = 0,
CELL_GCM_INDEX_RANGE_REPORT_LOCAL_MAX = 2047,
CELL_GCM_INDEX_RANGE_REPORT_LOCAL_COUNT = 2048,
CELL_GCM_INDEX_RANGE_TILE_MIN = 0,
CELL_GCM_INDEX_RANGE_TILE_MAX = 14,
CELL_GCM_INDEX_RANGE_TILE_COUNT = 15,
CELL_GCM_INDEX_RANGE_ZCULL_MIN = 0,
CELL_GCM_INDEX_RANGE_ZCULL_MAX = 7,
CELL_GCM_INDEX_RANGE_ZCULL_COUNT = 8,
};
enum
{
CELL_GCM_DISPLAY_FIELD_TOP = 1,
CELL_GCM_DISPLAY_FIELD_BOTTOM = 0,
};
enum
{
CELL_GCM_USER_CLIP_PLANE_DISABLE = 0,
@ -938,6 +1095,36 @@ namespace gcm
CELL_GCM_POLYGON_MODE_FILL = 0x1B02,
};
enum
{
CELL_GCM_CLEAR_Z = 1 << 0,
CELL_GCM_CLEAR_S = 1 << 1,
CELL_GCM_CLEAR_R = 1 << 4,
CELL_GCM_CLEAR_G = 1 << 5,
CELL_GCM_CLEAR_B = 1 << 6,
CELL_GCM_CLEAR_A = 1 << 7,
CELL_GCM_CLEAR_M = 0xf3
};
enum
{
CELL_GCM_VERTEX_S1 = 1,
CELL_GCM_VERTEX_F = 2,
CELL_GCM_VERTEX_SF = 3,
CELL_GCM_VERTEX_UB = 4,
CELL_GCM_VERTEX_S32K = 5,
CELL_GCM_VERTEX_CMP = 6,
CELL_GCM_VERTEX_UB256 = 7,
CELL_GCM_VERTEX_S16_NR = 1,
CELL_GCM_VERTEX_F32 = 2,
CELL_GCM_VERTEX_F16 = 3,
CELL_GCM_VERTEX_U8_NR = 4,
CELL_GCM_VERTEX_S16_UN = 5,
CELL_GCM_VERTEX_S11_11_10_NR = 6,
CELL_GCM_VERTEX_U8_UN = 7,
};
enum
{
CELL_GCM_WINDOW_ORIGIN_TOP = 0,