Bug 84089 - [radeonsi] hd 7790 need more sGPRS for ps
Summary: [radeonsi] hd 7790 need more sGPRS for ps
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: git
Hardware: All Linux (All)
: medium major
Assignee: mesa-dev
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-19 10:18 UTC by Iaroslav Andrusyak
Modified: 2014-09-19 19:24 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Fix (2.26 KB, patch)
2014-09-19 14:01 UTC, Tom Stellard
Details | Splinter Review

Description Iaroslav Andrusyak 2014-09-19 10:18:19 UTC
Many games with high shaders usage fails with si_state_draw.c:312:si_pipe_shader_ps: Assertion `num_sgprs <= 104' failed.
Unigine Valley won't start on low settings, but work with wine on low\medium.


I changed  num_sgprs <= 104 to num_sgprs <= 204 and add fprint for num_sgprs and user_sgprs

USER 9, NUM 40
USER2 9, NUM2 40
-------------
USER 9, NUM 32
USER2 9, NUM2 32
-------------
USER 9, NUM 24
USER2 9, NUM2 24
-------------
USER 9, NUM 32
USER2 9, NUM2 32
-------------
USER 9, NUM 96
USER2 9, NUM2 96
-------------
USER 9, NUM 96
USER2 9, NUM2 96
-------------
USER 9, NUM 72
USER2 9, NUM2 72
-------------
USER 9, NUM 64
USER2 9, NUM2 64
-------------
USER 9, NUM 64
USER2 9, NUM2 64
-------------
USER 9, NUM 72
USER2 9, NUM2 72
-------------
USER 9, NUM 16
USER2 9, NUM2 16
-------------
USER 9, NUM 64
USER2 9, NUM2 64
-------------
USER 9, NUM 112
USER2 9, NUM2 112
-------------
USER 9, NUM 64
USER2 9, NUM2 64
-------------
USER 9, NUM 104
USER2 9, NUM2 104
-------------
USER 9, NUM 104
USER2 9, NUM2 104
-------------
USER 9, NUM 56
USER2 9, NUM2 56
-------------
USER 9, NUM 80
USER2 9, NUM2 80
-------------
USER 9, NUM 104
USER2 9, NUM2 104
-------------
USER 9, NUM 56
USER2 9, NUM2 56
-------------
USER 9, NUM 40
USER2 9, NUM2 40
-------------
USER 9, NUM 104
USER2 9, NUM2 104
-------------
USER 9, NUM 56
USER2 9, NUM2 56
-------------
USER 9, NUM 80
USER2 9, NUM2 80
-------------
USER 9, NUM 104
USER2 9, NUM2 104
-------------
USER 9, NUM 64
USER2 9, NUM2 64
-------------
USER 9, NUM 56
USER2 9, NUM2 56
-------------
USER 9, NUM 80
USER2 9, NUM2 80
-------------
USER 9, NUM 32
USER2 9, NUM2 32
-------------
USER 9, NUM 40
USER2 9, NUM2 40
-------------
USER 9, NUM 72
USER2 9, NUM2 72
-------------
USER 9, NUM 104
USER2 9, NUM2 104
-------------
USER 9, NUM 24
USER2 9, NUM2 24
-------------
USER 9, NUM 32
USER2 9, NUM2 32
-------------
USER 9, NUM 32
USER2 9, NUM2 32
-------------
USER 9, NUM 56
USER2 9, NUM2 56
-------------
USER 9, NUM 96
USER2 9, NUM2 96
-------------
USER 9, NUM 24
USER2 9, NUM2 24
-------------
USER 9, NUM 112
USER2 9, NUM2 112
-------------
USER 9, NUM 112
USER2 9, NUM2 112
-------------
USER 9, NUM 96
USER2 9, NUM2 96
-------------
USER 9, NUM 112
USER2 9, NUM2 112
-------------
USER 9, NUM 16
USER2 9, NUM2 16
-------------


112 ist еhe largest number of that I have seen.
Comment 1 Christian König 2014-09-19 10:24:16 UTC
(In reply to comment #0)
> I changed  num_sgprs <= 104 to num_sgprs <= 204 and add fprint for num_sgprs
> and user_sgprs

??? 104 is a hardware limit, you can't change it. You probably just need to use a newer LLVM version which supports SGPR spilling.
Comment 2 Iaroslav Andrusyak 2014-09-19 10:27:38 UTC
i use llvm-svn|git from yesterday, and 6-7 days ago valley fork fine.
Comment 3 Christian König 2014-09-19 10:45:10 UTC
(In reply to comment #2)
> i use llvm-svn|git from yesterday, and 6-7 days ago valley fork fine.

Ah! Then some change in LLVM broke register spilling, please bisect LLVM to figure out what it was.

Thanks,
Christian.
Comment 4 Tom Stellard 2014-09-19 14:01:29 UTC
Created attachment 106551 [details] [review]
Fix

Can you try this patch?  Make sure you replace the original assert in the mesa code.
Comment 5 Iaroslav Andrusyak 2014-09-19 19:24:15 UTC
Yes, it helps


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.