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();