aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* freedreno/ir3: add helpers to deal with src/dst typesRob Clark2020-05-194-8/+122
| | | | | | | | Add some helpers to properly maintain src/dst types, and in the cases where opcode depends on src or dst type, maintain that as well. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: add simple validate passRob Clark2020-05-195-2/+139
| | | | | | | | We can add to this as we notice other things that are worth validating between ir3 passes. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: fix mismatched wrmask for overlapping VS inputsRob Clark2020-05-191-0/+33
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/cp: fix cmps foldingRob Clark2020-05-191-1/+2
| | | | | | | | | | | | | | When we start doing cp iteratively, we hit the case that we've already `cmps.s.*` into a `cmps.s.ne p0.x, ...`.. when we try to do that again we can invert the logic condition. So check specifically the condition to prevent this. TODO we could maybe be more clever about this to combine conditions. But why isn't that happening in nir? For example, see dEQP-GLES31.functional.ssbo.layout.single_basic_array.packed.bool Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/print: print cat2 conditionRob Clark2020-05-191-0/+22
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: fix immed type in create_addr0()Rob Clark2020-05-191-24/+6
| | | | | | | | We can also remove a bunch of manual src/dst flag munging, since the instruction builders handle this automatically now. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/cf: handle multiple cov's properlyRob Clark2020-05-191-8/+19
| | | | | | | | | | | | | There can be multiple (for ex.) f32f16's from a single source, in particular appearing in different blocks. We need to update all uses of the src which had conversion folded in, not all the uses of the individual cov. Also, to avoid invalidating the ssa use info that was gathered at the beginning of the pass, don't actually eliminate the cov, but instead change it to a simple mov that the cp pass can gobble up. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: fix mismatched flags on splitRob Clark2020-05-191-1/+3
| | | | | | | | | We have to fixup the meta:split half flag, because `ir3_split_dest()` is called before we fixup the dest type. But we should fixup both the split src and dest, as well as the thing it is splitting. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/group: fix for half-regsRob Clark2020-05-192-2/+6
| | | | | | | | If we're inserting a mov to resolve a conflict between meta:collect's (ie. for .zyx type swizzles, etc), we should use the correct precision. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: make input/output iterators declare cursor ptrRob Clark2020-05-199-19/+9
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: make foreach_ssa_src declar cursor ptrRob Clark2020-05-198-16/+4
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: make foreach_src declare cursor ptrRob Clark2020-05-198-22/+6
| | | | | | | To match how the newer iterators work. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: be iterativeRob Clark2020-05-192-4/+18
| | | | | | | | | | | It does pick up a few more cf/cp opportunities, according to sharder-db. But don't think it will be measurable. But this will allow some future simplification to cp by pulling out it's internal iteration. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: move where we preserve binning pass inputsRob Clark2020-05-191-17/+16
| | | | | | | | | For a6xx, since we use same VBO state for binning and VS, we need to preserve potentially unused inputs. This needs to be done before DCE. So move it before we add earlier DCE passes. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: add IR3_PASS() macroRob Clark2020-05-192-24/+15
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/postsched: report progressRob Clark2020-05-193-29/+16
| | | | | | | | | | | | | | Or do the easy thing and claim we always changed something. It is kinda hard and not worth the effort to determine for real. Also rip out unused error handling. This pass should never fail. And we weren't even actually checking the return. And while we're at it, switch over to taking the 'struct ir3 ir*` instead of ctx, to standardize with the other passes. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/legalize: report progressRob Clark2020-05-192-2/+4
| | | | | | | It always does something. Just return true for IR3_PASS() Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/group: report progressRob Clark2020-05-192-11/+19
| | | | | | | | Not iterative, but this will let IR3_PASS() macro know if there are any changes to print. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/deps: report progressRob Clark2020-05-192-13/+12
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/cp: report progressRob Clark2020-05-192-7/+15
| | | | | | | | | Later when we do this pass iteratively, we can drop some of the internal iteration and just rely on this pass getting run until there is no more progress. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/cf: report progressRob Clark2020-05-192-10/+15
| | | | | Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3/dce: report progressRob Clark2020-05-192-3/+6
| | | | | | | | Eventually we'll pull the iteration out of the pass itself, but the first step is to just report progress. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: juggle around ir3_debug_print()Rob Clark2020-05-192-11/+14
| | | | | | | | | In a later patch, this will get folded into an IR3_PASS() macro, at least for most passes. But to do that, it is better to standardize on printing the ir3 after the pass. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* freedreno/ir3: remove Sethi-Ullman numbering passRob Clark2020-05-195-125/+1
| | | | | | | We haven't used this for a while. Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5048>
* radv: fix missing break in radv_GetPhysicalDeviceProperties2()Samuel Pitoiset2020-05-191-0/+1
| | | | | | | Fixes: 57e796a12a8 ("radv: Implement VK_EXT_custom_border_color") Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5097>
* aco: fix disassembly with LLVM 11Rhys Perry2020-05-191-0/+7
| | | | | | | | | SymbolInfoTy was modified in LLVM 11. It is also in MCDisassembler.h now and we don't have to duplicate it anymore. Signed-off-by: Rhys Perry <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5060>
* r600/sfn: Fix printing ALU op without destGert Wollny2020-05-191-1/+2
| | | | | | | | e.g. GROUP_BARRIER doesn't have a dest. Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Don't reorder outputs by locationGert Wollny2020-05-193-17/+0
| | | | | | | | | This was wrong, if anything it should be sorted by device_location, and NIR usually provides this. Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Fix splitting constants that come from different kcache banks.Gert Wollny2020-05-191-3/+4
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Fix clip vertex output as possible stream variableGert Wollny2020-05-192-2/+4
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: SSBO: Fix query of dest componentsGert Wollny2020-05-191-5/+5
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: use the per shader atomic baseGert Wollny2020-05-198-10/+16
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Add support for texture_samplesGert Wollny2020-05-192-0/+21
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: support indirect sampler buffer reads.Gert Wollny2020-05-191-1/+1
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: assert when alu dest is missingGert Wollny2020-05-191-0/+1
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: remove pointless checkGert Wollny2020-05-191-3/+0
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Don't reject VARYING_SLOT_PCNTGert Wollny2020-05-191-0/+2
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Add FS output sample_maskGert Wollny2020-05-191-2/+4
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Handle loading sample_posGert Wollny2020-05-193-0/+36
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Take FOGC, and backcolors into account im GS outputsGert Wollny2020-05-191-0/+3
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Add support for viewport index outputGert Wollny2020-05-192-2/+20
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Make 3vec loads skip possible movesGert Wollny2020-05-191-6/+2
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Fix handling of output register indexGert Wollny2020-05-191-4/+4
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Make allocate_reserved_registers forward to a virtual functionGert Wollny2020-05-1914-13/+21
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Fix RAT instruction assembly emissionGert Wollny2020-05-191-5/+9
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Fix GDS assembly emissionGert Wollny2020-05-191-21/+17
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Fix RING instruction assembly emissionGert Wollny2020-05-191-2/+2
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: Fix memring print outputGert Wollny2020-05-191-1/+1
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: skip copying LOD if the target register is is the sameGert Wollny2020-05-191-1/+2
| | | | | | Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>
* r600/sfn: re-use an allocated register in lookupGert Wollny2020-05-191-1/+1
| | | | | | | | | For texture coordinates we always allocate all four components so that we can use these for LOD and, compare etc. Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Reviewed-by: Dave Airlie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5085>