P4 to Git Change 1344789 by asalmanp@asalmanp-opencl-stg on 2016/11/22 14:56:48
SWDEV-107075 - [OCL][VG10] progvar_prog_scope_misc subtest of Conf test_basic fails on VG10. Issue: 64GB (instead of 4GB) was used as the maximum single allocation size in PAL which is for workstation boards only. Fix: Added the query to get workstation feature information from PAL to fix this issue. ReviewBoardsURL = http://ocltc.amd.com/reviews/r/11881/ Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#36 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#12 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.hpp#6 edit
This commit is contained in:
@@ -177,8 +177,10 @@ NullDevice::create(Pal::AsicRevision asicRevision, Pal::GfxIpLevel ipLevel)
|
|||||||
Pal::GpuMemoryHeapProperties heaps[Pal::GpuHeapCount];
|
Pal::GpuMemoryHeapProperties heaps[Pal::GpuHeapCount];
|
||||||
heaps[Pal::GpuHeapLocal].heapSize = 512 * Mi;
|
heaps[Pal::GpuHeapLocal].heapSize = 512 * Mi;
|
||||||
|
|
||||||
|
Pal::WorkStationCaps wscaps = {};
|
||||||
|
|
||||||
// Create setting for the offline target
|
// Create setting for the offline target
|
||||||
if ((palSettings == nullptr) || !palSettings->create(properties, heaps)) {
|
if ((palSettings == nullptr) || !palSettings->create(properties, heaps, wscaps)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -763,11 +765,14 @@ Device::create(Pal::IDevice* device)
|
|||||||
Pal::GpuMemoryHeapProperties heaps[Pal::GpuHeapCount];
|
Pal::GpuMemoryHeapProperties heaps[Pal::GpuHeapCount];
|
||||||
iDev()->GetGpuMemoryHeapProperties(heaps);
|
iDev()->GetGpuMemoryHeapProperties(heaps);
|
||||||
|
|
||||||
|
Pal::WorkStationCaps wscaps = {};
|
||||||
|
iDev()->QueryWorkStationCaps(&wscaps);
|
||||||
|
|
||||||
// Creates device settings
|
// Creates device settings
|
||||||
settings_ = new pal::Settings();
|
settings_ = new pal::Settings();
|
||||||
pal::Settings* gpuSettings = reinterpret_cast<pal::Settings*>(settings_);
|
pal::Settings* gpuSettings = reinterpret_cast<pal::Settings*>(settings_);
|
||||||
if ((gpuSettings == nullptr) || !gpuSettings->create(properties(), heaps,
|
if ((gpuSettings == nullptr) || !gpuSettings->create(properties(), heaps,
|
||||||
appProfile_.reportAsOCL12Device())) {
|
wscaps, appProfile_.reportAsOCL12Device())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
numComputeEngines_ = std::min(numComputeEngines_, settings().numComputeRings_);
|
numComputeEngines_ = std::min(numComputeEngines_, settings().numComputeRings_);
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ bool
|
|||||||
Settings::create(
|
Settings::create(
|
||||||
const Pal::DeviceProperties& palProp,
|
const Pal::DeviceProperties& palProp,
|
||||||
const Pal::GpuMemoryHeapProperties* heaps,
|
const Pal::GpuMemoryHeapProperties* heaps,
|
||||||
|
const Pal::WorkStationCaps& wscaps,
|
||||||
bool reportAsOCL12Device
|
bool reportAsOCL12Device
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -257,7 +258,7 @@ Settings::create(
|
|||||||
supportDepthsRGB_ = true;
|
supportDepthsRGB_ = true;
|
||||||
}
|
}
|
||||||
if (use64BitPtr_) {
|
if (use64BitPtr_) {
|
||||||
if (GPU_ENABLE_LARGE_ALLOCATION /*&& calAttr.isWorkstation*/) {
|
if (GPU_ENABLE_LARGE_ALLOCATION && wscaps.workStationBoard) {
|
||||||
maxAllocSize_ = 64ULL * Gi;
|
maxAllocSize_ = 64ULL * Gi;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ public:
|
|||||||
bool create(
|
bool create(
|
||||||
const Pal::DeviceProperties& palProp, //!< PAL device properties
|
const Pal::DeviceProperties& palProp, //!< PAL device properties
|
||||||
const Pal::GpuMemoryHeapProperties* heaps, //!< PAL heap settings
|
const Pal::GpuMemoryHeapProperties* heaps, //!< PAL heap settings
|
||||||
|
const Pal::WorkStationCaps& wscaps, //!< PAL workstation settings
|
||||||
bool reportAsOCL12Device = false //!< Report As OpenCL1.2 Device
|
bool reportAsOCL12Device = false //!< Report As OpenCL1.2 Device
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user