# HG changeset patch # User Shinji KONO # Date 1258190474 -32400 # Node ID 4e44147d78eee61129ea4a98115ccd819bef7b62 # Parent ff4d33ef8ab0adbc4cff2432d8f941575dbdbf69 remove uncessary Task Name definision diff -r ff4d33ef8ab0 -r 4e44147d78ee Renderer/Engine/Func.h --- a/Renderer/Engine/Func.h Thu Nov 12 17:06:49 2009 +0900 +++ b/Renderer/Engine/Func.h Sat Nov 14 18:21:14 2009 +0900 @@ -1,38 +1,39 @@ enum { + INIT, SDL_INIT, FINISH, - VIEWER_RUN_INIT, - VIEWER_RUN_LOOP, - VIEWER_RUN_DRAW, - VIEWER_RUN_FINISH, + + Create_SGP, + Update_SGP, + CreatePolygon, + CreatePolygonFromSceneGraph, + CreateSpan, + + DrawSpan, + DrawSpanEnd, + DrawBack, + + LoadTexture, + SetTexture, - TASK_INIT_TEXTURE, - TASK_CREATE_SGP, - TASK_UPDATE_SGP, - TASK_CREATE_PP, - TASK_CREATE_PP2, - TASK_CREATE_SPAN, - TASK_CS_START, - TASK_CS_RUN, - TASK_DRAW_SPAN, - TASK_DRAW_SPAN_END, - TASK_DRAW_BACK, - TASK_SET_TEXTURE, - TASK_MOVE, - TASK_DRAW, - TASK_DUMMY, + Move, + Draw, + + Dummy, - CHAINCAL_TASK, - CHAININIT_TASK, + UpdateKey, + InitKey, + + ShowTime, + Switch, + + ChainMove, + + RUN_FINISH, - TASK_SWITCH, - SHOW_TIME, - UPDATE_KEY, - INIT_KEY_TASK, - CHAIN_MOVE, }; #define DATA_ID 0 diff -r ff4d33ef8ab0 -r 4e44147d78ee Renderer/Engine/show_time.cc --- a/Renderer/Engine/show_time.cc Thu Nov 12 17:06:49 2009 +0900 +++ b/Renderer/Engine/show_time.cc Sat Nov 14 18:21:14 2009 +0900 @@ -10,19 +10,19 @@ HTaskPtr pre_show; */ /* - show = manager->create_task(SHOW_TIME); + show = manager->create_task(ShowTime); show->set_cpu(SPE_0); show->spawn(); printf("testですよ\n"); */ /* - pre_show = manager->create_task(SHOW_TIME); + pre_show = manager->create_task(ShowTime); pre_show->set_cpu((CPU_TYPE)((int)SPE_0)); pre_show->spawn(); for (int i = 1; i < 6; i++) { - show = manager->create_task(SHOW_TIME); + show = manager->create_task(ShowTime); show->set_cpu((CPU_TYPE)((int)SPE_0 + i)); show->wait_for(pre_show); show->spawn(); diff -r ff4d33ef8ab0 -r 4e44147d78ee Renderer/Engine/spe/DrawSpan.cc --- a/Renderer/Engine/spe/DrawSpan.cc Thu Nov 12 17:06:49 2009 +0900 +++ b/Renderer/Engine/spe/DrawSpan.cc Sat Nov 14 18:21:14 2009 +0900 @@ -485,7 +485,7 @@ free(free_spack); - TaskPtr nextTask = smanager->create_task(TASK_DRAW_SPAN_END); + TaskPtr nextTask = smanager->create_task(DrawSpanEnd); nextTask->add_param((int)g); smanager->wait_task(nextTask); diff -r ff4d33ef8ab0 -r 4e44147d78ee Renderer/Engine/spe/spe-main.cc --- a/Renderer/Engine/spe/spe-main.cc Thu Nov 12 17:06:49 2009 +0900 +++ b/Renderer/Engine/spe/spe-main.cc Sat Nov 14 18:21:14 2009 +0900 @@ -22,23 +22,23 @@ void task_init(Scheduler *s) { - SchedRegisterTask(TASK_INIT_TEXTURE, LoadTexture); - SchedRegisterTask(TASK_SET_TEXTURE, SetTexture); - SchedRegisterTask(TASK_DRAW_SPAN, DrawSpan); - SchedRegisterTask(TASK_DRAW_SPAN_END, DrawSpanEnd); + SchedRegister( LoadTexture); + SchedRegister( SetTexture); + SchedRegister( DrawSpan); + SchedRegister( DrawSpanEnd); - SchedRegisterTask(CHAINCAL_TASK, ChainCal); - SchedRegisterTask(CHAININIT_TASK, ChainInit); + SchedRegister( ChainCal); + SchedRegister( ChainInit); #if 0 - SchedRegisterTask(TASK_DRAW_SPAN2, DrawSpanRenew); + SchedRegister( DrawSpanRenew); #endif - SchedRegisterTask(TASK_DRAW_BACK, DrawBack); + SchedRegister( DrawBack); - SchedRegisterTask(TASK_CREATE_SPAN, CreateSpan); - //SchedRegisterTask(TASK_CREATE_PP, CreatePolygon); + SchedRegister( CreateSpan); + //SchedRegister( CreatePolygon); - SchedRegisterTask(SHOW_TIME, ShowTime); + SchedRegister( ShowTime); - SchedRegisterTask(INIT_KEY_TASK, InitKey); - SchedRegisterTask(UPDATE_KEY, UpdateKey); + SchedRegister( InitKey); + SchedRegister( UpdateKey); } diff -r ff4d33ef8ab0 -r 4e44147d78ee Renderer/Engine/task/DrawSpan.cc --- a/Renderer/Engine/task/DrawSpan.cc Thu Nov 12 17:06:49 2009 +0900 +++ b/Renderer/Engine/task/DrawSpan.cc Sat Nov 14 18:21:14 2009 +0900 @@ -481,7 +481,7 @@ free(free_spack); - TaskPtr nextTask = smanager->create_task(TASK_DRAW_SPAN_END); + TaskPtr nextTask = smanager->create_task(DrawSpanEnd); nextTask->add_param((memaddr)g); smanager->wait_task(nextTask); diff -r ff4d33ef8ab0 -r 4e44147d78ee Renderer/Engine/task/task_init.cc --- a/Renderer/Engine/task/task_init.cc Thu Nov 12 17:06:49 2009 +0900 +++ b/Renderer/Engine/task/task_init.cc Sat Nov 14 18:21:14 2009 +0900 @@ -36,31 +36,62 @@ void task_initialize() { - SchedRegisterTask(TASK_CREATE_SGP, Create_SGP); - SchedRegisterTask(TASK_UPDATE_SGP, Update_SGP); - SchedRegisterTask(TASK_CREATE_PP, CreatePolygon); - SchedRegisterTask(TASK_CREATE_PP2, CreatePolygonFromSceneGraph); - SchedRegisterTask(TASK_CREATE_SPAN, CreateSpan); +#if 0 + SchedRegister(TASK_CREATE_SGP, Create_SGP); + SchedRegister(TASK_UPDATE_SGP, Update_SGP); + SchedRegister(TASK_CREATE_PP, CreatePolygon); + SchedRegister(TASK_CREATE_PP2, CreatePolygonFromSceneGraph); + SchedRegister(TASK_CREATE_SPAN, CreateSpan); - SchedRegisterTask(TASK_DRAW_SPAN, DrawSpan); - SchedRegisterTask(TASK_DRAW_SPAN_END, DrawSpanEnd); -// SchedRegisterTask(TASK_DRAW_SPAN2, DrawSpanRenew); - SchedRegisterTask(TASK_DRAW_BACK, DrawBack); + SchedRegister(TASK_DRAW_SPAN, DrawSpan); + SchedRegister(TASK_DRAW_SPAN_END, DrawSpanEnd); +// SchedRegister(TASK_DRAW_SPAN2, DrawSpanRenew); + SchedRegister(TASK_DRAW_BACK, DrawBack); - SchedRegisterTask(TASK_INIT_TEXTURE, LoadTexture); - SchedRegisterTask(TASK_SET_TEXTURE, SetTexture); + SchedRegister(TASK_INIT_TEXTURE, LoadTexture); + SchedRegister(TASK_SET_TEXTURE, SetTexture); - SchedRegisterTask(TASK_MOVE, Move); - SchedRegisterTask(TASK_DRAW, Draw); + SchedRegister(TASK_MOVE, Move); + SchedRegister(TASK_DRAW, Draw); - SchedRegisterTask(TASK_DUMMY, Dummy); + SchedRegister(TASK_DUMMY, Dummy); - SchedRegisterTask(UPDATE_KEY, UpdateKey); - SchedRegisterTask(INIT_KEY_TASK, InitKey); + SchedRegister(UPDATE_KEY, UpdateKey); + SchedRegister(INIT_KEY_TASK, InitKey); - SchedRegisterTask(SHOW_TIME, ShowTime); - SchedRegisterTask(TASK_SWITCH, Switch); + SchedRegister(SHOW_TIME, ShowTime); + SchedRegister(TASK_SWITCH, Switch); // usr - SchedRegisterTask(CHAIN_MOVE, ChainMove); + SchedRegister(CHAIN_MOVE, ChainMove); +#else + SchedRegister( Create_SGP); + SchedRegister( Update_SGP); + SchedRegister( CreatePolygon); + SchedRegister(CreatePolygonFromSceneGraph); + SchedRegister( CreateSpan); + + SchedRegister( DrawSpan); + SchedRegister( DrawSpanEnd); +// SchedRegister(DrawSpanRenew); + SchedRegister( DrawBack); + + SchedRegister( LoadTexture); + SchedRegister( SetTexture); + + SchedRegister( Move); + SchedRegister( Draw); + + SchedRegister( Dummy); + + SchedRegister( UpdateKey); + SchedRegister( InitKey); + + SchedRegister( ShowTime); + SchedRegister( Switch); + + // usr + SchedRegister( ChainMove); +#endif + } diff -r ff4d33ef8ab0 -r 4e44147d78ee Renderer/Engine/viewer.cc --- a/Renderer/Engine/viewer.cc Thu Nov 12 17:06:49 2009 +0900 +++ b/Renderer/Engine/viewer.cc Sat Nov 14 18:21:14 2009 +0900 @@ -146,10 +146,10 @@ spackList[i-1].init(i*split_screen_h); } - task_next = manager->create_task(TASK_DUMMY); + task_next = manager->create_task(Dummy); for (int i = 0; i < spe_num; i++) { - task_tex = manager->create_task(TASK_INIT_TEXTURE); + task_tex = manager->create_task(LoadTexture); /* * ここはもう少しわかりやすい使い方がいいかもしれぬ。こんなもん? */ @@ -167,7 +167,7 @@ { HTaskPtr task_next = initLoop(); // key の情報を格納する領域を確保する (global_alloc(KEY_STATUS)) - HTaskPtr init_key_task = manager->create_task(INIT_KEY_TASK); + HTaskPtr init_key_task = manager->create_task(InitKey); init_key_task->set_cpu(SPE_0); init_key_task->spawn(); @@ -182,7 +182,7 @@ /* test */ - HTaskPtr task_switch = manager->create_task(TASK_SWITCH); + HTaskPtr task_switch = manager->create_task(Switch); task_switch->wait_for(task_next); task_switch->set_post(post2runMoveDrawLoop, (void*)this, 0); task_switch->spawn(); @@ -239,27 +239,27 @@ Viewer *viewer = (Viewer*)viewer_; // 同じ PPE 上なので sgroot(ポインタ) を add_param で送る。 - //HTaskPtr send_key_task = viewer->manager->create_task(SEND_KEY); + //HTaskPtr send_key_task = viewer->manager->create_task(SendKey); //send_key_task->add_param((int)sgroot); // set input data -> viewer keyPtr viewer->getKey(); - HTaskPtr update_key = viewer->manager->create_task(UPDATE_KEY); + HTaskPtr update_key = viewer->manager->create_task(UpdateKey); update_key->add_inData(viewer->keyPtr, sizeof(key_stat)); update_key->set_cpu(SPE_0); update_key->spawn(); /* TASK_MOVE は外から引数で取ってくるべき */ //HTaskPtr move_task = viewer->manager->create_task(viewer->app->move_taskid); - HTaskPtr move_task = viewer->manager->create_task(TASK_MOVE); + HTaskPtr move_task = viewer->manager->create_task(Move); //move_task->add_param(sgroot); - //HTaskPtr draw_task = viewer->manager->create_task(TASK_DRAW); + //HTaskPtr draw_task = viewer->manager->create_task(Draw); /* rendering task test */ - HTaskPtr draw_task = viewer->manager->create_task(TASK_DUMMY); - HTaskPtr draw_dummy = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr draw_task = viewer->manager->create_task(Dummy); + HTaskPtr draw_dummy = viewer->manager->create_task(Dummy); - HTaskPtr switch_task = viewer->manager->create_task(TASK_SWITCH); + HTaskPtr switch_task = viewer->manager->create_task(Switch); viewer->draw_dummy = draw_dummy; switch_task->wait_for(draw_dummy); draw_task->set_post(post2speRendering, (void*)viewer, 0); @@ -279,7 +279,7 @@ post2speRunLoop(void *viewer_) { Viewer *viewer = (Viewer *)viewer_; - HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr task_next = viewer->manager->create_task(Dummy); viewer->run_move(task_next); } #endif @@ -298,7 +298,7 @@ post2runMove(void *viewer_) { Viewer *viewer = (Viewer*)viewer_; - HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr task_next = viewer->manager->create_task(Dummy); viewer->run_move(task_next); } #endif @@ -320,7 +320,7 @@ post2rendering(SchedTask *s, void *viewer_, void *arg) { Viewer *viewer = (Viewer *)viewer_; - HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr task_next = viewer->manager->create_task(Dummy); viewer->rendering(task_next); } @@ -341,7 +341,7 @@ post2runLoop(SchedTask *s, void *viewer_, void *arg) { Viewer *viewer = (Viewer*)viewer_; - HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr task_next = viewer->manager->create_task(Dummy); viewer->run_loop(task_next); psx_sync_n(); @@ -377,7 +377,7 @@ post2runDraw(SchedTask *s, void *viewer_, void *arg) { Viewer *viewer = (Viewer*)viewer_; - HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr task_next = viewer->manager->create_task(Dummy); viewer->run_draw(task_next); } @@ -410,7 +410,7 @@ post2speRendering(SchedTask *s, void *viewer_, void *arg) { Viewer *viewer = (Viewer*)viewer_; - HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr task_next = viewer->manager->create_task(Dummy); viewer->spe_rendering(task_next); } @@ -429,7 +429,7 @@ post2speDraw(SchedTask *s, void *viewer_, void *arg) { Viewer *viewer = (Viewer*)viewer_; - HTaskPtr task_next = viewer->manager->create_task(TASK_DUMMY); + HTaskPtr task_next = viewer->manager->create_task(Dummy); viewer->spe_draw(task_next); } @@ -448,7 +448,7 @@ void Viewer::common_rendering(HTaskPtr task_next) { - HTaskPtr task_create_pp = manager->create_task(TASK_CREATE_PP2); + HTaskPtr task_create_pp = manager->create_task(CreatePolygonFromSceneGraph); // SceneGraph(木構造) -> PolygonPack @@ -466,7 +466,7 @@ int index_end = (index_start + range >= spackList_length) ? spackList_length : index_start + range; - HTaskPtr task_create_sp = manager->create_task(TASK_CREATE_SPAN); + HTaskPtr task_create_sp = manager->create_task(CreateSpan); task_create_sp->add_inData(ppack, sizeof(PolygonPack)); task_create_sp->add_inData(spackList_ptr, sizeof(SpanPack*)*spackList_length_align); @@ -501,7 +501,7 @@ { HTaskPtr task_draw; - //task_next = manager->create_task(TASK_DUMMY); + //task_next = manager->create_task(Dummy); //task_next->set_post(post2runLoop, (void*)this); ppack->clear(); @@ -518,7 +518,7 @@ while (startx < this->width) { if (spack->info.size > 0) { // Draw SpanPack - task_draw = manager->create_task(TASK_DRAW_SPAN); + task_draw = manager->create_task(DrawSpan); task_draw->add_inData(spack, sizeof(SpanPack)); task_draw->add_param( diff -r ff4d33ef8ab0 -r 4e44147d78ee TaskManager/ChangeLog --- a/TaskManager/ChangeLog Thu Nov 12 17:06:49 2009 +0900 +++ b/TaskManager/ChangeLog Sat Nov 14 18:21:14 2009 +0900 @@ -1,3 +1,18 @@ +2009-11-14 Shinji KONO + + 要するに、SPE task 側から addOutData できればよい。 + でも、別に、PPE側から計算してもよいはずだけどね。 + そうすれば、renew task は取り外せる。 + + SchedDefineTask1(DrawSpanEnd,draw_span_end); + で、名前を指定させておいて、さらに、 + SchedExternTask(DrawSpanEnd); + SchedRegisterTask(TASK_DRAW_SPAN_END, DrawSpanEnd); + で、新しく名前を要求するのって、なんとかならんの? 読みづらいんだよ。 + DrawSpanEnd を、そのまま使ってもよさそうだけど? + + せっかく、renew task を外したのに、HD crash で失ってしまいました。 + 2009-10-11 Shinji KONO 単純な、rbuf, wbuf + write return size の task のAPI diff -r ff4d33ef8ab0 -r 4e44147d78ee TaskManager/kernel/schedule/Scheduler.h --- a/TaskManager/kernel/schedule/Scheduler.h Thu Nov 12 17:06:49 2009 +0900 +++ b/TaskManager/kernel/schedule/Scheduler.h Sat Nov 14 18:21:14 2009 +0900 @@ -210,6 +210,9 @@ #define SchedRegisterTask(cmd, str) \ register_task(cmd, runTask_##str); +#define SchedRegister(str) \ + register_task(str, runTask_##str); + #define SchedDefineDynamicTask(str,segment) \ SchedDefineTask(str) @@ -231,8 +234,10 @@ _ovly_table[segment].size, \ runTask_##str, \ runTask_##str##_offset); +#define SchedRegisterDynamic(str, segment) SchedRegisterDynamicTask(str, str, segment) #else #define SchedRegisterDynamicTask(cmd, str, segment) SchedRegisterTask(cmd, str) +#define SchedRegisterDynamic(str, segment) SchedRegisterDynamicTask(str, str, segment) #endif