Bug 101651

Summary: [radeonsi][hawaii] Borderlands 2 rendering issues with recent mesa/llvm
Product: Mesa Reporter: Vadim Girlin <ptpzz>
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact: Default DRI bug account <dri-devel>
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: screenshot (wrong rendering)
screenshot (correct rendering)
llvm patch
reduced test

Description Vadim Girlin 2017-06-29 17:58:09 UTC
Created attachment 132354 [details]
screenshot (wrong rendering)

AFAICS it's related to the VCCZ bug. There is a workaround for SI/CIK in the AMDGPU LLVM backend (SIInsertWaitcnts.cpp) but it doesn't handle this case.

The attached patch fixes it for me by relaxing the workaround condition, but probably it can be improved if there is a detailed info on that bug. OTOH I guess it won't have a noticeable effect on performance anyway, so maybe it's safer to use the patch as is.

The issue is reproducible with the reduced OpenCL test in the attachment:

  $ make

  // run on cpu - reference result

  $ ./testcpu
  117

  // OpenCL/gpu - wrong result

  $ LD_PRELOAD=/opt/llvm64_master/lib/libLLVM-5.0svn.so ./testgpu
  99

  // OpenCL/gpu + patch - correct result

  $ LD_PRELOAD=/opt/llvm64_patched/lib/libLLVM-5.0svn.so ./testgpu
  117
Comment 1 Vadim Girlin 2017-06-29 17:58:56 UTC
Created attachment 132355 [details]
screenshot (correct rendering)
Comment 2 Vadim Girlin 2017-06-29 17:59:36 UTC
Created attachment 132356 [details] [review]
llvm patch
Comment 3 Vadim Girlin 2017-06-29 18:00:14 UTC
Created attachment 132357 [details]
reduced test
Comment 4 Gregor Münch 2017-07-02 11:14:41 UTC
Can confirm the bug on SI (Radeon HD 7970) and Borderlands: The Pre-Sequel
LLVM 5.0.0svn_r306967
Comment 5 Gregor Münch 2018-05-01 15:58:21 UTC
Looks good now for me.
Still an issue for you?

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.