SWDEV-416580 - Add condition when memory has direct access, only use host fill if image is small

Change-Id: I3509c4aa21f6413adad3b46273ec650f5c577ddd
此提交包含在:
victzhan authored and Victor Zhang committed 2023-08-17 17:23:49 -04:00
1 父節點 0d3a5c4c81
當前提交 cb426df1bd
2 file changed
+12 -6

No files matched your search

+6 -3
查看文件
@@ -2325,9 +2325,12 @@ bool KernelBlitManager::fillImage(device::Memory& memory, const void* pattern,
bool entire) const {
amd::ScopedLock k(lockXferOps_);
bool result = false;
// Use host fill if memory has direct access
if (setup_.disableFillImage_ || gpuMem(memory).isHostMemDirectAccess()) {
constexpr size_t kFillImageThreshold = 256 * 256;
// Use host fill if memory has direct access and image is small
if (setup_.disableFillImage_ ||
(gpuMem(memory).isHostMemDirectAccess() &&
(size.c[0] * size.c[1] * size.c[2]) <= kFillImageThreshold)) {
gpu().releaseGpuMemoryFence();
result = HostBlitManager::fillImage(memory, pattern, origin, size, entire);
+6 -3
查看文件
@@ -2352,9 +2352,12 @@ bool KernelBlitManager::fillImage(device::Memory& memory, const void* pattern,
amd::ScopedLock k(lockXferOps_);
bool result = false;
// Use host fill if memory has direct access
if (setup_.disableFillImage_ || memory.isHostMemDirectAccess()) {
constexpr size_t kFillImageThreshold = 256 * 256;
// Use host fill if memory has direct access and image is small
if (setup_.disableFillImage_ ||
(gpuMem(memory).isHostMemDirectAccess() &&
(size.c[0] * size.c[1] * size.c[2]) <= kFillImageThreshold)) {
// Stall GPU before CPU access
gpu().releaseGpuMemoryFence();
result = HostBlitManager::fillImage(memory, pattern, origin, size, entire);