SWDEV-324411 - Use blit kernel for copyBufferRect if atomic is not supported
Change-Id: I2e110fd3418117ee9c7ede379244d2c6c4f248b7
[ROCm/clr commit: ed7737564e]
Este commit está contenido en:
@@ -1585,8 +1585,8 @@ bool KernelBlitManager::copyBufferRect(device::Memory& srcMemory, device::Memory
|
|||||||
bool rejected = false;
|
bool rejected = false;
|
||||||
|
|
||||||
// Fall into the ROC path for rejected transfers
|
// Fall into the ROC path for rejected transfers
|
||||||
if (setup_.disableCopyBufferRect_ ||
|
if (dev().info().pcie_atomics_ && (setup_.disableCopyBufferRect_ ||
|
||||||
srcMemory.isHostMemDirectAccess() || dstMemory.isHostMemDirectAccess()) {
|
srcMemory.isHostMemDirectAccess() || dstMemory.isHostMemDirectAccess())) {
|
||||||
result = DmaBlitManager::copyBufferRect(srcMemory, dstMemory, srcRectIn, dstRectIn, sizeIn, entire);
|
result = DmaBlitManager::copyBufferRect(srcMemory, dstMemory, srcRectIn, dstRectIn, sizeIn, entire);
|
||||||
|
|
||||||
if (result) {
|
if (result) {
|
||||||
|
|||||||
@@ -2781,7 +2781,7 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, const
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case amd::KernelParameterDescriptor::HiddenHostcallBuffer: {
|
case amd::KernelParameterDescriptor::HiddenHostcallBuffer: {
|
||||||
if (roc_device_.info().pcie_atomics_) {
|
if (dev().info().pcie_atomics_) {
|
||||||
uintptr_t buffer = reinterpret_cast<uintptr_t>(
|
uintptr_t buffer = reinterpret_cast<uintptr_t>(
|
||||||
roc_device_.getOrCreateHostcallBuffer(gpu_queue_, coopGroups, cuMask_));
|
roc_device_.getOrCreateHostcallBuffer(gpu_queue_, coopGroups, cuMask_));
|
||||||
if (!buffer) {
|
if (!buffer) {
|
||||||
@@ -2936,8 +2936,8 @@ bool VirtualGPU::submitKernelInternal(const amd::NDRangeContainer& sizes, const
|
|||||||
|
|
||||||
// Check for group memory overflow
|
// Check for group memory overflow
|
||||||
//! @todo Check should be in HSA - here we should have at most an assert
|
//! @todo Check should be in HSA - here we should have at most an assert
|
||||||
assert(roc_device_.info().localMemSizePerCU_ > 0);
|
assert(dev().info().localMemSizePerCU_ > 0);
|
||||||
if (ldsUsage > roc_device_.info().localMemSizePerCU_) {
|
if (ldsUsage > dev().info().localMemSizePerCU_) {
|
||||||
LogError("No local memory available\n");
|
LogError("No local memory available\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Referencia en una nueva incidencia
Block a user