diff options
author | Tim Renouf <tpr.llvm@botech.co.uk> | 2018-05-07 13:21:26 +0000 |
---|---|---|
committer | Tim Renouf <tpr.llvm@botech.co.uk> | 2018-05-07 13:21:26 +0000 |
commit | 18a1e9d03af8f5334de7bdce369118558f5def33 (patch) | |
tree | ee97f95a45cce6c3b84d0c3d6cff6453da85866c /llvm/lib | |
parent | 9be9cf20bf81b48bbb08b9d324beabd6a7785889 (diff) | |
download | bcm5719-llvm-18a1e9d03af8f5334de7bdce369118558f5def33.tar.gz bcm5719-llvm-18a1e9d03af8f5334de7bdce369118558f5def33.zip |
[AMDGPU] Don't force WQM for DS op
Summary:
Previously, all DS ops forced WQM in a pixel shader. That was a hack to
allow for graphics frontends using ds_swizzle to implement explicit
derivatives, on SI/CI at least where DPP is not available. But it forced
WQM for _any_ DS op.
With this commit, DS ops no longer force WQM. Both graphics frontends
(Mesa and LLPC) need to change to issue an explicit llvm.amdgcn.wqm
intrinsic call when calculating explicit derivatives.
The required Mesa change is: "amd/common: use llvm.amdgcn.wqm for
explicit derivatives".
Subscribers: qcolombet, arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D46051
Change-Id: I9b745b626fa91bbd66456e6cf41ee07eeea42f81
llvm-svn: 331633
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp b/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp index aeb1190e449..89e5d56d1e0 100644 --- a/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp +++ b/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp @@ -325,9 +325,7 @@ char SIWholeQuadMode::scanInstructions(MachineFunction &MF, unsigned Opcode = MI.getOpcode(); char Flags = 0; - if (TII->isDS(Opcode) && CallingConv == CallingConv::AMDGPU_PS) { - Flags = StateWQM; - } else if (TII->isWQM(Opcode)) { + if (TII->isWQM(Opcode)) { // Sampling instructions don't need to produce results for all pixels // in a quad, they just require all inputs of a quad to have been // computed for derivatives. |