panfrost: ES3.x improvements (bitfields, sample variables, 16x multisampling)
Working my way through fails on dEQP-GLES31.functional.shaders.* on both Midgard and Bifrost. This fixes a bunch of them. Draft because:
-
I realized in the shower this morning (as one does) ufind_msb lowering on Bifrost is buggy for 8/16-bit -
I realized shortly after getting it working the .hi lowering is totally useless, just need to fix the packing for .Z/.W which should be possible despite what the assembly suggests. -
Midgard helper invocation store lowering is a mess -
Sample position arrays aren't actually updated (responsible for failing tests on both archs) -
Sample position lowering is out-of-spec on Midgard (despite the DDK doing the same buggy thing and getting away with it) -
Sample mask is preloaded on Bifrost unconditionally, should check shader info. -
gl_SampleMask writes aren't supported on Midgard
(I do plan to fix these, except maybe gl_SampleMask, just signing off for the night and want to make sure @bbrezillon sees these)
@icecream95 might want to steal some of these patches for CL.