P4 to Git Change 1211165 by gandryey@gera-ubuntu14 on 2015/11/13 14:36:37

SWDEV-78467 - OpenCL LiquidFlash feature
	- Add staging transfer support for invisible memory
	- Don't fallback to USWC memory if persistent allocation failed

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#262 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#231 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.cpp#390 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.hpp#137 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.cpp#73 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/command.hpp#80 edit


[ROCm/clr commit: 8a7bac7048]
This commit is contained in:
foreman
2015-11-13 15:09:15 -05:00
szülő 1c344cce5c
commit c446a43d74
6 fájl változott, egészen pontosan 90 új sor hozzáadva és 21 régi sor törölve
@@ -1303,8 +1303,6 @@ public:
pfnFreeFunc_(pfnFreeFunc),
userData_(userData) { }
virtual void releaseResources() { Command::releaseResources(); }
virtual void submit(device::VirtualDevice& device)
{
device.submitSvmFreeMemory(*this);
@@ -1338,8 +1336,6 @@ public:
src_(src),
srcSize_(srcSize) { }
virtual void releaseResources() { Command::releaseResources(); }
virtual void submit(device::VirtualDevice& device)
{
device.submitSvmCopyMemory(*this);
@@ -1382,8 +1378,6 @@ public:
memcpy(pattern_, pattern, patternSize);
}
virtual void releaseResources() { Command::releaseResources(); }
virtual void submit(device::VirtualDevice& device)
{
device.submitSvmFillMemory(*this);
@@ -1425,8 +1419,6 @@ public:
{
}
virtual void releaseResources() { Command::releaseResources(); }
virtual void submit(device::VirtualDevice& device)
{
device.submitSvmMapMemory(*this);
@@ -1459,8 +1451,6 @@ public:
svmMem_(svmMem)
{}
virtual void releaseResources() { Command::releaseResources(); }
virtual void submit(device::VirtualDevice& device)
{
device.submitSvmUnmapMemory(*this);
@@ -1477,11 +1467,17 @@ public:
*/
class WriteBufferFromFileCommand : public OneMemoryArgCommand
{
public:
static const uint NumStagingBuffers = 2;
static const size_t StagingBufferSize = 4 * Mi;
static const uint StagingBufferMemType = CL_MEM_USE_PERSISTENT_MEM_AMD;
private:
const Coord3D origin_; //!< Origin of the region to write to
const Coord3D size_; //!< Size of the region to write to
LiquidFlashFile* file_; //!< The file object for data read
size_t fileOffset_; //!< Offset in the file for data read
amd::Memory* staging_[NumStagingBuffers]; //!< Staging buffers for transfer
public:
WriteBufferFromFileCommand(
@@ -1498,8 +1494,13 @@ public:
{
// Sanity checks
assert(size.c[0] > 0 && "invalid");
for (uint i = 0; i < NumStagingBuffers; ++i) {
staging_[i] = NULL;
}
}
virtual void releaseResources();
virtual void submit(device::VirtualDevice& device);
//! Return the memory object to write to
@@ -1516,6 +1517,9 @@ public:
//! Return the region size
const Coord3D& size() const { return size_; }
//! Return the staging buffer for transfer
Memory& staging(uint i) const { return *staging_[i]; }
bool validateMemory();
};