P4 to Git Change 1184494 by gandryey@gera-dev-w7 on 2015/08/25 17:04:02

ECR #304775 - Remove unused fields

Affected files ...

... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpukernel.cpp#294 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuresource.cpp#225 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuvirtual.hpp#133 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#136 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.h#54 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/backend.cpp#14 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/backend.h#10 edit


[ROCm/clr commit: 03f7ac19ab]
Этот коммит содержится в:
foreman
2015-08-25 17:23:48 -04:00
родитель cd967155c9
Коммит 0e7550b8ac
7 изменённых файлов: 38 добавлений и 125 удалений
+20 -20
Просмотреть файл
@@ -1279,7 +1279,7 @@ Kernel::setupProgramGrid(
// Check for 64-bit metadata
uint glbABIShift = (abi64Bit()) ? 1 : 0;
ProgramGrid* progGrid = &gpu.cal_.progGrid_;
VirtualGPU::CalVirtualDesc* progGrid = &gpu.cal_;
// Finds local workgroup size
findLocalWorkSize(workDim, gblWorkSize, lclWorkSize);
@@ -1656,21 +1656,21 @@ Kernel::loadParameters(
bool
Kernel::run(VirtualGPU& gpu, GpuEvent* calEvent, bool lastRun) const
{
const VirtualGPU::CalVirtualDesc* dispatch = gpu.cal();
// 8xx workaround for the number of groups limit in HW
if (setBufferForNumGroup_) {
const ProgramGrid* programGrid = &gpu.cal()->progGrid_;
ConstBuffer* cb = gpu.numGrpCb();
assert((cb != NULL) && "Runtime must have the constant buffer");
uint32_t* memPtr = reinterpret_cast<uint32_t*>(cb->sysMemCopy());
memPtr[0] = programGrid->gridSize.width;
memPtr[1] = programGrid->gridSize.height;
memPtr[2] = programGrid->gridSize.depth;
memPtr[0] = dispatch->gridSize.width;
memPtr[1] = dispatch->gridSize.height;
memPtr[2] = dispatch->gridSize.depth;
memPtr[3] = 0;
memPtr[4] = programGrid->gridBlock.width;
memPtr[5] = programGrid->gridBlock.height;
memPtr[6] = programGrid->gridBlock.depth;
memPtr[4] = dispatch->gridBlock.width;
memPtr[5] = dispatch->gridBlock.height;
memPtr[6] = dispatch->gridBlock.depth;
memPtr[7] = 0;
bool result = cb->uploadDataToHw(8 * sizeof(uint32_t));
@@ -1688,8 +1688,8 @@ Kernel::run(VirtualGPU& gpu, GpuEvent* calEvent, bool lastRun) const
compProg->setWavesPerSH(waveLimiter_.getWavesPerSH(&gpu));
gpu.eventBegin(MainEngine);
gpu.rs()->Dispatch(gpu.cs(), &gpu.cal()->progGrid_.gridBlock, &gpu.cal()->progGrid_.partialGridBlock,
&gpu.cal()->progGrid_.gridSize, gpu.cal()->progGrid_.localSize, gpu.vmMems(), gpu.cal_.memCount_);
gpu.rs()->Dispatch(gpu.cs(), &dispatch->gridBlock, &dispatch->partialGridBlock,
&dispatch->gridSize, dispatch->localSize, gpu.vmMems(), dispatch->memCount_);
gpu.eventEnd(MainEngine, *calEvent);
// Unbind all resources
@@ -2062,18 +2062,18 @@ Kernel::setArgument(
case KernelArg::PointerHwLocal:
{
// Calculate current offset in the local ring
uint offset = gpu.cal_.progGrid_.localSize;
uint offset = gpu.cal_.localSize;
uint extra = amd::alignUp(offset, arg->alignment_) - offset;
offset = amd::alignUp(offset, arg->alignment_);
size_t memSize = *static_cast<const uintptr_t*>(param);
// Allocate new memory from the local ring
gpu.cal_.progGrid_.localSize += static_cast<uint>(memSize) + extra;
gpu.cal_.localSize += static_cast<uint>(memSize) + extra;
// Copy current local argument's offset into the CB
*(reinterpret_cast<uint*>(memory + arg->cbPos_)) = offset;
CondLog((gpu.cal_.progGrid_.localSize > dev().info().localMemSize_),
CondLog((gpu.cal_.localSize > dev().info().localMemSize_),
"Requested local size is bigger than reported!");
}
break;
@@ -2122,7 +2122,7 @@ bool
Kernel::initLocalPrivateRanges(VirtualGPU& gpu) const
{
// Initialize HW local
gpu.cal_.progGrid_.localSize = hwLocalSize_;
gpu.cal_.localSize = hwLocalSize_;
// Bind the global buffer if emulated local or private memory
// was allocated by the kernel
@@ -2158,13 +2158,13 @@ Kernel::setLocalPrivateRanges(VirtualGPU& gpu) const
address cbBuf = gpu.cb(0)->sysMemCopy();
uint* data;
uint gridSize =
gpu.cal()->progGrid_.gridSize.width *
gpu.cal()->progGrid_.gridSize.height *
gpu.cal()->progGrid_.gridSize.depth;
gpu.cal()->gridSize.width *
gpu.cal()->gridSize.height *
gpu.cal()->gridSize.depth;
uint blockSize =
gpu.cal()->progGrid_.gridBlock.width *
gpu.cal()->progGrid_.gridBlock.height *
gpu.cal()->progGrid_.gridBlock.depth;
gpu.cal()->gridBlock.width *
gpu.cal()->gridBlock.height *
gpu.cal()->gridBlock.depth;
//! \todo validate if the compiler still generates PrivateFixed
if (flags() & PrivateFixed) {
+10 -24
Просмотреть файл
@@ -340,7 +340,7 @@ Resource::create(MemoryType memType, CreateParams* params, bool heap)
uint viewLevel = 0;
uint viewFlags = 0;
gslResource3D viewSize = {0};
CALdomain viewOffset = {0};
size_t viewOffset = 0;
cmSurfFmt viewSurfFmt;
gslChannelOrder viewChannelOrder = GSL_CHANNEL_ORDER_UNSPECIFIED;
gslMemObjectAttribType viewResType;
@@ -623,10 +623,7 @@ Resource::create(MemoryType memType, CreateParams* params, bool heap)
viewSize.width = bytePitch / elementSize();
viewSize.height = 1;
viewSize.depth = 1;
viewOffset.x = static_cast<CALuint>(offset() / elementSize());
viewOffset.y = 0;
viewOffset.width = 0;
viewOffset.height = 0;
viewOffset = static_cast<CALuint>(offset() / elementSize());
gslResource = dev().resAllocView(
view->resource_->gslResource(), viewSize, viewOffset,
@@ -833,7 +830,7 @@ Resource::create(MemoryType memType, CreateParams* params, bool heap)
viewSize.height = cal()->height_;
viewSize.depth = 1;
bytePitch = static_cast<size_t>(gslResource->getPitch());
viewOffset.x = 0;
viewOffset = 0;
viewSurfFmt = cal()->format_;
viewChannelOrder = cal()->channelOrder_;
switch (d3dRes->layer_) {
@@ -843,7 +840,7 @@ Resource::create(MemoryType memType, CreateParams* params, bool heap)
break;
case 1:
// Y - plane size to the offset
viewOffset.x = bytePitch * viewSize.height * 2;
viewOffset = bytePitch * viewSize.height * 2;
if (d3dRes->misc == 2) {
// YV12 format U is 2 times smaller plane
bytePitch /= 2;
@@ -852,7 +849,7 @@ Resource::create(MemoryType memType, CreateParams* params, bool heap)
case 2:
// Y + U plane sizes to the offest.
// U plane is 4 times smaller than Y => 5/2
viewOffset.x = bytePitch * viewSize.height * 5 / 2;
viewOffset = bytePitch * viewSize.height * 5 / 2;
// V is 2 times smaller plane
bytePitch /= 2;
break;
@@ -900,10 +897,7 @@ Resource::create(MemoryType memType, CreateParams* params, bool heap)
viewSize.width = cal()->width_ + (pinOffset() / elementSize());
viewSize.height = cal()->height_;
viewSize.depth = cal()->depth_;
viewOffset.x = hostMemOffset / static_cast<CALuint>(elementSize());
viewOffset.y = 0;
viewOffset.width = 0;
viewOffset.height = 0;
viewOffset = hostMemOffset / static_cast<CALuint>(elementSize());
viewSurfFmt = cal()->format_;
viewChannelOrder = cal()->channelOrder_;
}
@@ -1669,7 +1663,7 @@ Resource::mapLayers(VirtualGPU* gpu, CALuint flags)
// Loop through all layers
for (uint i = startLayer_; i < layers; ++i) {
gslResource3D gslSize;
CALdomain calOffset;
size_t calOffset;
void* sliceAddr;
size_t pitch;
@@ -1677,11 +1671,7 @@ Resource::mapLayers(VirtualGPU* gpu, CALuint flags)
gslSize.width = cal()->width_;
gslSize.height = height;
gslSize.depth = 1;
calOffset.x = 0;
calOffset.y = 0;
calOffset.width = 0;
calOffset.height = 0;
calOffset = 0;
sliceResource = dev().resAllocView(
gslResource(), gslSize,
calOffset, cal()->format_, cal()->channelOrder_, gslDim,
@@ -1780,7 +1770,7 @@ Resource::unmapLayers(VirtualGPU* gpu)
// Loop through all layers
for (uint i = startLayer_; i < layers; ++i) {
gslResource3D gslSize;
CALdomain calOffset;
size_t calOffset;
void* sliceAddr;
size_t pitch;
@@ -1788,11 +1778,7 @@ Resource::unmapLayers(VirtualGPU* gpu)
gslSize.width = cal()->width_;
gslSize.height = height;
gslSize.depth = 1;
calOffset.x = 0;
calOffset.y = 0;
calOffset.width = 0;
calOffset.height = 0;
calOffset = 0;
sliceResource = dev().resAllocView(
gslResource(), gslSize,
calOffset, cal()->format_, cal()->channelOrder_, gslDim,
+4 -1
Просмотреть файл
@@ -73,7 +73,10 @@ public:
//! CAL descriptor for the GPU virtual device
struct CalVirtualDesc : public amd::EmbeddedObject
{
ProgramGrid progGrid_; //!< CAL program grid
gslDomain3D gridBlock; //!< size of a block of data
gslDomain3D gridSize; //!< size of 'blocks' to execute
gslDomain3D partialGridBlock;//!< Partial grid block
CALuint localSize; //!< size of OpenCL Local Memory in bytes
uint memCount_; //!< Memory objects count
GpuEvent events_[AllEngines]; //!< Last known GPU events
uint iterations_; //!< Number of iterations for the execution
+3 -41
Просмотреть файл
@@ -28,7 +28,6 @@ void CALGSLDevice::Initialize()
m_textureResource = 0;
m_textureSampler = 0;
m_target = (CALtarget)0xffffffff;
m_vpucount = 1;
m_srcDRMDMAMem = NULL ;
m_dstDRMDMAMem = NULL ;
@@ -87,7 +86,6 @@ CALGSLDevice::getAttribs_int(gsl::gsCtx* cs)
m_attribs.struct_size = sizeof(CALdeviceattribs);
m_attribs.target = m_target;
m_attribs.targetRevision = m_revision;
gslMemInfo memInfo;
cs->getMemInfo(&memInfo, GSL_MEMINFO_BASIC);
@@ -109,36 +107,16 @@ CALGSLDevice::getAttribs_int(gsl::gsCtx* cs)
m_attribs.numberOfCUsperShaderArray = cs->getNumCUsPerShaderArray();
m_attribs.wavefrontSize = cs->getWaveFrontSize();
m_attribs.doublePrecision = cs->getIsDoublePrecisionSupported();
m_attribs.localDataShare = cs->getIsLocalDataShareSupported();
m_attribs.globalDataShare = cs->getIsGlobalDataShareSupported();
m_attribs.globalGPR = cs->getIsGlobalGPRSupported();
m_attribs.computeShader = cs->getIsComputeShaderSupported();
m_attribs.memExport = cs->getIsMemExportSupported();
m_attribs.memBusWidth = cs->getVramBitWidth();
m_attribs.numMemBanks = cs->getVramBanks();
m_attribs.isWorkstation = cs->getIsWorkstation();
// Add this to HWL query
m_attribs.pitch_alignment = 256;
#ifdef ATI_OS_WIN
// 4KB aligned on Windows
m_attribs.surface_alignment = 4096;
#else
// 256B aligned on Linux
m_attribs.surface_alignment = 256;
#endif
m_attribs.numberOfUAVs = cs->getNumUAVs();
m_attribs.bUAVMemExport = cs->getIsUAVAsMemExport();
m_attribs.numberOfShaderEngines = cs->getNumShaderEngines();
m_attribs.pciTopologyInformation = m_adp->getLocationId();
const uint8* boardName = cs->getString(GSL_GS_RENDERER);
::strncpy(m_attribs.boardName, (char*)boardName, CAL_ASIC_INFO_MAX_LEN * sizeof(char));
m_attribs.vectorBufferInstructionAddr64 = cs->getVectorBufferInstructionAddr64Supported();
m_attribs.memRandomAccessTargetInstructions = cs->getMemRandomAccessTargetInstructionsSupported();
m_attribs.counterFreq = cs->getCounterFreq();
m_attribs.nanoSecondsPerTick = 1000000000.0 / cs->getCounterFreq();
m_attribs.longIdleDetect = cs->getLongIdleDetect();
@@ -338,7 +316,6 @@ CALGSLDevice::SetupAdapter(int32 &asic_id)
return false;
}
m_vpucount = m_adp->getNumLinkedVPUs();
asic_id = m_adp->getAsicID();
if ((asic_id < GSL_ATIASIC_ID_TAHITI_P) ||
@@ -361,7 +338,7 @@ CALGSLDevice::SetupAdapter(int32 &asic_id)
//Disable DRMDMA on CFX mode for linux on all GPUs.
#ifdef ATI_OS_LINUX
if ((m_vpucount > 1) && !DRMDMA_FOR_LNX_CF)
if ((m_adp->getNumLinkedVPUs() > 1) && !DRMDMA_FOR_LNX_CF)
{
m_canDMA = ATIGL_FALSE;
}
@@ -415,7 +392,6 @@ CALGSLDevice::SetupContext(int32 &asic_id)
m_canDMA ? GSL_ENGINEID_DRMDMA0 : GSL_ENGINEID_INVALID, true);
temp_cs->getMainSubCtx()->setVPUMask(m_vpuMask);
m_revision = temp_cs->getChipRev();
m_maxtexturesize = temp_cs->getMaxTextureSize();
switch (asic_id)
@@ -646,12 +622,6 @@ CALGSLDevice::PerformFullInitialization_int()
}
}
uint32
CALGSLDevice::getVPUCount()
{
return m_vpucount;
}
void
Wait(gsl::gsCtx* cs, gslQueryTarget target, gslQueryObject object)
{
@@ -795,7 +765,7 @@ CALGSLDevice::resAlloc(const CALresourceDesc* desc) const
}
gslMemObject
CALGSLDevice::resAllocView(gslMemObject res, gslResource3D size, CALdomain offset, cmSurfFmt format,
CALGSLDevice::resAllocView(gslMemObject res, gslResource3D size, size_t offset, cmSurfFmt format,
gslChannelOrder channelOrder, gslMemObjectAttribType resType, uint32 level, uint32 layer, uint32 flags,
uint64 bytePitch) const
{
@@ -847,19 +817,11 @@ CALGSLDevice::resAllocView(gslMemObject res, gslResource3D size, CALdomain offse
break;
};
// Don't handle offsets for tiled surfaces.
if (offset.x != 0 &&
offset.y != 0 &&
attribs.tiling == GSL_MOA_TILING_TILED)
{
return 0;
}
// Check any alignment restrictions.
uint64 resPitch = res->getPitch();
cmSurfFmt baseFormat = res->getFormat();
uint32 elementSize = cmGetSurfElementSize(static_cast<cmSurfFmt>(baseFormat));
uint64 offsetInBytes = (offset.y * (uint32)resPitch + offset.x) * elementSize;
uint64 offsetInBytes = static_cast<uint64>(offset) * elementSize;
if (offsetInBytes % alignment)
{
return 0; //offset doesn't match alignment requirements.
+1 -5
Просмотреть файл
@@ -66,7 +66,7 @@ public:
gslMemObject resGetHeap(size_t size) const;
gslMemObject resAllocView(gslMemObject res, gslResource3D size,
CALdomain offset, cmSurfFmt format, gslChannelOrder channelOrder,
size_t offset, cmSurfFmt format, gslChannelOrder channelOrder,
gslMemObjectAttribType resType, uint32 level, uint32 layer,
uint32 flags, uint64 bytePitch = (uint64)-1) const;
@@ -100,8 +100,6 @@ public:
bool isVmMode() const { return m_vmMode; };
uint32 getVPUCount();
void setVPUMask(uint32 mask);
uint32 getVPUMask() const { return m_vpuMask; }
bool uavInCB() const { return m_uavInCB; }
bool canDMA() const { return m_canDMA; }
@@ -171,10 +169,8 @@ private:
gslRenderState m_rs;
CALtarget m_target;
CALuint m_elfmachine;
uint32 m_revision;
uint32 m_vpuMask;
uint32 m_chainIndex;
int32 m_vpucount;
int32 m_maxtexturesize;
uint32 m_gpuIndex;
void* m_nativeDisplayHandle;
-4
Просмотреть файл
@@ -21,14 +21,12 @@ getFuncInfoFromImage(CALimage image, CALfuncInfo *pFuncInfo)
pFuncInfo->maxScratchRegsNeeded = 0;
pFuncInfo->numSharedGPRUser = 0;
pFuncInfo->numSharedGPRTotal = 0;
pFuncInfo->eCsSetupMode = false;
pFuncInfo->numThreadPerGroup = 0;
pFuncInfo->numThreadPerGroupX = 0;
pFuncInfo->numThreadPerGroupY = 0;
pFuncInfo->numThreadPerGroupZ = 0;
pFuncInfo->totalNumThreadGroup = 0;
pFuncInfo->numWavefrontPerSIMD = 0;
pFuncInfo->isMaxNumWavePerSIMD = false;
pFuncInfo->setBufferForNumGroup = false;
pFuncInfo->wavefrontSize = 0;
pFuncInfo->numGPRsAvailable = 0;
@@ -101,7 +99,6 @@ getFuncInfoFromImage(CALimage image, CALfuncInfo *pFuncInfo)
pFuncInfo->numSharedGPRTotal = pInfos[i].value;
break;
case AMU_ABI_ECS_SETUP_MODE:
pFuncInfo->eCsSetupMode = (0 != pInfos[i].value) ? true : false;
break;
case AMU_ABI_NUM_THREAD_PER_GROUP:
pFuncInfo->numThreadPerGroup = pInfos[i].value;
@@ -123,7 +120,6 @@ getFuncInfoFromImage(CALimage image, CALfuncInfo *pFuncInfo)
pFuncInfo->numWavefrontPerSIMD = pInfos[i].value;
break;
case AMU_ABI_IS_MAX_NUM_WAVE_PER_SIMD:
pFuncInfo->isMaxNumWavePerSIMD = (0 != pInfos[i].value) ? true : false;
break;
case AMU_ABI_SET_BUFFER_FOR_NUM_GROUP:
pFuncInfo->setBufferForNumGroup = (0 != pInfos[i].value) ? true : false;
-30
Просмотреть файл
@@ -48,14 +48,6 @@ typedef struct CALimageRec* CALimage;
#define CAL_ASIC_INFO_MAX_LEN 128
/** CAL computational domain */
typedef struct CALdomainRec {
CALuint x; /**< x origin of domain */
CALuint y; /**< y origin of domain */
CALuint width; /**< width of domain */
CALuint height; /**< height of domain */
} CALdomain;
/** CAL device attributes */
typedef struct CALdeviceattribsRec {
CALuint struct_size; /**< Client filled out size of CALdeviceattribs struct */
@@ -69,17 +61,7 @@ typedef struct CALdeviceattribsRec {
CALuint numberOfSIMD; /**< Number of SIMDs */
CALuint numberOfCUsperShaderArray; /**< Number of CUs per shader array */
bool doublePrecision; /**< double precision supported */
bool localDataShare; /**< local data share supported */
bool globalDataShare; /**< global data share supported */
bool globalGPR; /**< global GPR supported */
bool computeShader; /**< compute shader supported */
bool memExport; /**< memexport supported */
CALuint pitch_alignment; /**< Required alignment for calCreateRes allocations (in data elements) */
CALuint surface_alignment; /**< Required start address alignment for calCreateRes allocations (in bytes) */
CALuint numberOfUAVs; /**< Number of UAVs */
bool bUAVMemExport; /**< Hw only supports mem export to simulate 1 UAV */
CALuint numberOfShaderEngines; /**< Number of shader engines */
CALuint targetRevision; /**< Asic family revision */
CALuint totalVisibleHeap; /**< Amount of visible local GPU RAM in megabytes */
CALuint totalInvisibleHeap; /**< Amount of invisible local GPU RAM in megabytes */
CALuint totalDirectHeap; /**< Amount of direct GPU memory in megabytes */
@@ -89,8 +71,6 @@ typedef struct CALdeviceattribsRec {
CALuint totalSDIHeap; /**< Amount of SDI memory allocated in CCC */
CALuint pciTopologyInformation; /**< PCI topology information contains: bus, device and function number. */
CALchar boardName[CAL_ASIC_INFO_MAX_LEN]; /**< Actual ASIC board name and not the internal name. */
bool vectorBufferInstructionAddr64; /**< Vector buffer instructions support ADDR64 mode */
bool memRandomAccessTargetInstructions; /**< hw/sc supports memory RAT (Random Access Target) instructions e.g. mem0.x_z_ supported */
CALuint memBusWidth; /**< Memory busw width */
CALuint numMemBanks; /**< Number of memory banks */
CALuint counterFreq; /**< Ref clock counter frequency */
@@ -119,14 +99,12 @@ typedef struct CALfuncInfoRec
CALuint maxScratchRegsNeeded; /**< Maximum number of scratch regs needed */
CALuint numSharedGPRUser; /**< Number of shared GPRs */
CALuint numSharedGPRTotal; /**< Number of shared GPRs including ones used by SC */
bool eCsSetupMode; /**< Slow mode */
CALuint numThreadPerGroup; /**< Flattend umber of threads per group */
CALuint numThreadPerGroupX; /**< x dimension of numThreadPerGroup */
CALuint numThreadPerGroupY; /**< y dimension of numThreadPerGroup */
CALuint numThreadPerGroupZ; /**< z dimension of numThreadPerGroup */
CALuint totalNumThreadGroup; /**< Total number of thread groups */
CALuint numWavefrontPerSIMD; /**< Number of wavefronts per SIMD */
bool isMaxNumWavePerSIMD; /**< Is this the max num active wavefronts per SIMD */
bool setBufferForNumGroup; /**< Need to set up buffer for info on number of thread groups? */
CALuint wavefrontSize; /**< number of threads per wavefront. */
CALuint numGPRsAvailable; /**< number of GPRs available to the program */
@@ -141,14 +119,6 @@ typedef struct CALfuncInfoRec
CALuint numVGPRsUsed; /**< number of VGPRs used by the program */
} CALfuncInfo;
typedef struct ProgramGridRec
{
gslDomain3D gridBlock; /**< size of a block of data */
gslDomain3D gridSize; /**< size of 'blocks' to execute. */
gslDomain3D partialGridBlock;/** Partial grid block */
CALuint localSize; /** size of OpenCL Local Memory in bytes */
} ProgramGrid;
// flags for calCtxWaitForEvents
typedef enum CALwaitTypeEnum
{