P4 to Git Change 1275745 by gujin@gujin-sc-win on 2016/06/02 13:34:16

SWDEV-76911 - Set output pipeline of multi-shader compilation in the same way driver sets. Fill output shader pointers only if they will be generated based on the input shaders, otherwise NULL.

	ReviewBoardURL = http://dxreview.amd.com/r/20059/

Affected files ...

... //depot/stg/sc/Src/Dev/TestEngine.cpp#512 edit
This commit is contained in:
foreman
2016-06-02 14:26:40 -04:00
parent 7acdb2390f
commit 436ca8ad4d
5 changed files with 9 additions and 48 deletions
+4 -16
View File
@@ -472,7 +472,7 @@ VirtualGPU::create(bool profiling, uint rtCUs, uint deviceQueueSize,
}
//!@todo This is not a generic solution and
// may have issues with > 8 queues
idx = index() % (dev().engines().numComputeRings() +
idx = index() % (dev().engines().numComputeRings() +
dev().engines().numComputeRingsRT());
}
// hwRing_ should be set 0 if forced to have single scratch buffer
@@ -1839,23 +1839,11 @@ VirtualGPU::submitKernelInternalHSA(
pKernelInfo = &kernelInfo;
}
// Set up the dispatch information
KernelDispatchInfo dispatchInfo;
dispatchInfo.aqlPacket = aqlPkt;
dispatchInfo.mems = vmMems();
dispatchInfo.numMems = cal_.memCount_;
dispatchInfo.scratch = scratch;
dispatchInfo.scratchOffset = scratchOffset;
dispatchInfo.cpuAqlCode = hsaKernel.cpuAqlCode();
dispatchInfo.hsaQueueVA = hsaQueueMem_->vmAddress();
dispatchInfo.kernelInfo = pKernelInfo;
dispatchInfo.wavesPerSH = hsaKernel.getWavesPerSH(this);
dispatchInfo.lastDoppSubmission = kernel.parameters().getExecNewVcop();
GpuEvent gpuEvent;
// Run AQL dispatch in HW
eventBegin(MainEngine);
cs()->AqlDispatch(&dispatchInfo);
cs()->AqlDispatch(aqlPkt, vmMems(), cal_.memCount_, scratch, scratchOffset,
hsaKernel.cpuAqlCode(), hsaQueueMem_->vmAddress(), pKernelInfo, hsaKernel.getWavesPerSH(this));
eventEnd(MainEngine, gpuEvent);
if (dbgManager && (NULL != dbgManager->postDispatchCallBackFunc())) {
@@ -2155,7 +2143,7 @@ VirtualGPU::submitKernelInternal(
}
// Execute the kernel
if (gpuKernel.run(*this, &gpuEvent, lastRun, kernel.parameters().getExecNewVcop())) {
if (gpuKernel.run(*this, &gpuEvent, lastRun)) {
//! @todo A flush is necessary to make sure
// that 2 consecutive runs won't access to the same
// private/local memory. CAL has to generate cache flush