55static void rasterDrawTriA(
void) {
57 rasterClearTestRegion(0, 0, 16, 16);
59 rasterFlushPrimitive();
63static void rasterDrawTriB(
void) {
65 rasterClearTestRegion(0, 0, 4, 4);
67 rasterFlushPrimitive();
71static void rasterDrawTriC(
void) {
73 rasterClearTestRegion(1016, 504, 8, 8);
75 rasterFlushPrimitive();
79static void rasterDrawTriD(
void) {
81 rasterClearTestRegion(0, 0, 16, 16);
83 rasterFlushPrimitive();
87static void rasterDrawTriE(
void) {
89 rasterClearTestRegion(0, 0, 16, 16);
91 rasterFlushPrimitive();
95static void rasterDrawTriF(
void) {
97 rasterClearTestRegion(0, 0, 16, 16);
99 rasterFlushPrimitive();
103static void rasterDrawTriG(
void) {
105 rasterClearTestRegion(0, 0, 16, 8);
107 rasterFlushPrimitive();
111static void rasterDrawTriH(
void) {
113 rasterClearTestRegion(0, 0, 8, 16);
115 rasterFlushPrimitive();
122static void rasterDrawTriI(
void) {
124 rasterClearTestRegion(0, 0, 8, 8);
126 rasterFlushPrimitive();
155CESTER_TEST(triA_pixel_4_0_right_edge, gpu_raster_phase1,
170CESTER_TEST(triA_pixel_3_1_hypotenuse, gpu_raster_phase1,
180CESTER_TEST(triA_pixel_2_2_hypotenuse, gpu_raster_phase1,
190CESTER_TEST(triA_pixel_1_3_hypotenuse, gpu_raster_phase1,
195CESTER_TEST(triA_pixel_0_4_bottom_edge, gpu_raster_phase1,
252CESTER_TEST(triD_pixel_0_0_top_left, gpu_raster_phase1,
257CESTER_TEST(triD_pixel_3_0_top_inner, gpu_raster_phase1,
262CESTER_TEST(triD_pixel_4_0_top_right_corner, gpu_raster_phase1,
267CESTER_TEST(triD_pixel_0_1_left_of_diag, gpu_raster_phase1,
282CESTER_TEST(triD_pixel_4_1_right_edge, gpu_raster_phase1,
287CESTER_TEST(triD_pixel_3_3_bottom_right_interior, gpu_raster_phase1,
292CESTER_TEST(triD_pixel_4_4_bottom_right_vertex, gpu_raster_phase1,
301CESTER_TEST(triE_pixel_0_0_top_left_of_top, gpu_raster_phase1,
306CESTER_TEST(triE_pixel_3_0_top_inner, gpu_raster_phase1,
311CESTER_TEST(triE_pixel_4_0_top_right_vertex, gpu_raster_phase1,
326CESTER_TEST(triE_pixel_2_2_center, gpu_raster_phase1,
331CESTER_TEST(triE_pixel_2_3_near_apex, gpu_raster_phase1,
345CESTER_TEST(triF_collinear_diag_pixel_0_0, gpu_raster_phase1,
350CESTER_TEST(triF_collinear_diag_pixel_1_1, gpu_raster_phase1,
355CESTER_TEST(triF_collinear_diag_pixel_2_2, gpu_raster_phase1,
360CESTER_TEST(triF_collinear_diag_pixel_4_4, gpu_raster_phase1,
369CESTER_TEST(triG_collinear_horiz_pixel_0_0, gpu_raster_phase1,
374CESTER_TEST(triG_collinear_horiz_pixel_5_0, gpu_raster_phase1,
379CESTER_TEST(triG_collinear_horiz_pixel_10_0, gpu_raster_phase1,
388CESTER_TEST(triH_collinear_vert_pixel_0_0, gpu_raster_phase1,
393CESTER_TEST(triH_collinear_vert_pixel_0_5, gpu_raster_phase1,
398CESTER_TEST(triH_collinear_vert_pixel_0_10, gpu_raster_phase1,
407CESTER_TEST(triI_xmax_eq_xmin_pixel_0_0, gpu_raster_phase1,
412CESTER_TEST(triI_xmax_eq_xmin_pixel_1_0, gpu_raster_phase1,
417CESTER_TEST(triI_xmax_eq_xmin_pixel_0_1, gpu_raster_phase1,
422CESTER_TEST(triI_xmax_eq_xmin_pixel_1_1, gpu_raster_phase1,
427CESTER_TEST(triI_xmax_eq_xmin_pixel_0_2_bottom_excluded, gpu_raster_phase1,
CESTER_BODY(static int s_got40;static int s_got80;static uint32_t s_cause;static uint32_t s_epc;static uint32_t s_from;static uint32_t *s_resume;static uint32_t *s_regs;static uint32_t(*s_customhandler)()=NULL;static uint32_t s_oldIMASK;static uint32_t s_oldDPCR;static uint32_t s_oldDICR;uint32_t handler(uint32_t *regs, uint32_t from) { if(from==0x40) s_got40=1;if(from==0x80) s_got80=1;uint32_t cause;uint32_t epc;s_from=from;asm("mfc0 %0, $13\nnop\nmfc0 %1, $14\nnop" :"=r"(cause), "=r"(epc));s_cause=cause;s_epc=epc;if(s_customhandler) { return s_customhandler();} else { return s_resume ?((uint32_t) s_resume) :(epc+4);} } void installExceptionHandlers(uint32_t(*handler)(uint32_t *regs, uint32_t from));void uninstallExceptionHandlers();uint32_t branchbranch1();uint32_t branchbranch2();uint32_t jumpjump1();uint32_t jumpjump2();uint32_t cpu_LWR_LWL_half(uint32_t buff[], uint32_t initial);uint32_t cpu_LWR_LWL_nodelay(uint32_t buff[], uint32_t initial);uint32_t cpu_LWR_LWL_delayed(uint32_t buff[], uint32_t initial);uint32_t cpu_LWR_LWL_load_different(uint32_t buff[], uint32_t initial);uint32_t cpu_LW_LWR(uint32_t buff[], uint32_t initial);uint32_t cpu_delayed_load(uint32_t buff[], uint32_t override);uint32_t cpu_delayed_load_cancelled(uint32_t buff[], uint32_t override);uint64_t cpu_delayed_load_load(uint32_t buff[], uint32_t override);uint32_t linkandload();uint32_t lwandlink();uint32_t nolink();static int s_interruptsWereEnabled;) CESTER_BEFORE_EACH(cpu_tests
CESTER_TEST(cpu_cop0_basic_write_bp, cpu_tests, uint32_t expectedEPC;uint32_t t;volatile uint32_t *ptr=(volatile uint32_t *) 0x58; *ptr=1;__asm__ volatile("" " lui %0, 0b1100101010000000\n" " mtc0 %0, $7\n" " li %0, 0x58\n" " mtc0 %0, $5\n" " li %0, 0xfffffff0\n" " mtc0 %0, $9\n" :"=r"(t));cester_assert_uint_eq(1, *ptr);__asm__ volatile("la %0, 1f\n1:\nsw $0, 0x58($0)" :"=r"(expectedEPC));__asm__ volatile("mtc0 $0, $7\n");cester_assert_uint_eq(0, *ptr);cester_assert_uint_eq(1, s_got40);cester_assert_uint_eq(0, s_got80);cester_assert_uint_eq(0x40, s_from);cester_assert_uint_eq(expectedEPC, s_epc);) CESTER_TEST(cpu_cop0_kseg_write_bp
#define EXPECT_TRI_D_PIXEL_4_1
Definition raster-expected.h:120
#define EXPECT_TRI_B_PIXEL_0_0
Definition raster-expected.h:89
#define EXPECT_TRI_D_PIXEL_0_1
Definition raster-expected.h:117
#define EXPECT_TRI_I_PIXEL_0_2
Definition raster-expected.h:180
#define EXPECT_TRI_I_PIXEL_0_1
Definition raster-expected.h:178
#define EXPECT_TRI_I_PIXEL_1_0
Definition raster-expected.h:177
#define EXPECT_TRI_A_PIXEL_1_0
Definition raster-expected.h:72
#define EXPECT_TRI_G_PIXEL_10_0
Definition raster-expected.h:153
#define EXPECT_TRI_B_PIXEL_1_1
Definition raster-expected.h:92
#define EXPECT_TRI_A_PIXEL_1_3
Definition raster-expected.h:82
#define EXPECT_TRI_B_PIXEL_1_0
Definition raster-expected.h:90
#define EXPECT_TRI_F_PIXEL_1_1
Definition raster-expected.h:147
#define EXPECT_TRI_H_PIXEL_0_5
Definition raster-expected.h:158
#define EXPECT_TRI_F_PIXEL_4_4
Definition raster-expected.h:146
#define EXPECT_TRI_A_PIXEL_3_0
Definition raster-expected.h:74
#define EXPECT_TRI_D_PIXEL_0_0
Definition raster-expected.h:114
#define EXPECT_TRI_D_PIXEL_3_0
Definition raster-expected.h:115
#define EXPECT_TRI_D_PIXEL_3_3
Definition raster-expected.h:121
#define EXPECT_TRI_D_PIXEL_4_4
Definition raster-expected.h:122
#define EXPECT_TRI_E_PIXEL_3_1
Definition raster-expected.h:137
#define EXPECT_TRI_I_PIXEL_0_0
Definition raster-expected.h:176
#define EXPECT_TRI_F_PIXEL_2_2
Definition raster-expected.h:145
#define EXPECT_TRI_E_PIXEL_2_2
Definition raster-expected.h:138
#define EXPECT_TRI_D_PIXEL_4_0
Definition raster-expected.h:116
#define EXPECT_TRI_A_PIXEL_2_0
Definition raster-expected.h:73
#define EXPECT_TRI_A_PIXEL_0_1
Definition raster-expected.h:76
#define EXPECT_TRI_A_PIXEL_0_3
Definition raster-expected.h:81
#define EXPECT_TRI_H_PIXEL_0_10
Definition raster-expected.h:159
#define EXPECT_TRI_E_PIXEL_0_0
Definition raster-expected.h:133
#define EXPECT_TRI_A_PIXEL_3_1
Definition raster-expected.h:78
#define EXPECT_TRI_E_PIXEL_4_0
Definition raster-expected.h:135
#define EXPECT_TRI_E_PIXEL_1_1
Definition raster-expected.h:136
#define EXPECT_TRI_E_PIXEL_2_3
Definition raster-expected.h:139
#define EXPECT_TRI_A_PIXEL_1_2
Definition raster-expected.h:79
#define EXPECT_TRI_F_PIXEL_0_0
Definition raster-expected.h:144
#define EXPECT_TRI_B_PIXEL_0_1
Definition raster-expected.h:91
#define EXPECT_TRI_A_PIXEL_0_0
Definition raster-expected.h:71
#define EXPECT_TRI_E_PIXEL_3_0
Definition raster-expected.h:134
#define EXPECT_TRI_D_PIXEL_1_1
Definition raster-expected.h:118
#define EXPECT_TRI_C_PIXEL_1020_507
Definition raster-expected.h:98
#define EXPECT_TRI_H_PIXEL_0_0
Definition raster-expected.h:157
#define EXPECT_TRI_C_PIXEL_1019_507
Definition raster-expected.h:97
#define EXPECT_TRI_A_PIXEL_4_0
Definition raster-expected.h:75
#define EXPECT_TRI_A_PIXEL_2_2
Definition raster-expected.h:80
#define EXPECT_TRI_C_PIXEL_1019_508
Definition raster-expected.h:99
#define EXPECT_TRI_D_PIXEL_3_1
Definition raster-expected.h:119
#define EXPECT_TRI_G_PIXEL_0_0
Definition raster-expected.h:151
#define EXPECT_TRI_C_PIXEL_1020_508
Definition raster-expected.h:100
#define EXPECT_TRI_I_PIXEL_1_1
Definition raster-expected.h:179
#define EXPECT_TRI_E_PIXEL_2_4
Definition raster-expected.h:140
#define EXPECT_TRI_A_PIXEL_2_1
Definition raster-expected.h:77
#define EXPECT_TRI_G_PIXEL_5_0
Definition raster-expected.h:152
#define EXPECT_TRI_A_PIXEL_0_4
Definition raster-expected.h:83
#define RASTER_CMD_BLUE
Definition raster-helpers.h:127
#define RASTER_CMD_RED
Definition raster-helpers.h:123
#define RASTER_CMD_WHITE
Definition raster-helpers.h:129
#define RASTER_CMD_GREEN
Definition raster-helpers.h:125
#define ASSERT_PIXEL_EQ(expected, x_, y_)
Definition raster-helpers.h:472