X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fgpu_neon%2Fpsx_gpu%2Fpsx_gpu.h;h=55f835be0d3baabf89ec8f832e97b89be0c5e568;hb=a5d30afeabe63d826d8fc1dc86aedf72cf03b457;hp=846658cc179c309eb94e5bff54314e338cb033bd;hpb=b194a2ecd43debbb3724e332b660b993725acd52;p=pcsx_rearmed.git diff --git a/plugins/gpu_neon/psx_gpu/psx_gpu.h b/plugins/gpu_neon/psx_gpu/psx_gpu.h index 846658cc..55f835be 100644 --- a/plugins/gpu_neon/psx_gpu/psx_gpu.h +++ b/plugins/gpu_neon/psx_gpu/psx_gpu.h @@ -15,6 +15,8 @@ #ifndef PSX_GPU_H #define PSX_GPU_H +#include "vector_types.h" + typedef enum { PRIMITIVE_TYPE_TRIANGLE = 0, @@ -180,6 +182,8 @@ typedef struct u16 clut_settings; u16 texture_settings; + u32 *reciprocal_table_ptr; + // enhancement stuff u16 *enhancement_buf_ptr; u16 *enhancement_current_buf_ptr; @@ -192,7 +196,7 @@ typedef struct // Align up to 64 byte boundary to keep the upcoming buffers cache line // aligned, also make reachable with single immediate addition - u8 reserved_a[164]; + u8 reserved_a[160]; // 8KB block_struct blocks[MAX_BLOCKS_PER_ROW]; @@ -205,6 +209,7 @@ 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]; + int use_dithering; } psx_gpu_struct; typedef struct __attribute__((aligned(16))) @@ -220,6 +225,8 @@ typedef struct __attribute__((aligned(16))) s16 x; s16 y; + + u32 padding; } vertex_struct; void render_block_fill(psx_gpu_struct *psx_gpu, u32 color, u32 x, u32 y, @@ -245,5 +252,9 @@ u32 gpu_parse(psx_gpu_struct *psx_gpu, u32 *list, u32 size, u32 *last_command); void triangle_benchmark(psx_gpu_struct *psx_gpu); +void compute_all_gradients(psx_gpu_struct * __restrict__ psx_gpu, + const vertex_struct * __restrict__ a, const vertex_struct * __restrict__ b, + const vertex_struct * __restrict__ c); + #endif