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.
(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.
i use llvm-svn|git from yesterday, and 6-7 days ago valley fork fine.
(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.
Created attachment 106551 [details] [review] Fix Can you try this patch? Make sure you replace the original assert in the mesa code.
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.