From 90d02bf2aad204f9e5cf34df1facce0db5badf9d Mon Sep 17 00:00:00 2001
From: foreman
Date: Tue, 18 Oct 2016 18:24:51 -0400
Subject: [PATCH] P4 to Git Change 1328163 by gandryey@gera-w8 on 2016/10/18
18:18:22
SWDEV-86035 - Integrate PAL from //depot/stg/pal_prm/... up to version 207
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/Makefile#16 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/pal.h#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palCmdBuffer.h#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palDevice.h#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palImage.h#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palLib.h#14 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palQueue.h#11 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palUtil.h#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/res/ver.h#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdAllocator.cpp#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdAllocator.h#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdBuffer.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdBuffer.h#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdStream.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdStream.h#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/device.cpp#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/device.h#14 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/engine.cpp#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/engine.h#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Barrier.cpp#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6CmdStream.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6CmdStream.h#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ComputeCmdBuffer.cpp#14 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ComputeEngine.cpp#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ComputeEngine.h#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Device.cpp#14 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Device.h#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Image.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6IndirectCmdGenerator.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6MaskRam.cpp#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6OcclusionQueryPool.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PalSettings.cfg#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PerfExperiment.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PipelineStatsQueryPool.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6QueueContexts.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6QueueContexts.h#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ScMgr.cpp#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6StreamoutStatsQueryPool.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6UniversalCmdBuffer.cpp#14 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6UniversalEngine.cpp#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6UniversalEngine.h#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Barrier.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9BorderColorPalette.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9CmdStream.cpp#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9CmdStream.h#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9CmdUtil.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9CmdUtil.h#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ColorTargetView.cpp#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ComputeCmdBuffer.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ComputeEngine.cpp#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ComputeEngine.h#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Device.cpp#15 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Device.h#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Gds.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipeline.cpp#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineGs.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineGs.h#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineGsTess.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelinePrim.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineSurfPrim.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9HwGs.cpp#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9HwGs.h#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Image.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9IndirectCmdGenerator.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9MaskRam.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9MetaEq.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9MsaaState.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9OcclusionQueryPool.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PerfCounter.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PerfExperiment.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PerfExperiment.h#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PerfTrace.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkGs.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineStatsQueryPool.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9QueueContexts.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9QueueContexts.h#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ScMgr.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ShaderMemImage.cpp#11 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ShaderMemImage.h#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ShaderRingSet.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9StreamoutStatsQueryPool.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9UniversalCmdBuffer.cpp#15 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9UniversalEngine.cpp#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9UniversalEngine.h#1 branch
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9UserDataTableImpl.h#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxCmdBuffer.cpp#11 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxCmdStream.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxCmdStream.h#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxDevice.cpp#11 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxDevice.h#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/ilp/ilMetadata.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/queryPool.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/g_rpmComputePipelineInfo.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/gfx6/gfx6RsrcProcMgr.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/gfx9/gfx9RsrcProcMgr.cpp#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rpmUtil.cpp#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rpmUtil.h#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rsrcProcMgr.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/rgbToYuvPacked.cs#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/yuvIntToRgb.cs#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/shader.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss1/oss1Device.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss1/oss1Device.h#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss2/oss2Device.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss2/oss2Device.h#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss2_4/oss2_4Device.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss2_4/oss2_4Device.h#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss4/oss4Device.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss4/oss4Device.h#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/ossDevice.h#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/ossDmaCmdBuffer.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/ossDmaCmdBuffer.h#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5Device.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5Device.h#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdCmdStream.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdDevice.h#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vce3/vce3Device.cpp#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vce3/vce3Device.h#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vceCmdStream.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vceDevice.h#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/image.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/image.h#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/addrinterface.cpp#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/addrinterface.h#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/addrtypes.h#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/core/addrelemlib.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/core/addrelemlib.h#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/core/addrlib2.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/core/addrlib2.h#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/gfx9/gfx9addrlib.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/gfx9/gfx9addrlib.h#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerCmdBuffer.cpp#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerCmdBuffer.h#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayDevice.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayFpsMgr.cpp#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayFpsMgr.h#3 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayQueue.cpp#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayQueue.h#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayTextWriter.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/decorators.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/decorators.h#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerCmdBuffer.cpp#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerCmdBuffer.h#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerDevice.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerDevice.h#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerQueue.cpp#11 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerQueue.h#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerQueueFileLogger.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/interfaceLogger/interfaceLoggerCmdBuffer.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/interfaceLogger/interfaceLoggerLogContext.cpp#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/interfaceLogger/interfaceLoggerLogContext.h#5 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/interfaceLogger/interfaceLoggerLogContextEnum.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/interfaceLogger/interfaceLoggerLogContextStruct.cpp#6 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxDevice.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxDevice.h#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxGpuMemory.cpp#7 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxQueue.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/nullDevice/ndDevice.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm1/wddm1Device.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm2/wddm2Device.cpp#8 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm2/wddm2Queue.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winDevice.cpp#14 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winDevice.h#13 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winFlgl.cpp#2 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winPresentTechniqueBlit.cpp#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winPresentTechniqueGdi.cpp#10 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winQueue.cpp#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winQueue.h#9 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winTimerQueue.cpp#4 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/queue.cpp#11 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/queue.h#11 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/make/Makefile.pal#12 integrate
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/teamcity/tc_client.xml#4 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#25 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#31 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#15 edit
[ROCm/clr commit: c9daca9d53c38e28c07f7c93b762a732e34add47]
---
.../rocclr/runtime/device/pal/paldevice.cpp | 25 ++--
.../rocclr/runtime/device/pal/palvirtual.cpp | 109 +++++++++++++-----
.../rocclr/runtime/device/pal/palvirtual.hpp | 24 ++--
3 files changed, 106 insertions(+), 52 deletions(-)
diff --git a/projects/clr/rocclr/runtime/device/pal/paldevice.cpp b/projects/clr/rocclr/runtime/device/pal/paldevice.cpp
index 930bcbdab2..2203b01e66 100644
--- a/projects/clr/rocclr/runtime/device/pal/paldevice.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/paldevice.cpp
@@ -466,8 +466,10 @@ void NullDevice::fillDeviceInfo(
info_.localMemBanks_ = hwInfo()->localMemBanks_;
info_.gfxipVersion_ = hwInfo()->gfxipVersion_;
info_.numAsyncQueues_ = numComputeRings;
- info_.numRTQueues_ = 2;
- info_.numRTCUs_ = 4;
+ info_.numRTQueues_ =
+ palProp.engineProperties[Pal::EngineTypeExclusiveCompute].engineCount - 1;
+ info_.numRTCUs_ = 0x8;
+ //palProp.engineProperties[Pal::EngineTypeExclusiveCompute].maxNumDedicatedCu;
info_.threadTraceEnable_ = settings().threadTraceEnable_;
}
}
@@ -693,13 +695,11 @@ Device::create(Pal::IDevice* device)
return false;
}
-
// Find the number of available engines
numComputeEngines_ =
- properties().engineProperties[Pal::QueueTypeCompute].engineCount -
- properties().engineProperties[Pal::QueueTypeCompute].numExclusiveComputeEngines;
+ properties().engineProperties[Pal::EngineTypeCompute].engineCount;
numDmaEngines_ =
- properties().engineProperties[Pal::QueueTypeDma].engineCount;
+ properties().engineProperties[Pal::EngineTypeDma].engineCount;
Pal::PalPublicSettings*const palSettings = iDev()->GetPublicSettings();
// Modify settings here
@@ -715,9 +715,13 @@ Device::create(Pal::IDevice* device)
Pal::DeviceFinalizeInfo finalizeInfo = {};
// Request all compute engines
- finalizeInfo.engineCounts[Pal::QueueTypeCompute] = numComputeEngines_;
+ finalizeInfo.requestedEngineCounts[Pal::EngineTypeCompute].engines =
+ ((1 << numComputeEngines_) - 1);
+ // Request real time compute engines
+ //finalizeInfo.requestedEngineCounts[Pal::EngineTypeExclusiveCompute].engines = 3;
// Request all SDMA engines
- finalizeInfo.engineCounts[Pal::QueueTypeDma] = numDmaEngines_;
+ finalizeInfo.requestedEngineCounts[Pal::EngineTypeDma].engines =
+ (1 << numDmaEngines_) - 1;
result = iDev()->Finalize(finalizeInfo);
}
@@ -943,10 +947,7 @@ Device::createVirtualDevice(
}
VirtualGPU* vgpu = new VirtualGPU(*this);
- if (vgpu && vgpu->create(
- profiling
- , deviceQueueSize
- )) {
+ if (vgpu && vgpu->create(profiling, deviceQueueSize, rtCUs, queue->priority())) {
return vgpu;
} else {
delete vgpu;
diff --git a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp
index 34549e699d..bfa1a5b032 100644
--- a/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp
+++ b/projects/clr/rocclr/runtime/device/pal/palvirtual.cpp
@@ -37,21 +37,41 @@ VirtualGPU::Queue::Create(
Pal::IDevice* palDev,
Pal::QueueType queueType,
uint engineIdx,
- Pal::ICmdAllocator* cmdAllocator)
+ Pal::ICmdAllocator* cmdAllocator,
+ uint rtCU,
+ amd::CommandQueue::Priority priority)
{
Pal::Result result;
+ Pal::CmdBufferCreateInfo cmdCreateInfo = {};
Pal::QueueCreateInfo qCreateInfo = {};
- qCreateInfo.engineType = queueType;
qCreateInfo.engineIndex = engineIdx;
- qCreateInfo.aqlQueue = true;
+ qCreateInfo.aqlQueue = true;
+ qCreateInfo.queueType = queueType;
+ if (queueType == Pal::QueueTypeDma) {
+ cmdCreateInfo.engineType = qCreateInfo.engineType = Pal::EngineTypeDma;
+ }
+ else {
+ cmdCreateInfo.engineType = qCreateInfo.engineType = Pal::EngineTypeCompute;
+ }
+/*
+ if (priority == amd::CommandQueue::Priority::Medium) {
+ qCreateInfo.engineIndex = 0x1;
+ cmdCreateInfo.engineType = qCreateInfo.engineType = Pal::EngineTypeExclusiveCompute;
+ }
+ else if (amd::CommandQueue::RealTimeDisabled != rtCU) {
+ qCreateInfo.numReservedCu = rtCU;
+ qCreateInfo.engineIndex = 0x0;
+ cmdCreateInfo.engineType = qCreateInfo.engineType = Pal::EngineTypeExclusiveCompute;
+ cmdCreateInfo.flags.rtCu = true;
+ }
+*/
// Find queue object size
size_t qSize = palDev->GetQueueSize(qCreateInfo, &result);
if (result != Pal::Result::Success) {
return nullptr;
}
- Pal::CmdBufferCreateInfo cmdCreateInfo = {};
cmdCreateInfo.pCmdAllocator = cmdAllocator;
cmdCreateInfo.queueType = queueType;
@@ -678,7 +698,8 @@ VirtualGPU::VirtualGPU(
}
bool
-VirtualGPU::create(bool profiling, uint deviceQueueSize)
+VirtualGPU::create(bool profiling, uint deviceQueueSize, uint rtCUs,
+ amd::CommandQueue::Priority priority)
{
device::BlitManager::Setup blitSetup;
@@ -726,7 +747,7 @@ VirtualGPU::create(bool profiling, uint deviceQueueSize)
hwRing_ = (dev().settings().useSingleScratch_) ? 0 : idx;
queues_[MainEngine] = Queue::Create(
- dev().iDev(), Pal::QueueTypeCompute, idx + firstQueue, cmdAllocator_);
+ dev().iDev(), Pal::QueueTypeCompute, idx + firstQueue, cmdAllocator_, rtCUs, priority);
if (nullptr == queues_[MainEngine]) {
return false;
}
@@ -743,7 +764,8 @@ VirtualGPU::create(bool profiling, uint deviceQueueSize)
}
queues_[SdmaEngine] = Queue::Create(
- dev().iDev(), Pal::QueueTypeDma, sdma, cmdAllocator_);
+ dev().iDev(), Pal::QueueTypeDma, sdma, cmdAllocator_,
+ amd::CommandQueue::RealTimeDisabled, amd::CommandQueue::Priority::Normal);
if (nullptr == queues_[SdmaEngine]) {
return false;
}
@@ -2011,15 +2033,15 @@ VirtualGPU::submitKernelInternal(
GpuEvent gpuEvent;
// Set up the dispatch information
Pal::DispatchAqlParams dispatchParam = {};
- dispatchParam.pAqlPacket = aqlPkt;
+ dispatchParam.pAqlPacket = aqlPkt;
if (nullptr != scratch) {
- dispatchParam.scratchAddr = scratch->memObj_->vmAddress();
- dispatchParam.scratchSize = scratch->size_;
- dispatchParam.scratchOffset = scratch->offset_;
+ dispatchParam.scratchAddr = scratch->memObj_->vmAddress();
+ dispatchParam.scratchSize = scratch->size_;
+ dispatchParam.scratchOffset = scratch->offset_;
}
- dispatchParam.pCpuAqlCode = hsaKernel.cpuAqlCode();
- dispatchParam.hsaQueueVa = hsaQueueMem_->vmAddress();
- dispatchParam.wavesPerSh = hsaKernel.getWavesPerSH(this);
+ dispatchParam.pCpuAqlCode = hsaKernel.cpuAqlCode();
+ dispatchParam.hsaQueueVa = hsaQueueMem_->vmAddress();
+ dispatchParam.wavesPerSh = hsaKernel.getWavesPerSH(this);
// Run AQL dispatch in HW
eventBegin(MainEngine);
@@ -3415,31 +3437,56 @@ VirtualGPU::submitTransferBufferFromFile(amd::TransferBufferFileCommand& cmd)
{
size_t copySize = cmd.size()[0];
size_t fileOffset = cmd.fileOffset();
- size_t srcDstOffset = cmd.origin()[0];
Memory* mem = dev().getGpuMemory(&cmd.memory());
uint idx = 0;
assert((cmd.type() == CL_COMMAND_READ_SSG_FILE_AMD) ||
(cmd.type() == CL_COMMAND_WRITE_SSG_FILE_AMD));
- bool writeBuffer(cmd.type() == CL_COMMAND_READ_SSG_FILE_AMD);
+ const bool writeBuffer(cmd.type() == CL_COMMAND_READ_SSG_FILE_AMD);
- while (copySize > 0) {
- Memory* staging = dev().getGpuMemory(&cmd.staging(idx));
- size_t srcDstSize = amd::TransferBufferFileCommand::StagingBufferSize;
- srcDstSize = std::min(srcDstSize, copySize);
- void* srcDstBuffer = staging->cpuMap(*this);
- if (!cmd.file()->transferBlock(writeBuffer,
- srcDstBuffer, staging->size(), fileOffset, 0, srcDstSize)) {
- cmd.setStatus(CL_INVALID_OPERATION);
- return;
+ if (writeBuffer) {
+ size_t dstOffset = cmd.origin()[0];
+ while (copySize > 0) {
+ Memory* staging = dev().getGpuMemory(&cmd.staging(idx));
+ size_t dstSize = amd::TransferBufferFileCommand::StagingBufferSize;
+ dstSize = std::min(dstSize, copySize);
+ void* dstBuffer = staging->cpuMap(*this);
+ if (!cmd.file()->transferBlock(writeBuffer,
+ dstBuffer, staging->size(), fileOffset, 0, dstSize)) {
+ cmd.setStatus(CL_INVALID_OPERATION);
+ return;
+ }
+ staging->cpuUnmap(*this);
+
+ bool result = blitMgr().copyBuffer(*staging, *mem,
+ 0, dstOffset, dstSize, false);
+ flushDMA(getGpuEvent(staging->iMem())->engineId_);
+ fileOffset += dstSize;
+ dstOffset += dstSize;
+ copySize -= dstSize;
}
- staging->cpuUnmap(*this);
+ }
+ else {
+ size_t srcOffset = cmd.origin()[0];
+ while (copySize > 0) {
+ Memory* staging = dev().getGpuMemory(&cmd.staging(idx));
+ size_t srcSize = amd::TransferBufferFileCommand::StagingBufferSize;
+ srcSize = std::min(srcSize, copySize);
+ bool result = blitMgr().copyBuffer(*mem, *staging,
+ srcOffset, 0, srcSize, false);
- bool result = blitMgr().copyBuffer(*staging, *mem,
- fileOffset, srcDstOffset, srcDstSize, false);
- flushDMA(getGpuEvent(staging->iMem())->engineId_);
- srcDstOffset += srcDstSize;
- copySize -= srcDstSize;
+ void* srcBuffer = staging->cpuMap(*this);
+ if (!cmd.file()->transferBlock(writeBuffer,
+ srcBuffer, staging->size(), fileOffset, 0, srcSize)) {
+ cmd.setStatus(CL_INVALID_OPERATION);
+ return;
+ }
+ staging->cpuUnmap(*this);
+
+ fileOffset += srcSize;
+ srcOffset += srcSize;
+ copySize -= srcSize;
+ }
}
}
} // namespace pal
diff --git a/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp b/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp
index e68248c68c..80f2b8ec9b 100644
--- a/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp
+++ b/projects/clr/rocclr/runtime/device/pal/palvirtual.hpp
@@ -10,6 +10,7 @@
#include "device/pal/paltimestamp.hpp"
#include "device/pal/palsched.hpp"
#include "device/pal/paldebugger.hpp"
+#include "platform/commandqueue.hpp"
#include "device/blit.hpp"
#include "palUtil.h"
#include "palCmdBuffer.h"
@@ -47,12 +48,15 @@ public:
static const uint StartCmdBufIdx = 1;
static const uint FirstMemoryReference = 0x80000000;
static const uint64_t WaitTimeoutInNsec = 6000000000;
+ static const uint64_t PollIntervalInNsec = 500000;
static Queue* Create(
- Pal::IDevice* palDev, //!< PAL device object
- Pal::QueueType queueType, //!< PAL queue type
- uint engineIdx, //!< Select particular engine index
- Pal::ICmdAllocator* cmdAlloc//!< PAL CMD buffer allocator
+ Pal::IDevice* palDev, //!< PAL device object
+ Pal::QueueType queueType, //!< PAL queue type
+ uint engineIdx, //!< Select particular engine index
+ Pal::ICmdAllocator* cmdAlloc, //!< PAL CMD buffer allocator
+ uint rtCU, //!< The number of reserved CUs
+ amd::CommandQueue::Priority priority //!< Queue priority
);
Queue(Pal::IDevice* palDev)
@@ -87,11 +91,14 @@ public:
bool waifForFence(uint cbId) const
{
Pal::Result result = Pal::Result::Success;
+ uint64_t start = amd::Os::timeNanos();
while (Pal::Result::Success != (result = iCmdFences_[cbId]->GetStatus())) {
if (result == Pal::Result::ErrorFenceNeverSubmitted) {
result = Pal::Result::Success;
break;
}
+ uint64_t end = amd::Os::timeNanos();
+ if ((end - start) < PollIntervalInNsec) continue;
result = iDev_->WaitForFences(1, &iCmdFences_[cbId], true, WaitTimeoutInNsec);
if (Pal::Result::Success == result) {
break;
@@ -170,11 +177,8 @@ public:
{
struct
{
- uint boundGlobal_ : 1; //!< Global buffer was bound
uint profiling_ : 1; //!< Profiling is enabled
uint forceWait_ : 1; //!< Forces wait in flush()
- uint boundCb_ : 1; //!< Constant buffer was bound
- uint boundPrintf_ : 1; //!< Printf buffer was bound
uint profileEnabled_: 1; //!< Profiling is enabled for WaveLimiter
};
uint value_;
@@ -265,8 +269,10 @@ public:
VirtualGPU(Device& device);
//! Creates virtual gpu object
bool create(
- bool profiling, //!< Enables profilng on the queue
- uint deviceQueueSize = 0 //!< Device queue size, 0 if host queue
+ bool profiling, //!< Enables profilng on the queue
+ uint deviceQueueSize = 0, //!< Device queue size, 0 if host queue
+ uint rtCUs = amd::CommandQueue::RealTimeDisabled,
+ amd::CommandQueue::Priority priority = amd::CommandQueue::Priority::Normal
);
~VirtualGPU();