# HG changeset patch # User LordOfWar # Date 2009-10-25 15:03:03 # Node ID 5b97ab8e1501f8cc19599063c9443d57ee52ddab # Parent 92b51bd6668bdf9761ad54ee6c0ca02bf4d1bc8d added some more code to the smarter frame finder, and indented some code diff --git a/src/server/distrend.c b/src/server/distrend.c --- a/src/server/distrend.c +++ b/src/server/distrend.c @@ -476,18 +476,17 @@ int find_jobframe_new(struct distrenjob distrenjob_ptr && !distrenjob_ptr->hibernate && distrenjob_ptr->prev_frame_index < distrenjob_ptr->total_frames; distrenjob_ptr = distrenjob_ptr->next) { - power_difference = (general_info.total_render_power / general_info.total_priority_pieces)*distrenjob_ptr->priority; + power_difference = (general_info.total_render_power / general_info.total_priority_pieces)*(11-distrenjob_ptr->priority); power_difference = power_difference - distrenjob_ptr->assigned_render_power; if(power_difference > greatest_power_difference) { job_to_render = distrenjob_ptr; greatest_power_difference = power_difference; + found = 1; } } - find_jobframe_from_job(job_to_render, job, frame); - if(!found) { fprintf(stderr, "No more jobs to render\n"); @@ -495,6 +494,9 @@ int find_jobframe_new(struct distrenjob return 1; } + find_jobframe_from_job(job_to_render, job, frame); + job_to_render->assigned_render_power = job_to_render->assigned_render_power + rend_pwr; + return 0; } @@ -503,6 +505,7 @@ int find_jobframe_again(struct distrenjo { if(general_info.hibernate) return 1; + short int found; struct distrenjob *distrenjob_ptr; @@ -703,6 +706,8 @@ void importGeneralInfo() general_info.free_clients = 0; general_info.rendering_clients = 0; general_info.timestamp = 0; + general_info.total_render_power = 0; + general_info.total_priority_pieces = 0; xmlFreeDoc(doc); } @@ -1073,6 +1078,8 @@ int main(int argc, char *argv[]) general_info.highest_jobnum = 0; general_info.hibernate = 0; general_info.timestamp = 0; + general_info.total_render_power = 0; + general_info.total_priority_pieces = 0; int command; jobnum_t jobnum; @@ -1097,16 +1104,16 @@ int main(int argc, char *argv[]) for(counter = 0; counter < argc; counter ++) { if(strcmp(argv[counter], "-h") == 0) - { - fprintf(stderr, "Usage: distrend [option] \nStarts the distrend server\n\t-h\tshow this help\n\t-t\tlaunches queue testing interface \n"); - return 2; - } + { + fprintf(stderr, "Usage: distrend [option] \nStarts the distrend server\n\t-h\tshow this help\n\t-t\tlaunches queue testing interface \n"); + return 2; + } else if(strcmp(argv[counter], "-t") == 0) - { - fprintf(stderr, "Entering into test mode...\n\n"); - test=1; - } + { + fprintf(stderr, "Entering into test mode...\n\n"); + test=1; + } } cont = 1; memset(&head, '\0', sizeof(struct distrenjob));