Skip to content

Commit 632b1c7

Browse files
authored
Merge pull request #276 from fjtrujy/improve_sceGu
Improve `sceGu`
2 parents 0767ece + c926419 commit 632b1c7

File tree

39 files changed

+87
-118
lines changed

39 files changed

+87
-118
lines changed

src/gu/pspgu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ void* sceGuSwapBuffers(void);
580580
*
581581
* @par Example: Wait for the currently executing display list
582582
* @code
583-
* sceGuSync(0,0);
583+
* sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
584584
* @endcode
585585
*
586586
* Available what are:

src/gu/sceGuFinish.c

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88

99
#include "guInternal.h"
1010

11-
int sceGuFinish(void)
11+
int sceGuFinishId(unsigned int id)
1212
{
1313
switch (gu_curr_context)
1414
{
1515
case GU_DIRECT:
1616
case GU_SEND:
1717
{
18-
sendCommandi(FINISH, 0);
18+
sendCommandi(FINISH, id & 0xffff);
1919
sendCommandiStall(END, 0);
2020
}
2121
break;
@@ -44,38 +44,7 @@ int sceGuFinish(void)
4444
return size;
4545
}
4646

47-
int sceGuFinishId(unsigned int id)
47+
int sceGuFinish(void)
4848
{
49-
switch (gu_curr_context)
50-
{
51-
case GU_DIRECT:
52-
case GU_SEND:
53-
{
54-
sendCommandi(FINISH, id & 0xffff);
55-
sendCommandiStall(END, 0);
56-
}
57-
break;
58-
59-
case GU_CALL:
60-
{
61-
if (gu_call_mode == 1)
62-
{
63-
sendCommandi(SIGNAL, 0x120000);
64-
sendCommandi(END, 0);
65-
sendCommandiStall(NOP, 0);
66-
}
67-
else
68-
{
69-
sendCommandi(RET, 0);
70-
}
71-
}
72-
break;
73-
}
74-
75-
unsigned int size = ((unsigned int)gu_list->current) - ((unsigned int)gu_list->start);
76-
77-
// go to parent list
78-
gu_curr_context = gu_list->parent_context;
79-
gu_list = &gu_contexts[gu_curr_context].list;
80-
return size;
49+
return sceGuFinishId(0);
8150
}

src/gu/sceGuSync.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ int sceGuSync(int mode, int what)
1515
{
1616
switch (mode)
1717
{
18-
case 0: return sceGeDrawSync(what);
19-
case 3: return sceGeListSync(ge_list_executed[0],what);
20-
case 4: return sceGeListSync(ge_list_executed[1],what);
21-
default: case 1: case 2: return 0;
18+
case GU_SYNC_FINISH: return sceGeDrawSync(what);
19+
case GU_SYNC_LIST: return sceGeListSync(ge_list_executed[0],what);
20+
case GU_SYNC_SEND: return sceGeListSync(ge_list_executed[1],what);
21+
default: case GU_SYNC_SIGNAL: case GU_SYNC_DONE: return 0;
2222
}
2323
}

src/samples/gu/beginobject/beginobject.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ int main(int argc, char* argv[]) {
141141
sceGuEnable(GU_CLIP_PLANES);
142142
sceGuSetCallback(GU_CALLBACK_SIGNAL, gucallback);
143143
sceGuFinish();
144-
sceGuSync(0,0);
144+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
145145
sceDisplayWaitVblankStart();
146146
sceGuDisplay(GU_TRUE);
147147

@@ -217,7 +217,7 @@ int main(int argc, char* argv[]) {
217217
}
218218

219219
sceGuFinish();
220-
sceGuSync(0,0);
220+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
221221

222222
pspDebugScreenSetOffset((int)buffer);
223223
pspDebugScreenSetXY(0,0);

src/samples/gu/blend/blend.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ int main(int argc, char* argv[])
111111
sceGuEnable(GU_BLEND);
112112
sceGuClear(GU_COLOR_BUFFER_BIT|GU_DEPTH_BUFFER_BIT);
113113
sceGuFinish();
114-
sceGuSync(0,0);
114+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
115115

116116
sceDisplayWaitVblankStart();
117117
sceGuDisplay(GU_TRUE);
@@ -180,7 +180,7 @@ int main(int argc, char* argv[])
180180
// wait for next frame
181181

182182
sceGuFinish();
183-
sceGuSync(0,0);
183+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
184184

185185
sceDisplayWaitVblankStart();
186186
sceGuSwapBuffers();

src/samples/gu/blit/blit.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ int main(int argc, char* argv[])
149149
sceGuEnable(GU_TEXTURE_2D);
150150
sceGuClear(GU_COLOR_BUFFER_BIT|GU_DEPTH_BUFFER_BIT);
151151
sceGuFinish();
152-
sceGuSync(0,0);
152+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
153153

154154
sceDisplayWaitVblankStart();
155155
sceGuDisplay(1);
@@ -214,7 +214,7 @@ int main(int argc, char* argv[])
214214
simpleBlit(0,0,SCR_WIDTH,SCR_HEIGHT,0,0);
215215

216216
sceGuFinish();
217-
sceGuSync(0,0);
217+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
218218

219219
float curr_fps = 1.0f / curr_ms;
220220

src/samples/gu/celshading/celshading.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ int main(int argc, char* argv[]) {
132132
sceGuEnable(GU_CULL_FACE);
133133
sceGuEnable(GU_CLIP_PLANES);
134134
sceGuFinish();
135-
sceGuSync(0,0);
135+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
136136
sceDisplayWaitVblankStart();
137137
sceGuDisplay(GU_TRUE);
138138

@@ -207,7 +207,7 @@ int main(int argc, char* argv[]) {
207207
}
208208

209209
sceGuFinish();
210-
sceGuSync(0,0);
210+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
211211

212212
sceCtrlReadBufferPositive(&pad, 1);
213213

src/samples/gu/clut/clut.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ int main(int argc, char* argv[])
9494
sceGuEnable(GU_TEXTURE_2D);
9595
sceGuClear(GU_COLOR_BUFFER_BIT|GU_DEPTH_BUFFER_BIT);
9696
sceGuFinish();
97-
sceGuSync(0,0);
97+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
9898

9999
sceDisplayWaitVblankStart();
100100
sceGuDisplay(GU_TRUE);
@@ -146,7 +146,7 @@ int main(int argc, char* argv[])
146146
// wait for next frame
147147

148148
sceGuFinish();
149-
sceGuSync(0,0);
149+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
150150

151151
sceDisplayWaitVblankStart();
152152
sceGuSwapBuffers();

src/samples/gu/copy/copy.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ int main(int argc, char* argv[])
6363
sceGuFrontFace(GU_CW);
6464
sceGuClear(GU_COLOR_BUFFER_BIT|GU_DEPTH_BUFFER_BIT);
6565
sceGuFinish();
66-
sceGuSync(0,0);
66+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
6767

6868
sceDisplayWaitVblankStart();
6969
sceGuDisplay(1);
@@ -98,7 +98,7 @@ int main(int argc, char* argv[])
9898
sceGuTexSync();
9999

100100
sceGuFinish();
101-
sceGuSync(0,0);
101+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
102102

103103
float curr_fps = 1.0f / curr_ms;
104104

src/samples/gu/cube/cube.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ int main(int argc, char* argv[])
116116
sceGuEnable(GU_TEXTURE_2D);
117117
sceGuEnable(GU_CLIP_PLANES);
118118
sceGuFinish();
119-
sceGuSync(0,0);
119+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
120120

121121
sceDisplayWaitVblankStart();
122122
sceGuDisplay(GU_TRUE);
@@ -169,7 +169,7 @@ int main(int argc, char* argv[])
169169
sceGumDrawArray(GU_TRIANGLES,GU_TEXTURE_32BITF|GU_COLOR_8888|GU_VERTEX_32BITF|GU_TRANSFORM_3D,12*3,0,vertices);
170170

171171
sceGuFinish();
172-
sceGuSync(0,0);
172+
sceGuSync(GU_SYNC_FINISH, GU_SYNC_WHAT_DONE);
173173

174174
sceDisplayWaitVblankStart();
175175
sceGuSwapBuffers();

0 commit comments

Comments
 (0)