Alyssa Rosenzweig
bccb3deee2
panfrost: Probe G31/G52 if PAN_MESA_DEBUG=bifrost
...
We're not *quite* ready to open the flood gates on Bifrost (a major
blocker is CI, which is itself blocked on the lockdowns - expected to be
resolved in the coming months..)
Nevertheless, let's add a debug option to probe on compatible Bifrost
devices to avoid keeping out-of-tree patches around.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5272 >
2020-05-29 19:24:45 -04:00
Alyssa Rosenzweig
be8cbe0b41
panfrost: Add GPU IDs for G31/G52
...
Dvalin/Gondul respectively.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5272 >
2020-05-29 19:24:05 -04:00
Alyssa Rosenzweig
229084f5de
panfrost: Disable QUAD_STRIP/POLYGON on Bifrost
...
Support was dropped and now raises a DATA_INVALID_FAULT on G31. Unknown
if retained on other devices. GL_QUADS is still ok.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:56 +00:00
Alyssa Rosenzweig
4be2cd604b
pan/bi: Passthrough deps of the branch target
...
Now that we have the infrastructure, follow the branch.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:56 +00:00
Alyssa Rosenzweig
8230a04f51
pan/bi: Allow two successors in header packing
...
We need to take the union of the dependencies.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:56 +00:00
Alyssa Rosenzweig
db2c10d032
pan/bi: Measure backwards branches as well
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:56 +00:00
Alyssa Rosenzweig
a42731536d
pan/bi: Add bi_foreach_block_from_rev helper
...
Needed for next commit.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
c697992ca1
pan/bi: Defer block naming until after emit
...
This ensures names are meaningful.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
bd6ff4f7e1
pan/bi: Pack unconditional branch
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
e4791d2bf8
pan/bi: Set branch conditional bit
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
ffe7a61a46
pan/bi: Set back-to-back bit more accurately
...
See Connor's ISA notes. Basically set unless it's a branch (explicit or
fallthrough).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
3aacfaf87e
pan/bi: Set branch_conditional if b2b is set
...
Match the blob.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
e945d4f79d
pan/bi: Pack proper clause offsets
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
682b63cdc2
pan/bi: Measure distance between blocks
...
For branch offset calculation.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
64c49ab1fc
pan/bi: Add bi_foreach_clause_in_block_from{_rev} helpers
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
64bedbfa67
pan/bi: Link clauses back to their blocks
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
9c32956750
pan/bi: Preliminary branch packing
...
Simple == 0 branch packing. Offset is still to-do.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
cd9a08d4f2
pan/bi: Assign constant port for branch offsets
...
By convention.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
cdff3ebc9a
pan/bi: Set branch_constant if there is a branch
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
b9967ab6da
pan/bi: Pack branch offset constants
...
This is not fully generic but for a single constant it will do.
Extensions left for future work.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
627872ef7f
pan/bi: Add branch constant field to IR
...
The offsets used for branches need some extra bits twiddled, so add a
field to the clause to indicate this is happening. This is not ambiguous
since a clause can only have a single branch.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
f1298ae336
pan/bi: Passthrough ZERO in branch packing
...
There's a special mode for it.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
d619ff009b
pan/bi: Fix branch condition typesize
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
1cdd55a81e
pan/bi: Fix CONVERT component counting
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
d8c6a71878
pan/bi: Only rewrite COMBINE dest if not SSA
...
If it's already a register, there's no point in rewriting and it will
disturb the existing register, i.e. for
if (..) {
r0 = vecN ..
} else {
r0 = vecN ..
}
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
e42a5dfd4f
pan/bi: Fix emit_if successor assignment
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fixes: 9a00cf3d1e ("pan/bi: Add support for if-else blocks")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
b34eb94d9c
pan/bi: Allow printing branches without targets
...
Useful for debugging codegen.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
a4fc16a1d4
pan/bi: Remove schedule_barrier
...
Legacy from Midgard.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
b3ae088b96
pan/bi: Add helper to measure clause size
...
Useful for branching.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
2a4e4477fc
pan/bi: Add bi_layout.c for clause layout helpers
...
Figuring out what "shapes" of clauses are kosher happens during
scheduling, not packing, but shouldn't distract the scheduler. So let's
add a new file for these sorts of questions.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
c3de28bb49
pan/bi: Remove more artefacts of 2-pass scheduling
...
A clause is, by definition, already scheduled.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
4096be05af
pan/bi: Add MUL.i32 to disasm
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
ec8665615f
pan/bi: Disassemble pos=0xe
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
a658a4f7a5
pan/bi: Document constant count invariant
...
constants + instructions <= 13
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
ac64bf9b20
pan/bi: Move bi_flip_ports out of port assignment
...
It's more of a packing fixup than anything scheduler-y, and port
assignment will soon be the domain of the scheduler.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
95e3776d3e
pan/bi: Add FILE* argument to bi_print_registers
...
In case we need it in general IR printing.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
dd96b451f6
pan/bi: Drop struct from bi_registers
...
It's a full-fledged part of the IR now.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
b042ddef32
pan/bi: Move bi_registers to bi_bundle
...
Make it a part of the IR itself.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
79f30d8a86
pan/bi: Move bi_registers to common IR structures
...
Port assignments are critical to scheduling, this can't just live in
bi_pack.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
59f8f20306
pan/bi: Remove comment about old scheduler design
...
I've realized it really has to be 1-pass to be sane.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
635bf652ed
pan/bi: Remove FMA? parameter from get_src
...
We can lower away zeroes a bit earlier.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5260 >
2020-05-29 20:34:55 +00:00
Alyssa Rosenzweig
20f6c7a913
panfrost: Preload gl_FragCoord on Bifrost
...
It's a precoloured register but we do need to specify in the cmdstream
that we want the preloading to happen.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5267 >
2020-05-29 20:19:46 +00:00
Alyssa Rosenzweig
1d194f8ac4
panfrost: Set reads_frag_coord as a sysval
...
In addition to parsing out the varying. This is needed so it works on
Bifrost as well.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5267 >
2020-05-29 20:19:46 +00:00
Alyssa Rosenzweig
52875a34aa
panfrost: Don't generate gl_FragCoord varying on Bifrost
...
It's treated as a sysval there, so that's silly.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5267 >
2020-05-29 20:19:46 +00:00
Rob Clark
11470fcde2
freedreno/a6xx: fix vsc assert
...
Fixes a debug build assert seeing with an android app. Not quite sure
which path was passing us draw_info w/ instance_count==0. But we should
just treat non-instanced draws as having a single instance.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5091 >
2020-05-29 19:35:08 +00:00
Kristian H. Kristensen
f6f7bc2979
freedreno/a6xx: Program VFD_DEST_CNTL from program stateobj
...
This only depends on the generated shader.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5140 >
2020-05-29 18:59:56 +00:00
Kristian H. Kristensen
7aa809e31c
freedreno/a6xx: Create stateobj for VFD_DECODE
...
This now only depends on vertex state and we can create it once
up front in pctx->create_vertex_elements_state().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5140 >
2020-05-29 18:59:56 +00:00
Kristian H. Kristensen
8952dd6d99
freedreno/a6xx: Decouple VFD_FETCH and VFD_DECODE
...
We used to output a VFD_FETCH entry for each VFD_DECODE, but we can
instead output just one VFD_FETCH per VBO and point multiple
VFD_DECODE entries at the same VFD_FETCH entry. There's typically
fewer VBOs than vertex elements so this is a small win in itselfs, but
more importantly, the VFD_DECODE state now only depends on program
state.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5140 >
2020-05-29 18:59:56 +00:00
Kristian H. Kristensen
c15db8928f
freedreno/a6xx: Move per element offset to VFD_DECODE
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5140 >
2020-05-29 18:59:56 +00:00
Eric Anholt
601a029e67
ci: Rename x86_cross_arm_test to just arm_test.
...
This gets us back to the behavior we used to have for freedreno: clicking
play on arm_test gets you testing of the ARM platforms that aren't under
arm-build (the LAVA runners).
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5247 >
2020-05-29 16:46:44 +00:00