mirror of https://github.com/BOINC/boinc.git
- Manager: fix case where the client has only an Intel GPU,
and the manager was acting as if it had no GPUs.
This commit is contained in:
parent
43d8f9f16b
commit
994f4d6b4c
|
@ -413,7 +413,7 @@ int CLIENT_STATE::init() {
|
|||
coprocs.add(coprocs.intel_gpu);
|
||||
}
|
||||
}
|
||||
host_info._coprocs = coprocs;
|
||||
host_info.coprocs = coprocs;
|
||||
|
||||
if (coprocs.none() ) {
|
||||
msg_printf(NULL, MSG_INFO, "No usable GPUs found");
|
||||
|
|
|
@ -470,7 +470,7 @@ bool CAdvancedFrame::CreateMenu() {
|
|||
_("Stop work regardless of preferences")
|
||||
);
|
||||
|
||||
if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) {
|
||||
if (pDoc->state.have_gpu()) {
|
||||
|
||||
#ifndef __WXGTK__
|
||||
menuActivity->AppendSeparator();
|
||||
|
@ -1822,7 +1822,7 @@ void CAdvancedFrame::OnFrameRender(wxTimerEvent& WXUNUSED(event)) {
|
|||
CC_STATUS status;
|
||||
if ((pDoc->IsConnected()) && (0 == pDoc->GetCoreClientStatus(status))) {
|
||||
UpdateActivityModeControls(status);
|
||||
if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) {
|
||||
if (pDoc->state.have_gpu()) {
|
||||
UpdateGPUModeControls(status);
|
||||
}
|
||||
UpdateNetworkModeControls(status);
|
||||
|
|
|
@ -1004,9 +1004,10 @@ void CMainDocument::HandleCompletedRPC() {
|
|||
exchangeBuf->global_prefs = arg1->global_prefs;
|
||||
exchangeBuf->version_info = arg1->version_info;
|
||||
exchangeBuf->executing_as_daemon = arg1->executing_as_daemon;
|
||||
exchangeBuf->host_info = arg1->host_info;
|
||||
exchangeBuf->time_stats = arg1->time_stats;
|
||||
exchangeBuf->have_nvidia = arg1->have_nvidia;
|
||||
exchangeBuf->have_ati = arg1->have_ati;
|
||||
exchangeBuf->have_intel = arg1->have_intel;
|
||||
}
|
||||
break;
|
||||
case RPC_GET_RESULTS:
|
||||
|
|
|
@ -523,7 +523,7 @@ wxMenu *CTaskBarIcon::BuildContextMenu() {
|
|||
pMenu->AppendSeparator();
|
||||
|
||||
m_SnoozeMenuItem = pMenu->AppendCheckItem(ID_TB_SUSPEND, _("Snooze"), wxEmptyString);
|
||||
if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) {
|
||||
if (pDoc->state.have_gpu()) {
|
||||
m_SnoozeGPUMenuItem = pMenu->AppendCheckItem(ID_TB_SUSPEND_GPU, _("Snooze GPU"), wxEmptyString);
|
||||
}
|
||||
|
||||
|
@ -633,7 +633,7 @@ void CTaskBarIcon::AdjustMenuItems(wxMenu* pMenu) {
|
|||
}
|
||||
}
|
||||
|
||||
if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) {
|
||||
if (pDoc->state.have_gpu()) {
|
||||
switch (status.gpu_mode) {
|
||||
case RUN_MODE_NEVER:
|
||||
switch (status.gpu_mode_perm) {
|
||||
|
@ -660,11 +660,9 @@ void CTaskBarIcon::AdjustMenuItems(wxMenu* pMenu) {
|
|||
}
|
||||
break;
|
||||
}
|
||||
if (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel) {
|
||||
if (status.task_mode == RUN_MODE_NEVER) {
|
||||
m_SnoozeGPUMenuItem->Check(false);
|
||||
m_SnoozeGPUMenuItem->Enable(false);
|
||||
}
|
||||
if (status.task_mode == RUN_MODE_NEVER) {
|
||||
m_SnoozeGPUMenuItem->Check(false);
|
||||
m_SnoozeGPUMenuItem->Enable(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -724,7 +722,7 @@ void CTaskBarIcon::UpdateTaskbarStatus() {
|
|||
}
|
||||
strMessage += wxT(".\n");
|
||||
|
||||
if (!comp_suspended && (pDoc->state.have_nvidia || pDoc->state.have_ati || pDoc->state.have_intel)) {
|
||||
if (!comp_suspended && pDoc->state.have_gpu()) {
|
||||
switch(status.gpu_suspend_reason) {
|
||||
case 0:
|
||||
strMessage += _("GPU computing is enabled");
|
||||
|
|
|
@ -268,19 +268,19 @@ void CDlgItemProperties::renderInfos(PROJECT* project_in) {
|
|||
addSection(_("Scheduling"));
|
||||
addProperty(_("Scheduling priority"), wxString::Format(wxT("%0.2f"), project->sched_priority));
|
||||
show_rsc(_("CPU"), project->rsc_desc_cpu);
|
||||
if (pDoc->state.have_nvidia) {
|
||||
if (pDoc->state.host_info.coprocs.have_nvidia()) {
|
||||
show_rsc(
|
||||
wxString(proc_type_name(PROC_TYPE_NVIDIA_GPU), wxConvUTF8),
|
||||
project->rsc_desc_nvidia
|
||||
);
|
||||
}
|
||||
if (pDoc->state.have_ati) {
|
||||
if (pDoc->state.host_info.coprocs.have_ati()) {
|
||||
show_rsc(
|
||||
wxString(proc_type_name(PROC_TYPE_AMD_GPU), wxConvUTF8),
|
||||
project->rsc_desc_ati
|
||||
);
|
||||
}
|
||||
if (pDoc->state.have_intel) {
|
||||
if (pDoc->state.host_info.coprocs.have_intel_gpu()) {
|
||||
show_rsc(
|
||||
wxString(proc_type_name(PROC_TYPE_INTEL_GPU), wxConvUTF8),
|
||||
project->rsc_desc_intel_gpu
|
||||
|
|
|
@ -679,12 +679,12 @@ void CProjectInfoPage::OnPageChanged( wxWizardExEvent& event ) {
|
|||
|
||||
if (strProjectPlatform.Find(_T("[cuda")) != wxNOT_FOUND) {
|
||||
pProjectInfo->m_bProjectSupportsCUDA = true;
|
||||
if (!pDoc->state.have_nvidia) continue;
|
||||
if (!pDoc->state.host_info.coprocs.have_nvidia()) continue;
|
||||
}
|
||||
|
||||
if (strProjectPlatform.Find(_T("[ati")) != wxNOT_FOUND) {
|
||||
pProjectInfo->m_bProjectSupportsCAL = true;
|
||||
if (!pDoc->state.have_ati) continue;
|
||||
if (!pDoc->state.host_info.coprocs.have_ati()) continue;
|
||||
}
|
||||
|
||||
if (strClientPlatform == strRootProjectPlatform) {
|
||||
|
|
|
@ -187,11 +187,11 @@ echo "
|
|||
|
||||
language("Belgium (Dutch/French/English)", array(
|
||||
site("http://www.boinc.be", "www.boinc.be"),
|
||||
site("http://icewolves.plid.be", "IceWolves"),
|
||||
));
|
||||
language("Bulgarian", array(
|
||||
site("http://www.boinc-bulgaria.net", "BOINC Bulgaria")
|
||||
//site("http://icewolves.plid.be", "IceWolves"),
|
||||
));
|
||||
//language("Bulgarian", array(
|
||||
//site("http://www.boinc-bulgaria.net", "BOINC Bulgaria")
|
||||
//));
|
||||
language("Catalan", array(
|
||||
site("http://www.boinc.cat", "BOINC.cat"),
|
||||
));
|
||||
|
@ -205,7 +205,7 @@ language("Czech", array(
|
|||
));
|
||||
language("Danish", array(
|
||||
site("http://boincdenmark.dk", "BOINC@Denmark"),
|
||||
site("http://www.boinc.dk", "www.boinc.dk"),
|
||||
//site("http://www.boinc.dk", "www.boinc.dk"),
|
||||
site("http://www.setihome.dk", "www.setihome.dk")
|
||||
));
|
||||
language("Dutch", array(
|
||||
|
@ -225,8 +225,8 @@ language("English", array(
|
|||
site("http://www.unitedmacs.com/", "United Macs"),
|
||||
//site("http://sirans-boincnews.com/", "Siran's BOINC Projects News Site"),
|
||||
site("http://www.ukboincteam.org.uk/", "UK BOINC Team"),
|
||||
site("http://symbion.madnezz.com/", "Symbion"),
|
||||
site("http://scotlandsseti.blogspot.com/", "Megacruncher's Blog"),
|
||||
//site("http://symbion.madnezz.com/", "Symbion"),
|
||||
//site("http://scotlandsseti.blogspot.com/", "Megacruncher's Blog"),
|
||||
site("http://www.bc-team.org/", "BOINC Confederation"),
|
||||
//site("http://theclangers.net/", "The Clangers"),
|
||||
site("http://www.free-dc.org/", "Free-DC"),
|
||||
|
@ -241,10 +241,10 @@ language("English", array(
|
|||
site("http://www.tswb.org", "Team Starfire World BOINC"),
|
||||
//site("http://www.geocities.com/boinc_volunteers/", "BOINC Volunteers")
|
||||
));
|
||||
language("Estonian", array(
|
||||
site("http://boinc.tmac.pri.ee", "boinc.tmac.pri.ee"),
|
||||
//language("Estonian", array(
|
||||
//site("http://boinc.tmac.pri.ee", "boinc.tmac.pri.ee"),
|
||||
//site("http://setimehed.net/", "setimehed.net"),
|
||||
));
|
||||
//));
|
||||
language("Finnish", array(
|
||||
site( "http://www.universe-examiners.org/",
|
||||
"Universe Examiners"),
|
||||
|
@ -253,37 +253,37 @@ language("Finnish", array(
|
|||
//),
|
||||
));
|
||||
language("French", array(
|
||||
site("http://boinc.starwars-holonet.com/", "Star Wars [FR]"),
|
||||
//site("http://boinc.starwars-holonet.com/", "Star Wars [FR]"),
|
||||
//site("http://wwww.boinc-2tf.org", "2TF Asso"),
|
||||
site("http://boincfrance.org", "BOINCFRANCE.ORG"),
|
||||
//site("http://boincfrance.org", "BOINCFRANCE.ORG"),
|
||||
site("http://www.boinc-af.org", "L'Alliance Francophone"),
|
||||
));
|
||||
language("German", array(
|
||||
site("http://www.crunchers-freiburg.de/", "crunchers@freiburg"),
|
||||
//site("http://www.boinc-gemeinschaft.de/", "BOINC Gemeinschaft"),
|
||||
site("http://www.gridcommunity.de/index.php", "International Grid Community"),
|
||||
site("http://www.swissteam.net/", "SwissTeam.net"),
|
||||
//site("http://www.gridcommunity.de/index.php", "International Grid Community"),
|
||||
//site("http://www.swissteam.net/", "SwissTeam.net"),
|
||||
site("http://www.unitedmacs.com/", "United Macs"),
|
||||
site("http://www.rechenkraft.net/", "Rechenkraft"),
|
||||
site("http://www.seti-leipzig.de/", "SETI-Leipzig"),
|
||||
site("http://www.dc-gemeinschaft.com/", "DC - Gemeinschaft"),
|
||||
site("http://boinccast.podhost.de/", "BOINCcast (Podcast)"),
|
||||
site("http://www.boinc-team.de/", "BOINC@Heidelberg"),
|
||||
site("http://www.crunching-family.wins.info/", "Crunching Family"),
|
||||
//site("http://www.crunching-family.wins.info/", "Crunching Family"),
|
||||
site("http://www.boinc.at/", "www.boinc.at"),
|
||||
site("http://www.boinc-halle-saale.de", "BOINC@Halle/Saale"),
|
||||
site("http://www.bc-team.org/", "BOINC Confederation"),
|
||||
site("http://www.boincfun.tk/", "BOINCfun"),
|
||||
//site("http://www.boincfun.tk/", "BOINCfun"),
|
||||
site("http://www.seti-germany.de", "SETI.Germany"),
|
||||
site("http://www.sar-hessen.org", "Team Science and Research Hessen"),
|
||||
site("http://www.boinc.de/", "www.boinc.de"),
|
||||
//site( "http://www.boinc-lubeca.de/", "BOINC - LUBECA (Lübeck, Germany)"),
|
||||
site( "http://www.boinc-forum.de/", "www.boinc-forum.de"),
|
||||
//site( "http://www.boinc-forum.de/", "www.boinc-forum.de"),
|
||||
//site( "http://www.emuleatboinc.de/board", "Official eMule @ BOINC Team Page")
|
||||
));
|
||||
language("Hungarian", array(
|
||||
site("http://seti.hwsw.hu/", "HWSW SETI@home Team")
|
||||
));
|
||||
//language("Hungarian", array(
|
||||
//site("http://seti.hwsw.hu/", "HWSW SETI@home Team")
|
||||
//));
|
||||
language("Italian", array(
|
||||
site("http://www.calcolodistribuito.it/", "Calcolo Distribuito"),
|
||||
site("http://www.boincitaly.org/", "BOINC.Italy"),
|
||||
|
@ -297,25 +297,25 @@ language("Japanese", array(
|
|||
));
|
||||
language("Korean", array(
|
||||
site("http://cafe.naver.com/setikah", "SETIKAH@KOREA"),
|
||||
site("http://boincatkorea.xo.st/", "BOINC@KOREA"),
|
||||
//site("http://boincatkorea.xo.st/", "BOINC@KOREA"),
|
||||
));
|
||||
|
||||
language("Polish", array(
|
||||
//site("http://www.boinc-polska.org/", "BOINC-Polska.org"),
|
||||
//site("http://www.boinc.org.pl/", "Team boinc.pl"),
|
||||
site("http://www.boinc.prv.pl", "BOINC@Kolobrzeg"),
|
||||
//site("http://www.boinc.prv.pl", "BOINC@Kolobrzeg"),
|
||||
site("http://www.boincatpoland.org", "BOINC@Poland"),
|
||||
site("http://boinc.pl", "BOINC Polish National Team"),
|
||||
site("http://www.tomaszpawel.republika.pl/", "TomaszPawelTeam"),
|
||||
//site("http://www.gpuforce.oxyone.pl/", "GPU Force"),
|
||||
));
|
||||
language("Portuguese", array(
|
||||
site( "http://portugalathome.pt.vu/", "Portugal@home"),
|
||||
//site( "http://portugalathome.pt.vu/", "Portugal@home"),
|
||||
site("http://www.setibr.org/", "SETIBR"),
|
||||
));
|
||||
language("Romanian", array(
|
||||
site( "http://www.boinc.ro/", "SETI@home Romania")
|
||||
));
|
||||
//language("Romanian", array(
|
||||
// site( "http://www.boinc.ro/", "SETI@home Romania")
|
||||
//));
|
||||
language("Russian", array(
|
||||
site("http://vkontakte.ru/club11963359", "BOINC group on vkontakte.ru"),
|
||||
site("http://www.boinc.ru", "BOINC.ru"),
|
||||
|
@ -329,19 +329,19 @@ language("Spanish", array(
|
|||
site("http://www.seti.cl/", "BOINC SETI Chile"),
|
||||
site("http://www.easyboinc.org/", "Computación Distribuida"),
|
||||
site("http://foro.noticias3d.com/vbulletin/showthread.php?t=192297", "Noticias3D"),
|
||||
site("http://elmajo.blogspot.com", "Computación Distribuida"),
|
||||
site("http://efren-canarias.blogcindario.com/", "El Pais De La Computacion"),
|
||||
site("http://www.canalboinc.org/modules/news/", "Canal BOINC"),
|
||||
//site("http://elmajo.blogspot.com", "Computación Distribuida"),
|
||||
//site("http://efren-canarias.blogcindario.com/", "El Pais De La Computacion"),
|
||||
//site("http://www.canalboinc.org/modules/news/", "Canal BOINC"),
|
||||
site("http://www.boinc-ecuador.com/", "BOINC - Ecuador"),
|
||||
site("http://www.hispaseti.org/", "HispaSeti"),
|
||||
site("http://www.seti-argentina.com.ar", "BOINC Argentina"),
|
||||
site("http://boinc.blogspot.com", "Boinc y Astronomia")
|
||||
//site("http://www.seti-argentina.com.ar", "BOINC Argentina"),
|
||||
//site("http://boinc.blogspot.com", "Boinc y Astronomia")
|
||||
//site("http://boincspain.shyper.com/", "BOINC España</a>")
|
||||
));
|
||||
language("Turkish", array(
|
||||
site("http://www.turksetiteam.org/", "www.turksetiteam.org"),
|
||||
site("http://www.boinctr.com/", "www.boinctr.com")
|
||||
));
|
||||
//language("Turkish", array(
|
||||
//site("http://www.turksetiteam.org/", "www.turksetiteam.org"),
|
||||
//site("http://www.boinctr.com/", "www.boinctr.com")
|
||||
//));
|
||||
language("Ukrainian", array(
|
||||
site("http://distributed.org.ua/", "Ukraine - Distributed Computing"),
|
||||
));
|
||||
|
|
|
@ -282,14 +282,14 @@ $astro_phys_chem = array(
|
|||
tra("SETI (Search for Extraterrestrial Intelligence) is a scientific area whose goal is to detect intelligent life outside Earth. One approach, known as radio SETI, uses radio telescopes to listen for narrow-bandwidth radio signals from space. Such signals are not known to occur naturally, so a detection would provide evidence of extraterrestrial technology."),
|
||||
"seti_logo.png"
|
||||
),
|
||||
array(
|
||||
"Quantum Monte Carlo at Home",
|
||||
"http://qah.uni-muenster.de/",
|
||||
tra("University of Muenster (Germany)"),
|
||||
tra("Chemistry"),
|
||||
tra("Study the structure and reactivity of molecules using Quantum Chemistry."),
|
||||
"logo_oben.jpg"
|
||||
),
|
||||
// array(
|
||||
// "Quantum Monte Carlo at Home",
|
||||
// "http://qah.uni-muenster.de/",
|
||||
// tra("University of Muenster (Germany)"),
|
||||
// tra("Chemistry"),
|
||||
// tra("Study the structure and reactivity of molecules using Quantum Chemistry."),
|
||||
// "logo_oben.jpg"
|
||||
// ),
|
||||
array(
|
||||
"Spinhenge@home",
|
||||
"http://spin.fh-bielefeld.de/",
|
||||
|
|
|
@ -389,7 +389,6 @@ struct CC_STATE {
|
|||
TIME_STATS time_stats;
|
||||
bool have_nvidia; // deprecated; include for compat (set by <have_cuda/>)
|
||||
bool have_ati; // deprecated; include for compat
|
||||
bool have_intel;
|
||||
|
||||
CC_STATE();
|
||||
~CC_STATE();
|
||||
|
@ -405,6 +404,11 @@ struct CC_STATE {
|
|||
void print();
|
||||
void clear();
|
||||
int parse(XML_PARSER&);
|
||||
inline bool have_gpu() {
|
||||
return !host_info.coprocs.none()
|
||||
|| have_nvidia || have_ati // for old clients
|
||||
;
|
||||
}
|
||||
};
|
||||
|
||||
struct PROJECTS {
|
||||
|
|
|
@ -982,7 +982,6 @@ int CC_STATE::parse(XML_PARSER& xp) {
|
|||
}
|
||||
if (xp.parse_bool("have_cuda", have_nvidia)) continue;
|
||||
if (xp.parse_bool("have_ati", have_ati)) continue;
|
||||
if (xp.parse_bool("have_intel", have_intel)) continue;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -1014,7 +1013,6 @@ void CC_STATE::clear() {
|
|||
host_info.clear_host_info();
|
||||
have_nvidia = false;
|
||||
have_ati = false;
|
||||
have_intel = false;
|
||||
}
|
||||
|
||||
PROJECT* CC_STATE::lookup_project(const char* url) {
|
||||
|
|
|
@ -116,7 +116,7 @@ int HOST_INFO::parse(XML_PARSER& xp, bool benchmarks_only) {
|
|||
if (xp.parse_str("os_version", os_version, sizeof(os_version))) continue;
|
||||
if (xp.parse_str("virtualbox_version", virtualbox_version, sizeof(virtualbox_version))) continue;
|
||||
if (xp.match_tag("coprocs")) {
|
||||
_coprocs.parse(xp);
|
||||
this->coprocs.parse(xp);
|
||||
}
|
||||
}
|
||||
return ERR_XML_PARSE;
|
||||
|
@ -198,7 +198,7 @@ int HOST_INFO::write(
|
|||
);
|
||||
}
|
||||
if (include_coprocs) {
|
||||
_coprocs.write_xml(out, false);
|
||||
this->coprocs.write_xml(out, false);
|
||||
}
|
||||
out.printf(
|
||||
"</host_info>\n"
|
||||
|
|
|
@ -65,7 +65,7 @@ public:
|
|||
//
|
||||
char virtualbox_version[256];
|
||||
|
||||
COPROCS _coprocs;
|
||||
COPROCS coprocs;
|
||||
|
||||
HOST_INFO();
|
||||
int parse(XML_PARSER&, bool benchmarks_only = false);
|
||||
|
|
Loading…
Reference in New Issue