notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
psx_gpu: switch enhancement to 2048 width
[pcsx_rearmed.git]
/
plugins
/
gpu_neon
/
psx_gpu
/
psx_gpu.h
diff --git
a/plugins/gpu_neon/psx_gpu/psx_gpu.h
b/plugins/gpu_neon/psx_gpu/psx_gpu.h
index
49425ce
..
71b99cd
100644
(file)
--- a/
plugins/gpu_neon/psx_gpu/psx_gpu.h
+++ b/
plugins/gpu_neon/psx_gpu/psx_gpu.h
@@
-53,6
+53,13
@@
typedef enum
RENDER_STATE_MASK_EVALUATE = 0x20,
} render_state_enum;
RENDER_STATE_MASK_EVALUATE = 0x20,
} render_state_enum;
+typedef enum
+{
+ RENDER_INTERLACE_ENABLED = 0x1,
+ RENDER_INTERLACE_ODD = 0x2,
+ RENDER_DOUBLE_MODE = 0x4,
+} render_mode_enum;
+
typedef struct
{
u16 left_x;
typedef struct
{
u16 left_x;
@@
-116,7
+123,7
@@
typedef struct
vec_4x32u g_block_span;
vec_4x32u b_block_span;
vec_4x32u g_block_span;
vec_4x32u b_block_span;
- // 7
2
bytes
+ // 7
6
bytes
u32 b;
u32 b_dy;
u32 b;
u32 b_dy;
@@
-130,14
+137,14
@@
typedef struct
u32 dirty_textures_8bpp_alternate_mask;
u32 triangle_color;
u32 dirty_textures_8bpp_alternate_mask;
u32 triangle_color;
- u32 primitive_color;
-
u32 dither_table[4];
struct render_block_handler_struct *render_block_handler;
void *texture_page_ptr;
u32 dither_table[4];
struct render_block_handler_struct *render_block_handler;
void *texture_page_ptr;
+ void *texture_page_base;
u16 *clut_ptr;
u16 *vram_ptr;
u16 *clut_ptr;
u16 *vram_ptr;
+ u16 *vram_out_ptr;
// 26 bytes
u16 render_state_base;
// 26 bytes
u16 render_state_base;
@@
-173,10
+180,18
@@
typedef struct
u8 texture_window_y;
u8 primitive_type;
u8 texture_window_y;
u8 primitive_type;
+ u8 render_mode;
+
+ // enhancement stuff
+ u16 *enhancement_buf_ptr;
+ s16 saved_viewport_start_x;
+ s16 saved_viewport_start_y;
+ s16 saved_viewport_end_x;
+ s16 saved_viewport_end_y;
// Align up to 64 byte boundary to keep the upcoming buffers cache line
// Align up to 64 byte boundary to keep the upcoming buffers cache line
- // aligned
- u8 reserved_a[
1
];
+ // aligned
, also make reachable with single immediate addition
+ u8 reserved_a[
240
];
// 8KB
block_struct blocks[MAX_BLOCKS_PER_ROW];
// 8KB
block_struct blocks[MAX_BLOCKS_PER_ROW];
@@
-189,13
+204,6
@@
typedef struct
u8 texture_4bpp_cache[32][256 * 256];
u8 texture_8bpp_even_cache[16][256 * 256];
u8 texture_8bpp_odd_cache[16][256 * 256];
u8 texture_4bpp_cache[32][256 * 256];
u8 texture_8bpp_even_cache[16][256 * 256];
u8 texture_8bpp_odd_cache[16][256 * 256];
-
- u32 pixel_count_mode;
- u32 pixel_compare_mode;
-
- u8 *vram_pixel_counts_a;
- u8 *vram_pixel_counts_b;
- u16 *compare_vram;
} psx_gpu_struct;
typedef struct __attribute__((aligned(16)))
} psx_gpu_struct;
typedef struct __attribute__((aligned(16)))
@@
-232,7
+240,7
@@
u32 texture_region_mask(s32 x1, s32 y1, s32 x2, s32 y2);
void flush_render_block_buffer(psx_gpu_struct *psx_gpu);
void initialize_psx_gpu(psx_gpu_struct *psx_gpu, u16 *vram);
void flush_render_block_buffer(psx_gpu_struct *psx_gpu);
void initialize_psx_gpu(psx_gpu_struct *psx_gpu, u16 *vram);
-
void gpu_parse(psx_gpu_struct *psx_gpu, u32 *list, u32 size
);
+
u32 gpu_parse(psx_gpu_struct *psx_gpu, u32 *list, u32 size, u32 *last_command
);
void triangle_benchmark(psx_gpu_struct *psx_gpu);
void triangle_benchmark(psx_gpu_struct *psx_gpu);