Bugzilla – Bug 36669
EmitNoMainReturn set to 1 doesn't make the GLSL compiler lower all the RET opcodes
Last modified: 2011-07-08 10:09:01 UTC
Created attachment 46150 [details]
Simple fragment shader
The attached shader creates an error on r600g:
EE r600_shader.c:827 tgsi_unsupported - 64 tgsi opcode unsupported
The opcode is ret, but nothing should be generated, since the function is of type void and return is the last line.
I'll look into this.
Created attachment 48788 [details] [review]
Can you please try the patch I've attached and let me know if it fixes the problem? I believe the patch is correct, but I don't have an r600g to test with.
I'll be submitting a broader patch series to the mesa mailing list soon, which will include this fix as well as other improvements to lower_jumps.cpp.
I saw the full set. Unfortunately I can't test for the time being, as I don't have such hardware right now either.
(In reply to comment #4)
Ok, thanks Lauri. I have plenty of other evidence that the patch works, so there is no rush. I will proceed under the assumption that the fix is working once I have code review from the list.
Fixed with commit afc9a50fba39df520046019c6993d7b7559329ea