summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorTim Renouf <tpr.llvm@botech.co.uk>2018-05-07 13:21:26 +0000
committerTim Renouf <tpr.llvm@botech.co.uk>2018-05-07 13:21:26 +0000
commit18a1e9d03af8f5334de7bdce369118558f5def33 (patch)
treeee97f95a45cce6c3b84d0c3d6cff6453da85866c /llvm/lib
parent9be9cf20bf81b48bbb08b9d324beabd6a7785889 (diff)
downloadbcm5719-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.cpp4
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.
OpenPOWER on IntegriCloud