Mercurial > hg > Members > kono > Cerium
diff Renderer/Engine/viewer.cc @ 1026:55f3c5976959
create_pp_task fix.
author | tkaito |
---|---|
date | Tue, 09 Nov 2010 18:14:28 +0900 |
parents | 360f8eba78f1 |
children | 3191cae6f7a2 |
line wrap: on
line diff
--- a/Renderer/Engine/viewer.cc Sun Nov 07 04:24:24 2010 +0900 +++ b/Renderer/Engine/viewer.cc Tue Nov 09 18:14:28 2010 +0900 @@ -690,7 +690,7 @@ sg_division+residue,4,6,1); pptask[spe_num] = 0; - int count= 0; + //int count= 0; int k = 0; while (sg) { @@ -713,7 +713,7 @@ pptask[k]->set_param(2,(memaddr)sg->texture_info.t_h); pptask[k]->set_param(3,(memaddr)sg->texture_info.scale_max); - pptask[k]->set_outData(0, &pp->tri[pp->info.size++], sizeof(TrianglePack)); + //pptask[k]->set_outData(0, &pp->tri[pp->info.size++], sizeof(TrianglePack)); } if (sg->children != NULL) { sg = sg->children; @@ -734,9 +734,18 @@ } } } - count++; + k++; } - + for (int k = 0; k < spe_num; k++) { + task_array[k]->spawn_task_array(pptask[k]->next()); + task_array[k]->set_cpu(SPE_ANY); + task_array[k]->spawn(); + if (sgroot->gtask_array != NULL) { + HTaskPtr game_task_array = sgroot->gtask_array->get_task_array(); + task_create_pp->wait_for(game_task_array); + } + task_next->wait_for(task_create_pp); + } } void