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


[ROCm/clr commit: 4b23814a4d]
This commit is contained in:
foreman
2015-09-28 17:41:36 -04:00
parent c0d10e3b4a
commit 3db2d0ead4
16 changed files with 95 additions and 94 deletions
@@ -37,9 +37,9 @@ DmaBlitManager::gpuMem(device::Memory& mem) const
bool
DmaBlitManager::readMemoryStaged(
Resource& srcMemory,
Memory& srcMemory,
void* dstHost,
Resource** xferBuf,
Memory** xferBuf,
size_t origin,
size_t& offset,
size_t& totalSize,
@@ -196,9 +196,9 @@ DmaBlitManager::readBuffer(
}
if (0 != srcSize) {
Resource& xferBuf0 = dev().xferRead().acquire();
Resource& xferBuf1 = dev().xferRead().acquire();
Resource* xferBuf[2] = { &xferBuf0, &xferBuf1 };
Memory& xferBuf0 = dev().xferRead().acquire();
Memory& xferBuf1 = dev().xferRead().acquire();
Memory* xferBuf[2] = { &xferBuf0, &xferBuf1 };
// Read memory using a staged resource
if (!readMemoryStaged(gpuMem(srcMemory), dstHost, xferBuf, origin[0],
@@ -231,7 +231,7 @@ DmaBlitManager::readBufferRect(
srcMemory, dstHost, bufRect, hostRect, size, entire);
}
else {
Resource& xferBuf = dev().xferRead().acquire();
Memory& xferBuf = dev().xferRead().acquire();
amd::Coord3D dst(0, 0, 0);
size_t tmpSize = 0;
@@ -304,8 +304,8 @@ DmaBlitManager::readImage(
bool
DmaBlitManager::writeMemoryStaged(
const void* srcHost,
Resource& dstMemory,
Resource& xferBuf,
Memory& dstMemory,
Memory& xferBuf,
size_t origin,
size_t& offset,
size_t& totalSize,
@@ -433,7 +433,7 @@ DmaBlitManager::writeBuffer(
}
if (dstSize != 0) {
Resource& xferBuf = dev().xferWrite().acquire();
Memory& xferBuf = dev().xferWrite().acquire();
// Write memory using a staged resource
if (!writeMemoryStaged(srcHost, gpuMem(dstMemory), xferBuf, origin[0],
@@ -466,7 +466,7 @@ DmaBlitManager::writeBufferRect(
srcHost, dstMemory, hostRect, bufRect, size, entire);
}
else {
Resource& xferBuf = dev().xferWrite().acquire();
Memory& xferBuf = dev().xferWrite().acquire();
amd::Coord3D src(0, 0, 0);
size_t tmpSize = 0;
@@ -20,7 +20,6 @@ namespace gpu {
class Device;
class Kernel;
class Resource;
class Memory;
class VirtualGPU;
@@ -189,9 +188,9 @@ private:
//! Reads video memory, using a staged buffer
bool readMemoryStaged(
Resource& srcMemory, //!< Source memory object
Memory& srcMemory, //!< Source memory object
void* dstHost, //!< Destination host memory
Resource** xferBuf, //!< Staged buffer for read
Memory** xferBuf, //!< Staged buffer for read
size_t origin, //!< Original offset in the source memory
size_t& offset, //!< Offset for the current copy pointer
size_t& totalSize, //!< Total size for copy region
@@ -201,8 +200,8 @@ private:
//! Write into video memory, using a staged buffer
bool writeMemoryStaged(
const void* srcHost, //!< Source host memory
Resource& dstMemory, //!< Destination memory object
Resource& xferBuf, //!< Staged buffer for write
Memory& dstMemory, //!< Destination memory object
Memory& xferBuf, //!< Staged buffer for write
size_t origin, //!< Original offset in the destination memory
size_t& offset, //!< Offset for the current copy pointer
size_t& totalSize, //!< Total size for the copy region
@@ -12,7 +12,7 @@ namespace gpu {
ConstBuffer::ConstBuffer(
VirtualGPU& gpu,
size_t size)
: Resource(const_cast<gpu::Device&>(gpu.dev()), size, CM_SURF_FMT_RGBA32F)
: Memory(const_cast<gpu::Device&>(gpu.dev()), size * VectorSize)
, gpu_(gpu)
, size_(size * VectorSize)
, wrtOffset_(0)
@@ -42,7 +42,7 @@ ConstBuffer::create()
}
memset(sysMemCopy_, 0, size_);
if (!Resource::create(Resource::RemoteUSWC)) {
if (!Memory::create(Resource::RemoteUSWC)) {
LogPrintfError("We couldn't create HW constant buffer, size(%d)!", size_);
return false;
}
@@ -5,13 +5,13 @@
#ifndef GPUCONSTBUF_HPP_
#define GPUCONSTBUF_HPP_
#include "device/gpu/gpuresource.hpp"
#include "device/gpu/gpumemory.hpp"
//! \namespace gpu GPU Resource Implementation
namespace gpu {
//! Cconstant buffer
class ConstBuffer : public Resource
class ConstBuffer : public Memory
{
public:
//! Vector size of the constant buffer
@@ -498,8 +498,8 @@ void NullDevice::fillDeviceInfo(
bool
Device::Heap::create(Device& device)
{
// Create a new GPU resource
resource_ = new Resource(device, 0, CM_SURF_FMT_R32I);
// Create global GPU heap
resource_ = new Memory(device, 0);
if (resource_ == NULL) {
return false;
}
@@ -569,13 +569,12 @@ Device::XferBuffers::~XferBuffers()
bool
Device::XferBuffers::create()
{
Resource* xferBuf = NULL;
Memory* xferBuf = NULL;
bool result = false;
// Note: create a 1D resource
xferBuf = new Resource(dev(), bufSize_ / Heap::ElementSize,
Heap::ElementType);
// Create a buffer object
xferBuf = new Memory(dev(), bufSize_);
// We will try to creat a CAL resource for the transfer buffer
// Try to allocate memory for the transfer buffer
if ((NULL == xferBuf) || !xferBuf->create(type_)) {
delete xferBuf;
xferBuf = NULL;
@@ -593,10 +592,10 @@ Device::XferBuffers::create()
return result;
}
Resource&
Memory&
Device::XferBuffers::acquire()
{
Resource* xferBuf = NULL;
Memory* xferBuf = NULL;
size_t listSize;
// Lock the operations with the staged buffer list
@@ -605,11 +604,10 @@ Device::XferBuffers::acquire()
// If the list is empty, then attempt to allocate a staged buffer
if (listSize == 0) {
// Note: create a 1D resource
xferBuf = new Resource(dev(), bufSize_ / Heap::ElementSize,
Heap::ElementType);
// Allocate memory
xferBuf = new Memory(dev(), bufSize_);
// We will try to create a CAL resource for the transfer buffer
// Allocate memory for the transfer buffer
if ((NULL == xferBuf) || !xferBuf->create(type_)) {
delete xferBuf;
xferBuf = NULL;
@@ -634,7 +632,7 @@ Device::XferBuffers::acquire()
}
void
Device::XferBuffers::release(VirtualGPU& gpu, Resource& buffer)
Device::XferBuffers::release(VirtualGPU& gpu, Memory& buffer)
{
// Make sure buffer isn't busy on the current VirtualGPU, because
// the next aquire can come from different queue
@@ -1225,6 +1223,11 @@ Device::getGpuMemory(amd::Memory* mem) const
return static_cast<gpu::Memory*>(mem->getDeviceMemory(*this));
}
const device::BlitManager&
Device::xferMgr() const
{
return xferQueue_->blitMgr();
}
CalFormat
Device::getCalFormat(const amd::Image::Format& format) const
@@ -2366,7 +2369,7 @@ Device::SrdManager::freeSrdSlot(uint64_t addr) {
}
void
Device::SrdManager::fillResourceList(std::vector<const Resource*>& memList)
Device::SrdManager::fillResourceList(std::vector<const Memory*>& memList)
{
for (uint i = 0; i < pool_.size(); ++i) {
memList.push_back(pool_[i].buf_);
@@ -199,13 +199,13 @@ public:
);
//! Gets the GPU resource associated with the global heap
const Resource& resource() const { return *resource_; }
const Memory& resource() const { return *resource_; }
//! Returns the base virtual address of the heap
uint64_t baseAddress() const { return baseAddress_; }
protected:
Resource* resource_; //!< GPU resource referencing the heap memory
Memory* resource_; //!< GPU resource referencing the heap memory
uint64_t baseAddress_; //!< Virtual heap base address
};
@@ -277,12 +277,12 @@ public:
bool create();
//! Acquires an instance of the transfer buffers
Resource& acquire();
Memory& acquire();
//! Releases transfer buffer
void release(
VirtualGPU& gpu, //!< Virual GPU object used with the buffer
Resource& buffer //!< Transfer buffer for release
Memory& buffer //!< Transfer buffer for release
);
//! Returns the buffer's size for transfer
@@ -300,7 +300,7 @@ public:
Resource::MemoryType type_; //!< The buffer's type
size_t bufSize_; //!< Staged buffer size
std::list<Resource*> freeBuffers_; //!< The list of free buffers
std::list<Memory*> freeBuffers_; //!< The list of free buffers
amd::Atomic<uint> acquiredCnt_; //!< The total number of acquired buffers
amd::Monitor lock_; //!< Stgaed buffer acquire/release lock
const Device& gpuDevice_; //!< GPU device object
@@ -358,8 +358,8 @@ public:
//! Frees a SRD slot
void freeSrdSlot(uint64_t addr);
// Fills the resource list for VidMM KMD
void fillResourceList(std::vector<const Resource*>& memList);
// Fills the memory list for VidMM KMD
void fillResourceList(std::vector<const Memory*>& memList);
private:
//! Disable copy constructor
@@ -461,7 +461,7 @@ public:
) const;
//! Gets the GPU resource associated with the global heap
const Resource& globalMem() const { return heap_.resource(); }
const Memory& globalMem() const { return heap_.resource(); }
//! Gets the global heap object
const Heap& heap() const { return heap_; }
@@ -517,7 +517,7 @@ public:
const Engines& engines() const { return engines_; }
//! Returns engines object
const device::BlitManager& xferMgr() const { return xferQueue_->blitMgr(); }
const device::BlitManager& xferMgr() const;
VirtualGPU* xferQueue() const { return xferQueue_; }
@@ -614,7 +614,7 @@ private:
amd::Monitor* vaCacheAccess_; //!< Lock to serialize VA caching access
std::list<VACacheEntry*>* vaCacheList_; //!< VA cache list
std::vector<amd::Memory*>* mapCache_; //!< Map cache info structure
ResourceCache* resourceCache_; //!< CAL resource cache
ResourceCache* resourceCache_; //!< Resource cache
Engines engines_; //!< Available engines on device
bool heapInitComplete_; //!< Keep track of initialization status of heap resources
VirtualGPU* xferQueue_; //!< Transfer queue
@@ -1464,7 +1464,7 @@ Kernel::bindConstantBuffers(VirtualGPU& gpu) const
for (uint i = 0; i < numCb_; i++) {
ConstBuffer* cb = gpu.constBufs_[i];
result &= cb->uploadDataToHw(cbSizes_[i]) &&
bindResource(gpu, *cb, i, ConstantBuffer, i, NULL, cb->wrtOffset());
bindResource(gpu, *cb, i, ConstantBuffer, i, cb->wrtOffset());
}
return result;
@@ -1595,7 +1595,7 @@ Kernel::debug(VirtualGPU& gpu) const
std::cerr << "--- " << name_ << " ---" << std::endl;
for (uint i = 0; i < arguments_.size(); ++i) {
const KernelArg* arg = argument(i);
Memory* gpuMem = gpu.slots_[i].memory_;
const Memory* gpuMem = gpu.slots_[i].memory_;
std::stringstream fileName;
bool bufferObj =
((arg->type_ == KernelArg::PointerGlobal) ||
@@ -1625,7 +1625,8 @@ Kernel::debug(VirtualGPU& gpu) const
if (((arg->type_ >= KernelArg::Image1D) &&
(arg->type_ <= KernelArg::Image3D)) ||
((src == NULL) && bufferObj)) {
Memory* resource = gpu.slots_[i].memory_;
//@todo Replace the current map
Memory* resource = const_cast<Memory*>(gpu.slots_[i].memory_);
void* memory = resource->map(&gpu);
uint* location = reinterpret_cast<uint*>(memory);
std::cerr << " > " << arg->name_ << (bufferObj ? ": buffer" : ": image") << std::endl;
@@ -1790,7 +1791,7 @@ Kernel::setArgument(
if (arg->type_ == KernelArg::PointerHwConst) {
// Bind current memory object with the kernel
if (!bindResource(gpu, *gpuMem, idx,
ArgumentConstBuffer, arg->index_, gpuMem)) {
ArgumentConstBuffer, arg->index_)) {
return false;
}
assert((offset == 0) && "No offset for HW CB");
@@ -1815,7 +1816,7 @@ Kernel::setArgument(
// Bind current memory object with the kernel
// Note: it's a fake binding, if the buffer is part of
// the global heap
if (!bindResource(gpu, *gpuMem, idx, type, arg->index_, gpuMem)) {
if (!bindResource(gpu, *gpuMem, idx, type, arg->index_)) {
return false;
}
@@ -1875,7 +1876,7 @@ Kernel::setArgument(
// Bind current memory object with the shader.
if (!bindResource(gpu, *gpuMem, idx,
resType, arg->index_, gpuMem)) {
resType, arg->index_)) {
return false;
}
@@ -1922,7 +1923,7 @@ Kernel::setArgument(
// Bind current memory object with the shader.
if (!bindResource(gpu, *gpuMem, idx,
ArgumentCounter, idx, gpuMem)) {
ArgumentCounter, idx)) {
return false;
}
}
@@ -2138,11 +2139,10 @@ Kernel::setSampler(
bool
Kernel::bindResource(
VirtualGPU& gpu,
const Resource& resource,
const Memory& memory,
uint paramIdx,
ResourceType type,
uint physUnit,
Memory* memory,
size_t offset) const
{
gslUAVType uavType = GSL_UAV_TYPE_UNKNOWN;
@@ -2185,7 +2185,7 @@ Kernel::bindResource(
}
// Associate resource with the slot
gpu.slots_[paramIdx].memory_ = memory;
gpu.slots_[paramIdx].memory_ = &memory;
// Mark resource as bound
gpu.slots_[paramIdx].state_.bound_ = true;
@@ -2195,7 +2195,7 @@ Kernel::bindResource(
// Bind memory with atomic counter
gpu.cs()->bindAtomicCounter(argument(paramIdx)->index_,
memory->gslResource());
memory.gslResource());
// Copy the counter value into GDS
gpu.eventBegin(MainEngine);
@@ -2203,7 +2203,7 @@ Kernel::bindResource(
gpu.eventEnd(MainEngine, calEvent);
// Mark resource as busy
memory->setBusy(gpu, calEvent);
memory.setBusy(gpu, calEvent);
return true;
}
else if (type == ArgumentHeapBuffer) {
@@ -2229,7 +2229,7 @@ Kernel::bindResource(
gslMem = dev().heap().resource().gslResource();
}
else {
gslMem = resource.gslResource();
gslMem = memory.gslResource();
}
// Associate memory with the physical unit, the actual binding
@@ -2257,7 +2257,7 @@ Kernel::bindResource(
case ArgumentConstBuffer:
if ((gpu.cal_.constBuffers_[physUnit] != gslMem) || (offset != 0)) {
result = gpu.setConstantBuffer(physUnit,
gslMem, offset, resource.hbSize());
gslMem, offset, memory.hbSize());
gpu.cal_.constBuffers_[physUnit] = gslMem;
}
break;
@@ -3667,7 +3667,7 @@ HSAILKernel::loadArguments(
bool nativeMem,
uint64_t vmDefQueue,
uint64_t* vmParentWrap,
std::vector<const Resource*>& memList) const
std::vector<const Memory*>& memList) const
{
static const bool WaitOnBusyEngine = true;
uint64_t ldsAddress = ldsSize();
@@ -734,11 +734,10 @@ private:
*/
bool bindResource(
VirtualGPU& gpu, //!< virtual GPU device object
const Resource& resource, //!< resource for binding
const Memory& memory, //!< memory for binding
uint paramIdx, //!< index of the parameter
ResourceType type, //!< resource type
uint physUnit, //!< PhysUnit
Memory* memory = NULL, //!< GPU layer memory object
size_t offset = 0
) const;
@@ -900,7 +899,7 @@ public:
bool nativeMem, //!< Native memory objectes are passed
uint64_t vmDefQueue, //!< GPU VM default queue pointer
uint64_t* vmParentWrap, //!< GPU VM parent aql wrap object
std::vector<const Resource*>& memList //!< Memory list for GSL/VidMM handles
std::vector<const Memory*>& memList //!< Memory list for GSL/VidMM handles
) const;
//! Returns pritnf info array
@@ -8,7 +8,6 @@
#include "top.hpp"
#include "thread/atomic.hpp"
#include "device/gpu/gpuresource.hpp"
#include "device/gpu/gpudevice.hpp"
#include <map>
/*! \addtogroup GPU
@@ -21,7 +21,7 @@ PrintfDbg::PrintfDbg(Device& device, FILE* file)
, dbgFile_(file)
, gpuDevice_(device)
, wiDbgSize_(0)
, initCntValue_(device, 1, CM_SURF_FMT_R32I)
, initCntValue_(device, 4)
{
}
@@ -4,6 +4,8 @@
#ifndef GPUPRINTFDBG_HPP_
#define GPUPRINTFDBG_HPP_
#include "device/gpu/gpumemory.hpp"
/*! \addtogroup GPU GPU Device Implementation
* @{
*/
@@ -85,7 +87,7 @@ protected:
Memory* dbgBuffer_; //!< Buffer to hold debug output
FILE* dbgFile_; //!< Debug file
Device& gpuDevice_; //!< GPU device object
Resource* xferBufRead_; //!< Transfer buffer for the dump read
Memory* xferBufRead_; //!< Transfer buffer for the dump read
//! Gets GPU device object
Device& dev() const { return gpuDevice_; }
@@ -100,7 +102,7 @@ protected:
const std::string& fmt //!< Format string
) const;
//! Returns TRUE if a string value has to be printed
//! Returns TRUE if a string value has to be printed
bool checkString(
const std::string& fmt //!< Format string
) const;
@@ -154,8 +156,8 @@ private:
const uint32_t* workitemData //!< The PrintfDbg dump buffer
) const;
size_t wiDbgSize_; //!< Workitem debug size
Resource initCntValue_; //!< Initialized count value
size_t wiDbgSize_; //!< Workitem debug size
Memory initCntValue_; //!< Initialized count value
};
class PrintfDbgHSA : public PrintfDbg
{
@@ -2283,7 +2283,7 @@ HSAILProgram::allocKernelTable()
void
HSAILProgram::fillResListWithKernels(
std::vector<const Resource*>& memList) const
std::vector<const Memory*>& memList) const
{
for (auto& it : kernels()) {
memList.push_back(
@@ -520,7 +520,7 @@ public:
const Memory* kernelTable() const { return kernels_; }
//! Adds all kernels to the mem handle lists
void fillResListWithKernels(std::vector<const Resource*>& memList) const;
void fillResListWithKernels(std::vector<const Memory*>& memList) const;
//! Returns the maximum number of scratch regs used in the program
uint maxScratchRegs() const { return maxScratchRegs_; }
@@ -1201,7 +1201,7 @@ Resource::setBusy(
GpuEvent gpuEvent
) const
{
gpu.assignGpuEvent(this, gpuEvent);
gpu.assignGpuEvent(gslResource(), gpuEvent);
// If current resource is a view, then update the parent event as well
if (viewOwner_ != NULL) {
@@ -1212,7 +1212,7 @@ Resource::setBusy(
void
Resource::wait(VirtualGPU& gpu, bool waitOnBusyEngine) const
{
GpuEvent* gpuEvent = gpu.getGpuEvent(this);
GpuEvent* gpuEvent = gpu.getGpuEvent(gslResource());
// Check if we have to wait unconditionally
if (!waitOnBusyEngine ||
@@ -1781,7 +1781,7 @@ Resource::getActiveRename(VirtualGPU& gpu, GslResourceReference** rename)
bool
Resource::rename(VirtualGPU& gpu, bool force)
{
GpuEvent* gpuEvent = gpu.getGpuEvent(this);
GpuEvent* gpuEvent = gpu.getGpuEvent(gslResource());
if (!gpuEvent->isValid() && !force) {
return true;
}
@@ -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;
}
@@ -24,7 +24,6 @@ namespace gpu {
class Device;
class Kernel;
class Resource;
class Memory;
class CalCounterReference;
class VirtualGPU;
@@ -110,8 +109,8 @@ public:
State(): value_(0) {}
};
State state_; //!< slot's state
Memory* memory_; //!< GPU memory object
State state_; //!< slot's state
const Memory* memory_; //!< GPU memory object
ResourceSlot(): memory_(NULL) {}
@@ -262,14 +261,14 @@ public:
//! Returns a GPU event, associated with GPU memory
GpuEvent* getGpuEvent(
const Resource* resource //!< GPU resource object
) { return &gpuEvents_[resource->gslResource()]; }
const gslMemObject gslMem //!< GSL mem object
) { return &gpuEvents_[gslMem]; }
//! Assigns a GPU event, associated with GPU memory
void assignGpuEvent(
const Resource* resource, //!< GPU resource object
const gslMemObject gslMem, //!< GSL mem object
GpuEvent gpuEvent
) { gpuEvents_[resource->gslResource()] = gpuEvent; }
) { gpuEvents_[gslMem] = gpuEvent; }
//! Set the kernel as active
bool setActiveKernelDesc(
@@ -324,11 +323,11 @@ public:
//! Adds a memory handle into the GSL memory array for Virtual Heap
bool addVmMemory(
const Resource* resource //!< GPU resource object
const Memory* memory //!< GPU memory object
);
//! Adds a stage write buffer into a list
void addXferWrite(Resource& resource);
void addXferWrite(Memory& memory);
//! Adds a pinned memory object into a map
void addPinnedMem(amd::Memory* mem);
@@ -523,7 +522,7 @@ private:
DmaFlushMgmt dmaFlushMgmt_; //!< DMA flush management
std::list<Resource*> xferWriteBuffers_; //!< Stage write buffers
std::list<Memory*> xferWriteBuffers_; //!< Stage write buffers
std::list<amd::Memory*> pinnedMems_;//!< Pinned memory list
typedef std::list<CommandBatch*> CommandBatchList;