P4 to Git Change 1451293 by gandryey@gera-w8 on 2017/08/24 13:37:00
SWDEV-129129 - [[CQE OCL][Vega vs Fiji] Upto 12% Performance drop observed on VEGA10 compared to FIJI while running BlackMagic Davinci Resolve The app creates/destroys hundred resources each frame. PAL path was removing the destroyed resources from the resident list, although the resource was kept in the cache. This change does the follwoing: - Switch TS tracking from a map in VirtualGPU to resource - Don't remove references until the actual memory destruction - Add a residency threshold to avoid OS resident/eviction calls Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/blit.hpp#5 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.cpp#14 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palblit.hpp#6 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#19 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#50 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.hpp#17 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.cpp#35 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palkernel.hpp#13 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palmemory.cpp#14 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#46 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.hpp#19 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.cpp#30 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.hpp#13 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#52 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#28 edit
This commit is contained in:
@@ -169,6 +169,13 @@ bool Memory::create(Resource::MemoryType memType, Resource::CreateParams* params
|
||||
}
|
||||
}
|
||||
|
||||
if (result) {
|
||||
dev().addResource(memRef());
|
||||
if (params != nullptr) {
|
||||
memRef()->gpu_ = params->gpu_;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -363,10 +370,6 @@ bool Memory::createInterop(InteropType type) {
|
||||
}
|
||||
|
||||
oglRes.glPlatformContext_ = owner()->getContext().info().hCtx_;
|
||||
oglRes.glDeviceContext_ =
|
||||
owner()->getContext().info().hDev_[amd::Context::DeviceFlagIdx::GLDeviceKhrIdx];
|
||||
// We dont pass any flags here for the GL Resource.
|
||||
oglRes.flags_ = 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user