Fix createGemExt function
Use vector instead of array Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
parent
76565529f6
commit
3c6f5cd757
|
@ -20,14 +20,14 @@ namespace NEO {
|
|||
|
||||
uint32_t IoctlHelperPrelim20::createGemExt(Drm *drm, const std::vector<MemoryClassInstance> &memClassInstances, size_t allocSize, uint32_t &handle) {
|
||||
uint32_t regionsSize = static_cast<uint32_t>(memClassInstances.size());
|
||||
prelim_drm_i915_gem_memory_class_instance data[regionsSize];
|
||||
std::vector<prelim_drm_i915_gem_memory_class_instance> regions(regionsSize);
|
||||
for (uint32_t i = 0; i < regionsSize; i++) {
|
||||
data[i].memory_class = memClassInstances[i].memoryClass;
|
||||
data[i].memory_instance = memClassInstances[i].memoryInstance;
|
||||
regions[i].memory_class = memClassInstances[i].memoryClass;
|
||||
regions[i].memory_instance = memClassInstances[i].memoryInstance;
|
||||
}
|
||||
prelim_drm_i915_gem_object_param regionParam{};
|
||||
regionParam.size = regionsSize;
|
||||
regionParam.data = reinterpret_cast<uintptr_t>(data);
|
||||
regionParam.data = reinterpret_cast<uintptr_t>(regions.data());
|
||||
regionParam.param = PRELIM_I915_OBJECT_PARAM | PRELIM_I915_PARAM_MEMORY_REGIONS;
|
||||
|
||||
prelim_drm_i915_gem_create_ext_setparam setparamRegion{};
|
||||
|
@ -43,7 +43,7 @@ uint32_t IoctlHelperPrelim20::createGemExt(Drm *drm, const std::vector<MemoryCla
|
|||
|
||||
if (DebugManager.flags.PrintBOCreateDestroyResult.get()) {
|
||||
for (uint32_t i = 0; i < regionsSize; i++) {
|
||||
auto region = reinterpret_cast<prelim_drm_i915_gem_memory_class_instance *>(data)[i];
|
||||
auto region = regions[i];
|
||||
printDebugString(DebugManager.flags.PrintBOCreateDestroyResult.get(), stdout, ", memory class: %d, memory instance: %d",
|
||||
region.memory_class, region.memory_instance);
|
||||
}
|
||||
|
|
|
@ -15,14 +15,14 @@ namespace NEO {
|
|||
|
||||
uint32_t IoctlHelperUpstream::createGemExt(Drm *drm, const std::vector<MemoryClassInstance> &memClassInstances, size_t allocSize, uint32_t &handle) {
|
||||
uint32_t regionsSize = static_cast<uint32_t>(memClassInstances.size());
|
||||
drm_i915_gem_memory_class_instance data[regionsSize];
|
||||
std::vector<drm_i915_gem_memory_class_instance> regions(regionsSize);
|
||||
for (uint32_t i = 0; i < regionsSize; i++) {
|
||||
data[i].memory_class = memClassInstances[i].memoryClass;
|
||||
data[i].memory_instance = memClassInstances[i].memoryInstance;
|
||||
regions[i].memory_class = memClassInstances[i].memoryClass;
|
||||
regions[i].memory_instance = memClassInstances[i].memoryInstance;
|
||||
}
|
||||
drm_i915_gem_create_ext_memory_regions memRegions{};
|
||||
memRegions.num_regions = regionsSize;
|
||||
memRegions.regions = reinterpret_cast<uintptr_t>(data);
|
||||
memRegions.regions = reinterpret_cast<uintptr_t>(regions.data());
|
||||
memRegions.base.name = I915_GEM_CREATE_EXT_MEMORY_REGIONS;
|
||||
|
||||
drm_i915_gem_create_ext createExt{};
|
||||
|
@ -34,7 +34,7 @@ uint32_t IoctlHelperUpstream::createGemExt(Drm *drm, const std::vector<MemoryCla
|
|||
|
||||
if (DebugManager.flags.PrintBOCreateDestroyResult.get()) {
|
||||
for (uint32_t i = 0; i < regionsSize; i++) {
|
||||
auto region = reinterpret_cast<drm_i915_gem_memory_class_instance *>(data)[i];
|
||||
auto region = regions[i];
|
||||
printDebugString(DebugManager.flags.PrintBOCreateDestroyResult.get(), stdout, ", memory class: %d, memory instance: %d",
|
||||
region.memory_class, region.memory_instance);
|
||||
}
|
||||
|
|
|
@ -26,15 +26,15 @@ uint32_t IoctlHelperImpl<gfxProduct>::createGemExt(Drm *drm, const std::vector<M
|
|||
//fallback to PROD_DG1 kernel
|
||||
handle = 0u;
|
||||
uint32_t regionsSize = static_cast<uint32_t>(memClassInstances.size());
|
||||
drm_i915_gem_memory_class_instance data[regionsSize];
|
||||
std::vector<drm_i915_gem_memory_class_instance> regions(regionsSize);
|
||||
for (auto i = 0u; i < regionsSize; i++) {
|
||||
data[i].memory_class = memClassInstances[i].memoryClass;
|
||||
data[i].memory_instance = memClassInstances[i].memoryInstance;
|
||||
regions[i].memory_class = memClassInstances[i].memoryClass;
|
||||
regions[i].memory_instance = memClassInstances[i].memoryInstance;
|
||||
}
|
||||
|
||||
drm_i915_gem_object_param regionParam{};
|
||||
regionParam.size = regionsSize;
|
||||
regionParam.data = reinterpret_cast<uintptr_t>(data);
|
||||
regionParam.data = reinterpret_cast<uintptr_t>(regions.data());
|
||||
regionParam.param = I915_OBJECT_PARAM | I915_PARAM_MEMORY_REGIONS;
|
||||
|
||||
drm_i915_gem_create_ext_setparam setparamRegion{};
|
||||
|
|
Loading…
Reference in New Issue