From 208f53a51df8ef2bd8b4bc9140486c1373abd450 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Mon, 17 Aug 2009 21:11:06 +0000 Subject: [PATCH] - client/manager: add ATI stuff to GUI RPCs and manager display svn path=/trunk/boinc/; revision=18853 --- checkin_notes | 12 ++++++++++++ client/cs_statefile.cpp | 6 ++++-- client/scheduler_op.cpp | 2 +- clientgui/DlgItemProperties.cpp | 7 +++++++ lib/gui_rpc_client.h | 4 ++++ lib/gui_rpc_client_ops.cpp | 8 ++++++++ 6 files changed, 36 insertions(+), 3 deletions(-) diff --git a/checkin_notes b/checkin_notes index cf9c5ce487..c11b80f7ac 100644 --- a/checkin_notes +++ b/checkin_notes @@ -6959,3 +6959,15 @@ David 17 Aug 2009 lib/ coproc.cpp,h + +David 17 Aug 2009 + - client/manager: add ATI stuff to GUI RPCs and manager display + + client/ + cs_statefile.cpp + schedule_op.cpp + clientgui/ + DltItemProperties.cpp + lib/ + gui_rpc_client.h + gui_rpc_client_ops.cpp diff --git a/client/cs_statefile.cpp b/client/cs_statefile.cpp index d737b8dc59..460bb5eda6 100644 --- a/client/cs_statefile.cpp +++ b/client/cs_statefile.cpp @@ -865,13 +865,15 @@ int CLIENT_STATE::write_state_gui(MIOFILE& f) { "%d\n" "%d\n" "%d\n" - "%d\n", + "%d\n" + "%d\n", get_primary_platform(), core_client_version.major, core_client_version.minor, core_client_version.release, executing_as_daemon?1:0, - coproc_cuda?1:0 + coproc_cuda?1:0, + coproc_ati?1:0 ); for (i=0; icuda_backoff_interval)); + } + if (pDoc->state.have_ati) { + addProperty(_("ATI GPU work fetch priority"),wxString::Format(wxT("%0.2f"), project->ati_debt)); + x = project->ati_backoff_time - dtime(); + if (x<0) x = 0; + addProperty(_("ATI GPU work fetch deferred for"), FormatTime(x)); + addProperty(_("ATI GPU work fetch deferral interval"), FormatTime(project->ati_backoff_interval)); } addProperty(_("Duration correction factor"),wxString::Format(wxT("%0.4f"), project->duration_correction_factor)); } diff --git a/lib/gui_rpc_client.h b/lib/gui_rpc_client.h index 4be9c32467..e677a8198e 100644 --- a/lib/gui_rpc_client.h +++ b/lib/gui_rpc_client.h @@ -129,6 +129,9 @@ public: double cuda_debt; double cuda_backoff_time; double cuda_backoff_interval; + double ati_debt; + double ati_backoff_time; + double ati_backoff_interval; double duration_correction_factor; bool master_url_fetch_pending; // need to fetch and parse the master URL @@ -354,6 +357,7 @@ public: VERSION_INFO version_info; // populated only if talking to pre-5.6 CC bool executing_as_daemon; // true if Client is running as a service / daemon bool have_cuda; + bool have_ati; CC_STATE(); ~CC_STATE(); diff --git a/lib/gui_rpc_client_ops.cpp b/lib/gui_rpc_client_ops.cpp index 988c8976f9..e6dcd9f42a 100644 --- a/lib/gui_rpc_client_ops.cpp +++ b/lib/gui_rpc_client_ops.cpp @@ -245,6 +245,9 @@ int PROJECT::parse(MIOFILE& in) { if (parse_double(buf, "", cuda_debt)) continue; if (parse_double(buf, "", cuda_backoff_time)) continue; if (parse_double(buf, "", cuda_backoff_interval)) continue; + if (parse_double(buf, "", ati_debt)) continue; + if (parse_double(buf, "", ati_backoff_time)) continue; + if (parse_double(buf, "", ati_backoff_interval)) continue; if (parse_double(buf, "", duration_correction_factor)) continue; if (parse_bool(buf, "master_url_fetch_pending", master_url_fetch_pending)) continue; if (parse_int(buf, "", sched_rpc_pending)) continue; @@ -297,6 +300,9 @@ void PROJECT::clear() { cuda_debt = 0; cuda_backoff_time = 0; cuda_backoff_interval = 0; + ati_debt = 0; + ati_backoff_time = 0; + ati_backoff_interval = 0; duration_correction_factor = 0; master_url_fetch_pending = false; sched_rpc_pending = 0; @@ -693,6 +699,7 @@ void CC_STATE::clear() { platforms.clear(); executing_as_daemon = false; have_cuda = false; + have_ati = false; } PROJECT* CC_STATE::lookup_project(string& str) { @@ -1129,6 +1136,7 @@ int RPC_CLIENT::get_state(CC_STATE& state) { if (parse_bool(buf, "executing_as_daemon", state.executing_as_daemon)) continue; if (parse_bool(buf, "have_cuda", state.have_cuda)) continue; + if (parse_bool(buf, "have_ati", state.have_ati)) continue; if (match_tag(buf, "")) { project = new PROJECT(); project->parse(rpc.fin);