45static void drawNV1(
void) {
47 rasterClearTestRegion(0, 0, 8, 16);
49 rasterFlushPrimitive();
52static void drawNV2(
void) {
54 rasterClearTestRegion(0, 0, 8, 16);
56 rasterFlushPrimitive();
59static void drawNV3(
void) {
61 rasterClearTestRegion(0, 0, 16, 32);
63 rasterFlushPrimitive();
68static void drawNH1(
void) {
70 rasterClearTestRegion(0, 0, 32, 4);
72 rasterFlushPrimitive();
75static void drawNH2(
void) {
77 rasterClearTestRegion(0, 0, 32, 4);
79 rasterFlushPrimitive();
82static void drawNH3(
void) {
84 rasterClearTestRegion(0, 0, 48, 4);
86 rasterFlushPrimitive();
91static void drawLE1(
void) {
93 rasterClearTestRegion(0, 0, 16, 16);
95 rasterFlushPrimitive();
98static void drawLE2(
void) {
100 rasterClearTestRegion(0, 0, 24, 8);
102 rasterFlushPrimitive();
105static void drawLE3(
void) {
107 rasterClearTestRegion(0, 0, 16, 24);
109 rasterFlushPrimitive();
114static void drawSF1(
void) {
116 rasterClearTestRegion(0, 0, 8, 12);
118 rasterFlushPrimitive();
121static void drawSF2(
void) {
123 rasterClearTestRegion(0, 0, 4, 8);
125 rasterFlushPrimitive();
128static void drawSF3(
void) {
130 rasterClearTestRegion(0, 0, 8, 12);
132 rasterFlushPrimitive();
137static void drawQS1(
void) {
139 rasterClearTestRegion(0, 0, 16, 16);
143 rasterFlushPrimitive();
146static void drawQS2(
void) {
148 rasterClearTestRegion(0, 0, 20, 16);
151 rasterFlushPrimitive();
180CESTER_TEST(nv1_right_edge_excluded, gpu_raster_phase3,
185CESTER_TEST(nv2_top_xmax_eq_xmin, gpu_raster_phase3,
328CESTER_TEST(le1_top_vertex_right, gpu_raster_phase3,
407CESTER_TEST(sf1_right_eq_2_excluded, gpu_raster_phase3,
417CESTER_TEST(sf1_right_eq_1_excluded, gpu_raster_phase3,
427CESTER_TEST(sf1_narrow_y7_dropped, gpu_raster_phase3,
432CESTER_TEST(sf1_narrow_y8_dropped, gpu_raster_phase3,
501CESTER_TEST(qs1_top_right_interior, gpu_raster_phase3,
521CESTER_TEST(qs1_bottom_right_interior, gpu_raster_phase3,
556CESTER_TEST(qs2_mid_left_interior, gpu_raster_phase3,
561CESTER_TEST(qs2_mid_right_interior, gpu_raster_phase3,
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_NH1_PIXEL_10_0
Definition raster-expected-phase3.h:103
#define EXPECT_LE2_PIXEL_19_0
Definition raster-expected-phase3.h:143
#define EXPECT_NV2_PIXEL_0_9
Definition raster-expected-phase3.h:80
#define EXPECT_SF1_PIXEL_2_0
Definition raster-expected-phase3.h:176
#define EXPECT_SF1_PIXEL_2_3
Definition raster-expected-phase3.h:179
#define EXPECT_SF3_PIXEL_0_0
Definition raster-expected-phase3.h:209
#define EXPECT_NH2_PIXEL_0_0
Definition raster-expected-phase3.h:113
#define EXPECT_SF3_PIXEL_2_2
Definition raster-expected-phase3.h:212
#define EXPECT_QS2_PIXEL_5_9
Definition raster-expected-phase3.h:254
#define EXPECT_LE3_PIXEL_5_10
Definition raster-expected-phase3.h:153
#define EXPECT_SF3_PIXEL_1_3
Definition raster-expected-phase3.h:215
#define EXPECT_QS2_PIXEL_9_0
Definition raster-expected-phase3.h:245
#define EXPECT_NV1_PIXEL_0_5
Definition raster-expected-phase3.h:62
#define EXPECT_NH1_PIXEL_0_0
Definition raster-expected-phase3.h:102
#define EXPECT_NH3_PIXEL_40_0
Definition raster-expected-phase3.h:122
#define EXPECT_NH3_PIXEL_0_0
Definition raster-expected-phase3.h:119
#define EXPECT_SF2_PIXEL_0_0
Definition raster-expected-phase3.h:196
#define EXPECT_LE3_PIXEL_2_0
Definition raster-expected-phase3.h:151
#define EXPECT_NV2_PIXEL_0_1
Definition raster-expected-phase3.h:78
#define EXPECT_LE2_PIXEL_0_0
Definition raster-expected-phase3.h:142
#define EXPECT_NH3_PIXEL_20_0
Definition raster-expected-phase3.h:120
#define EXPECT_QS1_PIXEL_8_7
Definition raster-expected-phase3.h:237
#define EXPECT_NH2_PIXEL_10_0
Definition raster-expected-phase3.h:114
#define EXPECT_SF3_PIXEL_0_5
Definition raster-expected-phase3.h:216
#define EXPECT_NH1_PIXEL_20_0
Definition raster-expected-phase3.h:105
#define EXPECT_SF1_PIXEL_1_3
Definition raster-expected-phase3.h:180
#define EXPECT_SF3_PIXEL_2_0
Definition raster-expected-phase3.h:210
#define EXPECT_NV2_PIXEL_0_0
Definition raster-expected-phase3.h:77
#define EXPECT_LE2_PIXEL_10_4
Definition raster-expected-phase3.h:144
#define EXPECT_QS2_PIXEL_0_0
Definition raster-expected-phase3.h:243
#define EXPECT_NV2_PIXEL_2_9
Definition raster-expected-phase3.h:82
#define EXPECT_SF2_PIXEL_0_1
Definition raster-expected-phase3.h:197
#define EXPECT_SF3_PIXEL_2_1
Definition raster-expected-phase3.h:211
#define EXPECT_NV3_PIXEL_5_10
Definition raster-expected-phase3.h:89
#define EXPECT_QS2_PIXEL_10_0
Definition raster-expected-phase3.h:246
#define EXPECT_NV1_PIXEL_0_9
Definition raster-expected-phase3.h:63
#define EXPECT_NV3_PIXEL_6_0
Definition raster-expected-phase3.h:92
#define EXPECT_SF2_PIXEL_0_4
Definition raster-expected-phase3.h:198
#define EXPECT_NV1_PIXEL_0_0
Definition raster-expected-phase3.h:61
#define EXPECT_LE1_PIXEL_0_0
Definition raster-expected-phase3.h:133
#define EXPECT_SF1_PIXEL_0_8
Definition raster-expected-phase3.h:184
#define EXPECT_SF3_PIXEL_0_3
Definition raster-expected-phase3.h:214
#define EXPECT_QS1_PIXEL_0_7
Definition raster-expected-phase3.h:238
#define EXPECT_QS1_PIXEL_1_7
Definition raster-expected-phase3.h:236
#define EXPECT_NH3_PIXEL_39_0
Definition raster-expected-phase3.h:121
#define EXPECT_SF3_PIXEL_1_2
Definition raster-expected-phase3.h:213
#define EXPECT_QS1_PIXEL_0_0
Definition raster-expected-phase3.h:232
#define EXPECT_QS2_PIXEL_2_5
Definition raster-expected-phase3.h:252
#define EXPECT_QS1_PIXEL_1_8
Definition raster-expected-phase3.h:239
#define EXPECT_SF1_PIXEL_2_2
Definition raster-expected-phase3.h:178
#define EXPECT_SF1_PIXEL_2_1
Definition raster-expected-phase3.h:177
#define EXPECT_QS1_PIXEL_8_0
Definition raster-expected-phase3.h:234
#define EXPECT_NV3_PIXEL_5_20
Definition raster-expected-phase3.h:91
#define EXPECT_SF1_PIXEL_1_6
Definition raster-expected-phase3.h:181
#define EXPECT_LE1_PIXEL_5_4
Definition raster-expected-phase3.h:134
#define EXPECT_LE1_PIXEL_10_0
Definition raster-expected-phase3.h:136
#define EXPECT_SF1_PIXEL_0_6
Definition raster-expected-phase3.h:182
#define EXPECT_NV2_PIXEL_0_5
Definition raster-expected-phase3.h:79
#define EXPECT_LE2_PIXEL_10_5
Definition raster-expected-phase3.h:145
#define EXPECT_QS1_PIXEL_7_0
Definition raster-expected-phase3.h:233
#define EXPECT_SF1_PIXEL_0_7
Definition raster-expected-phase3.h:183
#define EXPECT_NV1_PIXEL_0_10
Definition raster-expected-phase3.h:64
#define EXPECT_NH1_PIXEL_19_0
Definition raster-expected-phase3.h:104
#define EXPECT_NV3_PIXEL_5_0
Definition raster-expected-phase3.h:88
#define EXPECT_NV2_PIXEL_1_9
Definition raster-expected-phase3.h:81
#define EXPECT_LE1_PIXEL_5_9
Definition raster-expected-phase3.h:137
#define EXPECT_NV3_PIXEL_4_0
Definition raster-expected-phase3.h:93
#define EXPECT_NH3_PIXEL_20_1
Definition raster-expected-phase3.h:123
#define EXPECT_NH1_PIXEL_0_1
Definition raster-expected-phase3.h:106
#define EXPECT_LE3_PIXEL_3_0
Definition raster-expected-phase3.h:152
#define EXPECT_QS2_PIXEL_5_10
Definition raster-expected-phase3.h:255
#define EXPECT_QS1_PIXEL_4_4
Definition raster-expected-phase3.h:235
#define EXPECT_QS2_PIXEL_12_5
Definition raster-expected-phase3.h:253
#define EXPECT_NV1_PIXEL_1_0
Definition raster-expected-phase3.h:65
#define EXPECT_LE3_PIXEL_10_20
Definition raster-expected-phase3.h:154
#define EXPECT_SF1_PIXEL_0_0
Definition raster-expected-phase3.h:175
#define EXPECT_LE3_PIXEL_0_0
Definition raster-expected-phase3.h:150
#define EXPECT_QS2_PIXEL_5_0
Definition raster-expected-phase3.h:244
#define EXPECT_NV3_PIXEL_5_19
Definition raster-expected-phase3.h:90
#define EXPECT_LE1_PIXEL_9_0
Definition raster-expected-phase3.h:135
#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