9dd15fc110
SWDEV-86035 - Integrate PAL from //depot/stg/pal_prm/... up to version 179 Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/Makefile#9 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/build/Makefile.pal#3 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/pal.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palCmdAllocator.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palCmdBuffer.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palColorTargetView.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palCompoundState.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palDeveloperHooks.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palDevice.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palFormatInfo.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palGpuMemory.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palGpuMemoryBindable.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palImage.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palLib.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palPipeline.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palPrivateScreen.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palQueryPool.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palQueue.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palQueueSemaphore.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palScreen.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palShader.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/core/palSwapChain.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/gpuUtil/palTextWriter.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/gpuUtil/palTextWriterImpl.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palHashBase.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palHashBaseImpl.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palHashMap.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palHashMapImpl.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palHashSet.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palHashSetImpl.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palIntervalTree.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/inc/util/palIntervalTreeImpl.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/res/ver.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/addrMgr/addrMgr.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/addrMgr/addrMgr1/addrMgr1.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/addrMgr/addrMgr2/addrMgr2.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdBuffer.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/cmdBuffer.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/device.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/device.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/formatInfo.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/g_formatInfo.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/g_mergedFormatInfo.h#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/gpuEvent.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/gpuEvent.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/gpuMemory.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/gpuMemory.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/borderColorPalette.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/borderColorPalette.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/g_gfx6DataFormats.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/g_gfx6MergedDataFormats.h#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Barrier.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6BlendOptimizer.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Chip.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6CmdUtil.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6CmdUtil.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ColorBlendState.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ColorBlendState.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ColorTargetView.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6CompoundState.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6CompoundState.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ComputeCmdBuffer.cpp#8 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ComputePipeline.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ComputePipeline.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6DepthStencilView.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Device.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Device.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6FormatInfo.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6FormatInfo.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipeline.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipeline.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineGs.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineGs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineGsTess.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineGsTess.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineTess.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineTess.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineVsPs.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6GraphicsPipelineVsPs.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6HwPs.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6HwPs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Image.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6Image.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6IndirectCmdGenerator.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6MaskRam.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PalSettings.cfg#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PerfCtrInfo.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PipelineChunkEsGs.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PipelineChunkEsGs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PipelineChunkLsHs.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PipelineChunkLsHs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PipelineChunkVsPs.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6PipelineChunkVsPs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6QueueContexts.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6QueueContexts.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ScMgr.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6SettingsLoader.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ShaderMemImage.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6ShaderMemImage.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6UniversalCmdBuffer.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx6/gfx6UniversalCmdBuffer.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/doc/PostMortem.docx#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/g_gfx9DataFormats.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/g_gfx9MergedDataFormats.h#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Barrier.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Chip.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9CmdUtil.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ColorTargetView.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9CompoundState.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9CompoundState.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ComputeCmdBuffer.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ComputePipeline.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ComputePipeline.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9DepthStencilView.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Device.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Device.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9FormatInfo.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9FormatInfo.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipeline.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipeline.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineGs.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineGs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineGsTess.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineGsTess.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelinePrim.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelinePrim.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineSurfPrim.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineSurfPrim.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineTess.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineTess.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineVsPs.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9GraphicsPipelineVsPs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9HwGs.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9HwPs.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9HwPs.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9HwShader.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9HwShader.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Image.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9Image.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9MaskRam.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PerfExperiment.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PerfExperiment.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkGs.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkGs.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkHs.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkHs.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkPs.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkPs.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkVs.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9PipelineChunkVs.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9QueueContexts.cpp#8 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9QueueContexts.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ScMgr.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ShaderMemImage.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ShaderMemImage.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9ShaderRingSet.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfx9/gfx9UniversalCmdBuffer.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxCmdBuffer.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxCmdBuffer.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxCmdStream.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxDevice.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxDevice.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/gfxImage.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/graphicsPipeline.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/graphicsPipeline.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/indirectCmdGenerator.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/pipeline.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/pipeline.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/queryPool.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/queryPool.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/g_rpmComputePipelineInfo.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/gfx6/gfx6RsrcProcMgr.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/gfx6/gfx6RsrcProcMgr.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/gfx9/gfx9RsrcProcMgr.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/gfx9/gfx9RsrcProcMgr.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rpmGfxPipelineInfo.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rpmUtil.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rpmUtil.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rsrcProcMgr.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/rsrcProcMgr.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/copyImage2d.cs#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/copyImage2dShaderMipLevel.cs#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/copyImage2dms2x.cs#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/copyImage2dms4x.cs#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/copyImage2dms8x.cs#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/copyImageGammaCorrect2d.cs#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/rpm/shaders/msaaFmaskCopyImage.cs#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/shader.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/shader.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/shaderCache.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/shaderCache.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/gfxip/universalCmdBuffer.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/heapPerf/asicLexa.txt#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/oss4/oss4DmaCmdBuffer.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/ossip/ossDmaCmdBuffer.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/chip/drv_uvd_if.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5CmdBuffer.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5CmdBuffer.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5DecodePipeline.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5DecodePipeline.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5Device.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvd5/uvd5VideoDecodeStatsQueryPool.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdCmdBuffer.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdCmdBuffer.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdCmdStream.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdDecodePipeline.cpp#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdDecodePipeline.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdDevice.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdQueryPool.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/uvdip/uvdQueryPool.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vce3/vce3CmdBuffer.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vce3/vce3CmdBuffer.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vce3/vce3Device.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vce3/vce3EncodePipeline.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vce3/vce3EncodePipeline.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vceEncodePipeline.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vceEncodePipeline.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vceQueryPool.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/hw/vceip/vceQueryPool.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/image.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/image.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/r800/ciaddrlib.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/r800/ciaddrlib.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/imported/addrlib/r800/egbaddrlib.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/internalMemMgr.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerCmdBuffer.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerCmdBuffer.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerDevice.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerDevice.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerImage.cpp#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/cmdBufferLogger/cmdBufferLoggerImage.h#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayCmdBuffer.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayCmdBuffer.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayDevice.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/dbgOverlay/dbgOverlayImage.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/decorators.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/decorators.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerCmdBuffer.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerCmdBuffer.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerPlatform.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerQueue.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerQueue.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/layers/gpuProfiler/gpuProfilerQueueFileLogger.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxDevice.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxDevice.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxGpuMemory.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxGpuMemory.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxImage.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxQueue.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/lnx/lnxQueue.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm1/wddm1Device.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm1/wddm1Device.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm1/wddm1Queue.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm1/wddm1Queue.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm2/wddm2Device.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm2/wddm2Device.h#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm2/wddm2GpuMemory.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/wddm2/wddm2Queue.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winDevice.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winDevice.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winGpuMemory.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winGpuMemory.h#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winImage.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winPlatform.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winPlatform.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winPresentTechniqueBlit.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winPresentTechniqueGdi.cpp#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winPrivateScreen.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winQueueSemaphore.cpp#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winScreen.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winScreen.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winSwapChain.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/os/win/winSwapChain.h#4 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/perfExperiment.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/perfExperiment.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/privateScreen.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/privateScreen.h#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/queue.cpp#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/queue.h#7 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/queueSemaphore.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/settingsLoader.cpp#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/settingsLoader.h#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/core/vamMgr.cpp#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/make/Makefile.pal#6 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/src/util/h264.cpp#2 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/generate/dataFormatTemplates.py#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/generate/dataFormatsHelper.py#5 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/generate/generateMergedFormats/dataFormatTemplates.py#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/generate/generateMergedFormats/dataFormatsHelper.py#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/generate/generateMergedFormats/genDataFormats.py#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/generate/generateMergedFormats/generateFormatHeaders.bat#1 branch ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palbe/tools/teamcity/tc_client.xml#3 integrate ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#6 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#16 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.hpp#8 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.cpp#9 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.hpp#6 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.cpp#19 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palvirtual.hpp#8 edit
507 wiersze
18 KiB
C++
507 wiersze
18 KiB
C++
//
|
|
// Copyright (c) 2015 Advanced Micro Devices, Inc. All rights reserved.
|
|
//
|
|
#pragma once
|
|
|
|
#include "platform/command.hpp"
|
|
#include "platform/program.hpp"
|
|
#include "device/pal/paldefs.hpp"
|
|
|
|
//! \namespace pal PAL Resource Implementation
|
|
namespace pal {
|
|
|
|
class Device;
|
|
class VirtualGPU;
|
|
|
|
/*! \addtogroup PAL PAL Resource Implementation
|
|
* @{
|
|
*/
|
|
|
|
class GpuMemoryReference : public amd::ReferenceCountedObject
|
|
{
|
|
public:
|
|
static GpuMemoryReference* Create(
|
|
const Device& dev,
|
|
const Pal::GpuMemoryCreateInfo& createInfo);
|
|
|
|
static GpuMemoryReference* Create(
|
|
const Device& dev,
|
|
const Pal::PinnedGpuMemoryCreateInfo& createInfo);
|
|
|
|
static GpuMemoryReference* Create(
|
|
const Device& dev,
|
|
const Pal::ExternalResourceOpenInfo& openInfo);
|
|
|
|
static GpuMemoryReference* Create(
|
|
const Device& dev,
|
|
const Pal::ExternalImageOpenInfo& openInfo,
|
|
Pal::ImageCreateInfo* imgCreateInfo,
|
|
Pal::IImage** image);
|
|
|
|
//! Default constructor
|
|
GpuMemoryReference();
|
|
|
|
//! Get PAL memory object
|
|
Pal::IGpuMemory* iMem() const { return gpuMem_; }
|
|
|
|
Pal::IGpuMemory* gpuMem_; //!< PAL GPU memory object
|
|
void* cpuAddress_; //!< CPU address of this memory
|
|
|
|
protected:
|
|
//! Default destructor
|
|
~GpuMemoryReference();
|
|
|
|
private:
|
|
//! Disable copy constructor
|
|
GpuMemoryReference(const GpuMemoryReference&);
|
|
|
|
//! Disable operator=
|
|
GpuMemoryReference& operator=(const GpuMemoryReference&);
|
|
};
|
|
|
|
//! GPU resource
|
|
class Resource : public amd::HeapObject
|
|
{
|
|
public:
|
|
enum InteropType {
|
|
InteropTypeless = 0,
|
|
InteropVertexBuffer,
|
|
InteropIndexBuffer,
|
|
InteropRenderBuffer,
|
|
InteropTexture,
|
|
InteropTextureViewLevel,
|
|
InteropTextureViewCube,
|
|
InteropSurface
|
|
};
|
|
|
|
struct CreateParams : public amd::StackObject {
|
|
amd::Memory* owner_; //!< Resource's owner
|
|
VirtualGPU* gpu_; //!< Resource won't be shared between multiple queues
|
|
CreateParams(): owner_(NULL), gpu_(NULL) {}
|
|
};
|
|
|
|
struct PinnedParams : public CreateParams {
|
|
const amd::HostMemoryReference* hostMemRef_;//!< System memory pointer for pinning
|
|
size_t size_; //!< System memory size
|
|
};
|
|
|
|
struct ViewParams : public CreateParams {
|
|
size_t offset_; //!< Alias resource offset
|
|
size_t size_; //!< Alias resource size
|
|
const Resource* resource_; //!< Parent resource for the view creation
|
|
const void* memory_;
|
|
};
|
|
|
|
struct ImageViewParams : public CreateParams {
|
|
size_t level_; //!< Image mip level for a new view
|
|
size_t layer_; //!< Image layer for a new view
|
|
const Resource* resource_; //!< Parent resource for the view creation
|
|
const void* memory_;
|
|
};
|
|
|
|
struct ImageBufferParams : public CreateParams {
|
|
const Resource* resource_; //!< Parent resource for the image creation
|
|
const void* memory_;
|
|
};
|
|
|
|
struct OGLInteropParams : public CreateParams {
|
|
InteropType type_; //!< OGL resource type
|
|
uint handle_; //!< OGL resource handle
|
|
uint mipLevel_; //!< Texture mip level
|
|
uint layer_; //!< Texture layer
|
|
void* glPlatformContext_;
|
|
void* glDeviceContext_;
|
|
uint flags_;
|
|
};
|
|
|
|
#ifdef _WIN32
|
|
struct D3DInteropParams : public CreateParams {
|
|
InteropType type_; //!< D3D resource type
|
|
void* iDirect3D_; //!< D3D resource interface object
|
|
void* handle_; //!< D3D resource handle
|
|
uint mipLevel_; //!< Texture mip level
|
|
int layer_; //!< Texture layer
|
|
uint misc; //!< miscellaneous cases
|
|
};
|
|
#endif // _WIN32
|
|
|
|
//! Resource memory
|
|
enum MemoryType
|
|
{
|
|
Empty = 0x0, //!< resource is empty
|
|
Local, //!< resource in local memory
|
|
Persistent, //!< resource in persistent memory
|
|
Remote, //!< resource in nonlocal memory
|
|
RemoteUSWC, //!< resource in nonlocal memory
|
|
Pinned, //!< resource in pinned system memory
|
|
View, //!< resource is an alias
|
|
OGLInterop, //!< resource is an OGL memory object
|
|
D3D10Interop, //!< resource is a D3D10 memory object
|
|
D3D11Interop, //!< resource is a D3D11 memory object
|
|
ImageView, //!< resource is a view to some image
|
|
ImageBuffer, //!< resource is an image view of a buffer
|
|
BusAddressable, //!< resource is a bus addressable memory
|
|
ExternalPhysical, //!< resource is an external physical memory
|
|
D3D9Interop, //!< resource is a D3D9 memory object
|
|
Scratch, //!< resource is scratch memory
|
|
Shader, //!< resource is a shader
|
|
};
|
|
|
|
//! Resource map flags
|
|
enum MapFlags
|
|
{
|
|
Discard = 0x00000001, //!< discard lock
|
|
NoOverwrite = 0x00000002, //!< lock with no overwrite
|
|
ReadOnly = 0x00000004, //!< lock for read only operation
|
|
WriteOnly = 0x00000008, //!< lock for write only operation
|
|
NoWait = 0x00000010, //!< lock with no wait
|
|
};
|
|
|
|
//! Resource descriptor
|
|
struct Descriptor : public amd::HeapObject
|
|
{
|
|
MemoryType type_; //!< Memory type
|
|
size_t width_; //!< Resource width
|
|
size_t height_; //!< Resource height
|
|
size_t depth_; //!< Resource depth
|
|
uint baseLevel_; //!< The base level for the view
|
|
uint mipLevels_; //!< Number of mip levels
|
|
uint flags_; //!< Resource flags, used in creation
|
|
size_t pitch_; //!< Resource pitch, valid if locked
|
|
size_t slice_; //!< Resource slice, valid if locked
|
|
cl_image_format format_; //!< CL image format
|
|
cl_mem_object_type topology_;//!< CL mem object type
|
|
union {
|
|
struct {
|
|
uint dimSize_ : 2; //!< Dimension size
|
|
uint cardMemory_ : 1; //!< GSL resource is in video memory
|
|
uint imageArray_ : 1; //!< GSL resource is an array of images
|
|
uint buffer_ : 1; //!< GSL resource is a buffer
|
|
uint tiled_ : 1; //!< GSL resource is tiled
|
|
uint SVMRes_ : 1; //!< SVM flag to the cal resource
|
|
uint scratch_ : 1; //!< Scratch buffer
|
|
uint isAllocExecute_ : 1; //!< SVM resource allocation attribute for shader\cmdbuf
|
|
};
|
|
uint state_;
|
|
};
|
|
};
|
|
|
|
//! Constructor of 1D Resource object
|
|
Resource(
|
|
const Device& gpuDev, //!< GPU device object
|
|
size_t size //!< Resource size
|
|
);
|
|
|
|
//! Constructor of Image Resource object
|
|
Resource(
|
|
const Device& gpuDev, //!< GPU device object
|
|
size_t width, //!< resource width
|
|
size_t height, //!< resource height
|
|
size_t depth, //!< resource depth
|
|
cl_image_format format, //!< resource format
|
|
cl_mem_object_type imageType, //!< CL image type
|
|
uint mipLevels = 1 //!< Number of mip levels
|
|
);
|
|
|
|
//! Destructor of the resource
|
|
virtual ~Resource();
|
|
|
|
/*! \brief Creates a CAL object, associated with the resource
|
|
*
|
|
* \return True if we succesfully created a CAL resource
|
|
*/
|
|
virtual bool create(
|
|
MemoryType memType, //!< memory type
|
|
CreateParams* params = 0 //!< special parameters for resource allocation
|
|
);
|
|
|
|
/*! \brief Copies a subregion of memory from one resource to another
|
|
*
|
|
* This is a general copy from anything to anything (as long as it fits).
|
|
* All positions and sizes are given in bytes. Note, however, that only
|
|
* a subset of this general interface is currently implemented.
|
|
*
|
|
* \return true if successful
|
|
*/
|
|
bool partialMemCopyTo(
|
|
VirtualGPU& gpu, //!< Virtual GPU device object
|
|
const amd::Coord3D& srcOrigin, //!< Origin of the source region
|
|
const amd::Coord3D& dstOrigin, //!< Origin of the destination region
|
|
const amd::Coord3D& size, //!< Size of the region to copy
|
|
Resource& dstResource, //!< Destination resource
|
|
bool enableRectCopy = false, //!< Rectangular DMA support
|
|
bool flushDMA = false, //!< Flush DMA if requested
|
|
uint bytesPerElement = 1 //!< Bytes Per Element
|
|
) const;
|
|
|
|
/*! \brief Copies size/4 DWORD of memory to a surface
|
|
*
|
|
* This is a raw copy to any surface using a CP packet.
|
|
* Size needs to be atleast a DWORD or multiple
|
|
*
|
|
*/
|
|
void writeRawData(
|
|
VirtualGPU& gpu, //!< Virtual GPU device object
|
|
size_t offset, //!< Offset for in the buffer for data
|
|
size_t size, //!< Size in bytes of data to be copied(multiple of DWORDS)
|
|
const void* data, //!< Data to be copied
|
|
bool waitForEvent //!< Wait for event complete
|
|
) const;
|
|
|
|
//! Returns the offset in GPU memory for aliases
|
|
size_t offset() const { return offset_; }
|
|
|
|
//! Returns the pinned memory offset
|
|
uint64_t pinOffset() const { return pinOffset_; }
|
|
|
|
//! Returns the GPU device that owns this resource
|
|
const Device& dev() const { return gpuDevice_; }
|
|
|
|
//! Returns the descriptor for resource
|
|
const Descriptor& desc() const { return desc_; }
|
|
|
|
//! Returns the PAL memory object
|
|
Pal::IGpuMemory* iMem() const { return memRef_->iMem(); }
|
|
|
|
//! Returns global memory offset
|
|
uint64_t vmAddress() const { return iMem()->Desc().gpuVirtAddr + offset_; }
|
|
|
|
//! Returns global memory offset
|
|
uint64_t vmSize() const { return iMem()->Desc().size - offset_; }
|
|
|
|
//! Returns global memory offset
|
|
bool mipMapped() const { return (desc().mipLevels_ > 1) ? true : false; }
|
|
|
|
//! Checks if persistent memory can have a direct map
|
|
bool isPersistentDirectMap() const;
|
|
|
|
/*! \brief Locks the resource and returns a physical pointer
|
|
*
|
|
* \note This operation stalls HW pipeline!
|
|
*
|
|
* \return Pointer to the physical memory
|
|
*/
|
|
void* map(
|
|
VirtualGPU* gpu, //!< Virtual GPU device object
|
|
uint flags = 0, //!< flags for the map operation
|
|
// Optimization for multilayer map/unmap
|
|
uint startLayer = 0, //!< Start layer for multilayer map
|
|
uint numLayers = 0 //!< End layer for multilayer map
|
|
);
|
|
|
|
//! Unlocks the resource if it was locked
|
|
void unmap(
|
|
VirtualGPU* gpu //!< Virtual GPU device object
|
|
);
|
|
|
|
//! Marks the resource as busy
|
|
void setBusy(
|
|
VirtualGPU& gpu, //!< Virtual GPU device object
|
|
GpuEvent calEvent //!< CAL event
|
|
) const;
|
|
|
|
//! Wait for the resource
|
|
void wait(
|
|
VirtualGPU& gpu, //!< Virtual GPU device object
|
|
bool waitOnBusyEngine = false//!< Wait only if engine has changed
|
|
) const;
|
|
|
|
//! Performs host write to the resource GPU memory
|
|
bool hostWrite(
|
|
VirtualGPU* gpu, //!< Virtual GPU device object
|
|
const void* hostPtr, //!< Host pointer to the SRC data
|
|
const amd::Coord3D& origin, //!< Offsets for the update
|
|
const amd::Coord3D& size, //!< The number of bytes to write
|
|
uint flags = 0, //!< Map flags
|
|
size_t rowPitch = 0, //!< Raw data row pitch
|
|
size_t slicePitch = 0 //!< Raw data slice pitch
|
|
);
|
|
|
|
//! Performs host read from the resource GPU memory
|
|
bool hostRead(
|
|
VirtualGPU* gpu, //!< Virtual GPU device object
|
|
void* hostPtr, //!< Host pointer to the DST data
|
|
const amd::Coord3D& origin, //!< Offsets for the update
|
|
const amd::Coord3D& size, //!< The number of bytes to write
|
|
size_t rowPitch = 0, //!< Raw data row pitch
|
|
size_t slicePitch = 0 //!< Raw data slice pitch
|
|
);
|
|
|
|
//! Warms up the rename list for this resource
|
|
void warmUpRenames(VirtualGPU& gpu);
|
|
|
|
//! Gets the resource element size
|
|
uint elementSize() const { return elementSize_; }
|
|
|
|
//! Get the mapped address of this resource
|
|
address data() const { return reinterpret_cast<address>(address_); }
|
|
|
|
//! Frees all allocated CAL memories and resources,
|
|
//! associated with this objects. And also destroys all rename structures
|
|
//! Note: doesn't destroy the object itself
|
|
void free();
|
|
|
|
//! Return memory type
|
|
MemoryType memoryType() const { return desc().type_; }
|
|
|
|
//! Retunrs true if memory type matches specified
|
|
bool isMemoryType(MemoryType memType) const;
|
|
|
|
//! Returns TRUE if resource was allocated as cacheable
|
|
bool isCacheable() const
|
|
{ return (isMemoryType(Remote) || isMemoryType(Pinned)) ? true : false; }
|
|
|
|
bool gslGLAcquire() ;
|
|
bool gslGLRelease() ;
|
|
|
|
//! Returns HW state for the resource (used for images only)
|
|
const void* hwState() const { return hwState_; }
|
|
|
|
//! Returns CPU HW SRD for the resource (used for images only)
|
|
uint64_t hwSrd() const { return hwSrd_; }
|
|
|
|
uint numComponents() const {
|
|
return Pal::Formats::NumComponents(image_->GetImageCreateInfo().swizzledFormat.format); }
|
|
|
|
protected:
|
|
uint elementSize_; //!< Size of a single element in bytes
|
|
|
|
private:
|
|
//! Disable copy constructor
|
|
Resource(const Resource&);
|
|
|
|
//! Disable operator=
|
|
Resource& operator=(const Resource&);
|
|
|
|
typedef std::vector<GpuMemoryReference*> RenameList;
|
|
|
|
//! Rename current resource
|
|
bool rename(
|
|
VirtualGPU& gpu, //!< Virtual GPU device object
|
|
bool force = false //!< Force renaming
|
|
);
|
|
|
|
//! Sets the rename as active
|
|
void setActiveRename(
|
|
VirtualGPU& gpu, //!< Virtual GPU device object
|
|
GpuMemoryReference* rename //!< new active rename
|
|
);
|
|
|
|
//! Gets the active rename
|
|
bool getActiveRename(
|
|
VirtualGPU& gpu, //!< Virtual GPU device object
|
|
GpuMemoryReference** rename //!< Saved active rename
|
|
);
|
|
|
|
/*! \brief Locks the resource with layers and returns a physical pointer
|
|
*
|
|
* \return Pointer to the physical memory
|
|
*/
|
|
void* mapLayers(
|
|
VirtualGPU* gpu, //!< Virtual GPU device object
|
|
uint flags = 0 //!< flags for the map operation
|
|
);
|
|
|
|
//! Unlocks the resource with layers if it was locked
|
|
void unmapLayers(
|
|
VirtualGPU* gpu //!< Virtual GPU device object
|
|
);
|
|
|
|
//! Calls GSL to map a resource
|
|
void* gpuMemoryMap(
|
|
size_t* pitch, //!< Pitch value for the image
|
|
uint flags, //!< Map flags
|
|
Pal::IGpuMemory* resource //!< GSL memory object
|
|
) const;
|
|
|
|
//! Uses GSL to unmap a resource
|
|
void gpuMemoryUnmap(
|
|
Pal::IGpuMemory* resource //!< GSL memory object
|
|
) const;
|
|
|
|
//! Fress all GSL resources associated with OCL resource
|
|
void gslFree() const;
|
|
|
|
//! Converts Resource memory type to the PAL heaps
|
|
void memTypeToHeap(
|
|
Pal::GpuMemoryCreateInfo* createInfo //!< Memory create info
|
|
);
|
|
|
|
const Device& gpuDevice_; //!< GPU device
|
|
Descriptor desc_; //!< Descriptor for this resource
|
|
amd::Atomic<int> mapCount_; //!< Total number of maps
|
|
void* address_; //!< Physical address of this resource
|
|
size_t offset_; //!< Resource offset
|
|
size_t curRename_; //!< Current active rename in the list
|
|
RenameList renames_; //!< Rename resource list
|
|
GpuMemoryReference* memRef_; //!< GSL resource reference
|
|
const Resource* viewOwner_; //!< GPU resource, which owns this view
|
|
uint64_t pinOffset_; //!< Pinned memory offset
|
|
void* glInteropMbRes_;//!< Mb Res handle
|
|
uint32_t glType_; //!< GL interop type
|
|
void* glPlatformContext_;
|
|
void* glDeviceContext_;
|
|
|
|
// Optimization for multilayer map/unmap
|
|
uint startLayer_; //!< Start layer for map/unmapLayer
|
|
uint numLayers_; //!< Number of layers for map/unmapLayer
|
|
uint mapFlags_; //!< Map flags for map/umapLayer
|
|
|
|
//! @note: This field is necessary for the thread safe release only
|
|
VirtualGPU* gpu_; //!< Resource will be used only on this queue
|
|
Pal::IImage* image_; //!< PAL image object
|
|
|
|
uint32_t* hwState_; //!< HW state for image object
|
|
uint64_t hwSrd_; //!< GPU pointer to HW SRD
|
|
};
|
|
|
|
class ResourceCache : public amd::HeapObject
|
|
{
|
|
public:
|
|
//! Default constructor
|
|
ResourceCache(size_t cacheSizeLimit)
|
|
: lockCacheOps_("PAL resource cache", true)
|
|
, cacheSize_(0)
|
|
, cacheSizeLimit_(cacheSizeLimit)
|
|
{}
|
|
|
|
//! Default destructor
|
|
~ResourceCache();
|
|
|
|
//! Adds a CAL resource to the cache
|
|
bool addGpuMemory(
|
|
Resource::Descriptor* desc, //!< Resource descriptor - cache key
|
|
GpuMemoryReference* ref //!< Resource reference
|
|
);
|
|
|
|
//! Finds a CAL resource from the cache
|
|
GpuMemoryReference* findGpuMemory(
|
|
Resource::Descriptor* desc, //!< Resource descriptor - cache key
|
|
Pal::gpusize size,
|
|
Pal::gpusize alignment
|
|
);
|
|
|
|
//! Destroys cache
|
|
bool free(size_t minCacheEntries = 0);
|
|
|
|
private:
|
|
//! Disable copy constructor
|
|
ResourceCache(const ResourceCache&);
|
|
|
|
//! Disable operator=
|
|
ResourceCache& operator=(const ResourceCache&);
|
|
|
|
//! Removes one last entry from the cache
|
|
void removeLast();
|
|
|
|
amd::Monitor lockCacheOps_; //!< Lock to serialise cache access
|
|
|
|
size_t cacheSize_; //!< Current cache size in bytes
|
|
size_t cacheSizeLimit_; //!< Cache size limit in bytes
|
|
|
|
//! CAL resource cache
|
|
std::list<std::pair<Resource::Descriptor*, GpuMemoryReference*> > resCache_;
|
|
};
|
|
|
|
/*@}*/} // namespace pal
|