P4 to Git Change 1195141 by gandryey@gera-dev-w7 on 2015/09/28 15:09:34

SWDEV-77522 - Remove direct references to the Resource object
	- In non-VM mode Resource was used as a memory object outside of SW heap

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.cpp#119 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpublit.hpp#39 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuconstbuf.cpp#9 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuconstbuf.hpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#528 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.hpp#153 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#298 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.hpp#117 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpumemory.hpp#49 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprintf.cpp#38 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprintf.hpp#14 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#208 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.hpp#60 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#228 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.hpp#84 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#383 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.hpp#135 edit
This commit is contained in:
foreman
2015-09-28 17:41:36 -04:00
parent d0fde4d659
commit 4b23814a4d
16 ha cambiato i file con 95 aggiunte e 94 eliminazioni
+11 -11
Vedi File
@@ -218,7 +218,7 @@ VirtualGPU::gslDestroy()
}
void
VirtualGPU::addXferWrite(Resource& resource)
VirtualGPU::addXferWrite(Memory& memory)
{
if (xferWriteBuffers_.size() > 7) {
dev().xferWrite().release(*this, *xferWriteBuffers_.front());
@@ -226,14 +226,14 @@ VirtualGPU::addXferWrite(Resource& resource)
}
// Delay destruction
xferWriteBuffers_.push_back(&resource);
xferWriteBuffers_.push_back(&memory);
}
void
VirtualGPU::releaseXferWrite()
{
for (auto& resource : xferWriteBuffers_) {
dev().xferWrite().release(*this, *resource);
for (auto& memory : xferWriteBuffers_) {
dev().xferWrite().release(*this, *memory);
}
xferWriteBuffers_.clear();
}
@@ -248,7 +248,7 @@ VirtualGPU::addPinnedMem(amd::Memory* mem)
}
// Start operation, since we should release mem object
flushDMA(getGpuEvent(dev().getGpuMemory(mem))->engineId_);
flushDMA(getGpuEvent(dev().getGpuMemory(mem)->gslResource())->engineId_);
// Delay destruction
pinnedMems_.push_back(mem);
@@ -560,14 +560,14 @@ bool
VirtualGPU::allocHsaQueueMem()
{
// Allocate a dummy HSA queue
hsaQueueMem_ = new gpu::Memory(dev(), sizeof(amd_queue_t));
hsaQueueMem_ = new Memory(dev(), sizeof(amd_queue_t));
if ((hsaQueueMem_ == NULL) ||
(!hsaQueueMem_->create(gpu::Resource::Local))) {
(!hsaQueueMem_->create(Resource::Local))) {
delete hsaQueueMem_;
return false;
}
amd_queue_t* queue = reinterpret_cast<amd_queue_t*>
(hsaQueueMem_->map(NULL, gpu::Resource::WriteOnly));
(hsaQueueMem_->map(NULL, Resource::WriteOnly));
if (NULL == queue) {
delete hsaQueueMem_;
return false;
@@ -1662,7 +1662,7 @@ VirtualGPU::submitKernelInternalHSA(
// Get the HSA kernel object
const HSAILKernel& hsaKernel =
static_cast<const HSAILKernel&>(*(kernel.getDeviceKernel(dev())));
std::vector<const Resource*> memList;
std::vector<const Memory*> memList;
bool printfEnabled = (hsaKernel.printfInfo().size() > 0) ? true:false;
if (!printfDbgHSA().init(*this, printfEnabled )){
@@ -3182,7 +3182,7 @@ VirtualGPU::profilingCollectResults(CommandBatch* cb, const amd::Event* waitingE
}
bool
VirtualGPU::addVmMemory(const Resource* resource)
VirtualGPU::addVmMemory(const Memory* memory)
{
uint* cnt = &cal_.memCount_;
(*cnt)++;
@@ -3198,7 +3198,7 @@ VirtualGPU::addVmMemory(const Resource* resource)
vmMems_ = tmp;
numVmMems_ = *cnt;
}
vmMems_[*cnt - 1] = resource->gslResource();
vmMems_[*cnt - 1] = memory->gslResource();
return true;
}