P4 to Git Change 1535437 by asalmanp@asalmanp-ocl-stg on 2018/04/02 10:42:28
SWDEV-79278 - [OCL][PAL] dont report gfx902/gfx903 into the offline device list twice. Both Raven and Raven2 are exposed as gfx902/gfx903, so we ended up reporting each gfx902 and gfx903 twice for the offline devices list. To avoid this issue, check the list and if a device is already reported dont add it into the list. http://ocltc.amd.com/reviews/r/14523/ Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#78 edit
Tá an tiomantas seo le fáil i:
@@ -109,6 +109,7 @@ bool NullDevice::init() {
|
|||||||
for (uint id = 0;
|
for (uint id = 0;
|
||||||
id < sizeof(Gfx9PlusSubDeviceInfo)/sizeof(AMDDeviceInfo); ++id) {
|
id < sizeof(Gfx9PlusSubDeviceInfo)/sizeof(AMDDeviceInfo); ++id) {
|
||||||
bool foundActive = false;
|
bool foundActive = false;
|
||||||
|
bool foundDuplicate = false;
|
||||||
uint gfxipVersion = pal::Gfx9PlusSubDeviceInfo[id].gfxipVersion_;
|
uint gfxipVersion = pal::Gfx9PlusSubDeviceInfo[id].gfxipVersion_;
|
||||||
|
|
||||||
if (pal::Gfx9PlusSubDeviceInfo[id].targetName_[0] == '\0') {
|
if (pal::Gfx9PlusSubDeviceInfo[id].targetName_[0] == '\0') {
|
||||||
@@ -132,6 +133,26 @@ bool NullDevice::init() {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Loop through all previous devices in the Gfx9PlusSubDeviceInfo list
|
||||||
|
// and compare them with the current entry to see if the current entry
|
||||||
|
// was listed previously in the Gfx9PlusSubDeviceInfo, if so, then it
|
||||||
|
// means the current entry already has been added in the offline device list
|
||||||
|
for (uint j = 0; j < id; ++j) {
|
||||||
|
if (pal::Gfx9PlusSubDeviceInfo[j].targetName_[0] == '\0') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(pal::Gfx9PlusSubDeviceInfo[j].targetName_,
|
||||||
|
pal::Gfx9PlusSubDeviceInfo[id].targetName_) == 0) {
|
||||||
|
foundDuplicate = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Don't report an offline device twice
|
||||||
|
if (foundDuplicate) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
Pal::GfxIpLevel ipLevel = Pal::GfxIpLevel::_None;
|
Pal::GfxIpLevel ipLevel = Pal::GfxIpLevel::_None;
|
||||||
uint ipLevelMajor = round(pal::Gfx9PlusSubDeviceInfo[id].gfxipVersion_ / 100);
|
uint ipLevelMajor = round(pal::Gfx9PlusSubDeviceInfo[id].gfxipVersion_ / 100);
|
||||||
switch (ipLevelMajor) {
|
switch (ipLevelMajor) {
|
||||||
|
|||||||
Tagairt in Eagrán Nua
Cuir bac ar úsáideoir