Alyssa Rosenzweig
fa68c8bca9
pan/mdg: More concise RMU name
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
7752b09ade
pan/mdg: Hide units behind MIDGARD_MESA_DEBUG=verbose
...
Not usually interesting unless debugging bundling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
93a176b6cf
panfrost: Key blend shaders to the input types
...
On Bifrost, fragment shaders might output either FP16 or FP32. The blend
shader will access the output as-is within the register, so depending on
the precision of the blend shader's logic, it may need to insert a
f2f16 or f2f32 conversion. This requires expanding the blend shader key.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
9df1d1306e
pan/blend: Emit explicit conversions for all types
...
Needed so we can mix and match.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
30423b0c36
panfrost/lower_framebufffer: Don't use i2imp
...
Fails when converting from i2i8, which is possible.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
03e3e65cd4
panfrost: Assume lower_fragcolor has been called
...
Allows us to clean up quite a bit.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
28ac4d1e00
panfrost: Call nir_lower_fragcolor based on key
...
We only want it to trigger if MRT is actually in use. This is a cheap
key (only require multiple variants for an obscure edge case) and avoids
the perf regression of using this pass which is needed for conformance.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
6a4482df98
panfrost/blend: Prepare for lower_fragcolor
...
FRAG_RESULT_COLOR means something a bit different.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
120dd92e86
panfrost/blend: Distribute to_c_factor
...
Easier to understand, I think.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
613722e046
panfrost/blend: Workaround a v7 implementation-detail
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
392bf00019
panfrost/blend: Fix outdated comments
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
86b0eddf2b
pan/lower_blend: Rename is_bifrost->scalar
...
Don't leak ISA details.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
f5211fcbed
pan/lower_blend: Use NIR helpers
...
Deletes a bunch of indentations.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
5fc1aed036
pan/lower_blend: Clean up type size handling
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
3968f03754
panfrost: Support alpha_to_one
...
Gets rid of a bogus assert in the blend CSO create.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
c6bb55ffcf
pan/bi: Lower 8-bit fragment input
...
Same reasons/technique as fragment output lowering, just need the NIR.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
3cc6a4c5d0
pan/bi: Handle swizzles in i2i8
...
Otherwise they get copypropped away.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
e180374ab1
pan/bi: Add single-component 8-bit mkvec lowering
...
So we can implement scalar i2i8.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
ba17342a1f
pan/bi: Handle different sizes of LD_TILE
...
v2: Fix overflow.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Alyssa Rosenzweig
f412801768
pan/bi: Track dual-src blend type
...
Will be needed for fp16 outputs. I am acutely aware dual-src blending is
broken on Bifrost right now anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10393 >
2021-05-04 20:04:03 +00:00
Antonio Caggiano
1b87a7d5e0
panfrost: Meson dependency
...
Declare a meson dependency for libpanfrost and wrap some key functions
within an extern C block allowing proper compilation by C++ compilers.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10462 >
2021-05-03 21:08:47 +00:00
Alyssa Rosenzweig
0ec27d02e1
panfrost: Don't unroll loops in GLSL
...
GLSL loop analysis is trouble. Just use NIR.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
8a4e735506
pan/bi: Workaround *V2F32_TO_V2F16 erratum
...
Exact conditions this workaround is needed unknown. Determined
experimentally.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
daeb3507c2
pan/bi: Don't schedule clamps to +FADD.v2f16
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
b88cb49e4b
pan/bi: Add and use bi_negzero helper
...
-0.0 is the additive identity in IEEE 754 arithmetic, not +0.0!
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
2a0060e63d
pan/bi: Lower swizzles on CLPER
...
Needed for vectorized FP16 derivatives.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
998cbe13d4
pan/bi: Fix loads and stores smaller than 32 bits
...
Spiritual successor to Icecream95's patch of the same name.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Icecream95
0ca7926bb6
pan/bi: Replace lane0 modifier with lane_dest for load instructions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Icecream95
b361a806bb
pan/bi: Add "lane_dest" modifier
...
Similar to the "lane" modifier, but for the instruction destination
instead the sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
5fe4f245a5
pan/bi: Implement vectorized int downcasts
...
Just MKVEC but needs the usual special handling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
caebca4aa7
pan/bi: Improve assert for vector size errors
...
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
2f4bb3d6b9
pan/bi: Fix 16-bit fsat
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
d43c0f35ff
pan/bi: Implement vectorized f32_to_f16
...
f2f16 needs special treatment since it can access multiple 32-bit words.
Corresponds to the two-op instruction V2F32_TO_V2F16.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
1fb681e51d
pan/bi: Emit int CSEL instead of float by default
...
Will be needed when we use 1-bit booleans.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
cf2d575d63
pan/bi: Support 16-bit load_interpolated_input
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
d35075a7be
pan/bi: Union modifiers from across variants
...
itertools.groupby depends on sorting, so this code was quietly broken on
cases like FADD.v2f16.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
394f3f8b74
pan/bi: Simplify Python expression
...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
68c4a30434
pan/bi: Don't reference nir_lower_mediump_outputs
...
Nonexistant.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
1cb11969be
pan/bi: Add simple constant folding pass
...
Cleans up swizzle lowering, and will be used for other cleanup as
well (fancy texturing tends to create a lot of foldable code).
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
84756b980c
pan/bi: Don't reference uninit source in ATOM_C1
...
Causes it to be live throughout the shader, causing register allocation
failures on some dEQP-GLES31 shaders.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Alyssa Rosenzweig
f9070f937f
pan/bi: Add missing sr_count to pseudo-atomics
...
Fixes missing prints for these.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10392 >
2021-05-03 15:10:20 +00:00
Antonio Caggiano
a67ea63718
panfrost: Fix invalid conversions
...
When compiling with a C++ compiler, invalid conversions are treated as
errors unless the fpermissive flag is provided. These changes fix all
invalid conversions encountered while including libpanfrost in a C++
project.
Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10468 >
2021-05-03 13:17:08 +00:00
Icecream95
ab8e531cf0
panfrost: Fix viewport scissor for preload draws
...
The max values are inclusive, so add 1 before aligning. This means
that a max of 32 will be aligned up to 64 then be decremented to 63.
Add a comment to the pan_fb_info struct to document maxx and maxy as
inclusive.
Fixes: 8ba2f9f698 ("panfrost: Create a blitter library to replace the existing preload helpers")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10542 >
2021-04-30 22:24:58 +00:00
Icecream95
9910a14a1a
panfrost: Remove incorrect comment
...
The comment was wrong in its original location and is wrong here, just
remove it.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10542 >
2021-04-30 22:24:58 +00:00
Icecream95
f85b7aa5d4
pan/mdg: Fix calculation of available work registers
...
Make the rmu variable signed; otherwise the MAX2 has no effect and
work_count can end up being larger than 16.
Fixes INSTR_OPERAND_FAULTs in SuperTuxKart.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4707
Fixes: c6ed8bf77c ("panfrost: Fix uniform_count on Midgard")
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10507 >
2021-04-30 10:38:35 +00:00
Juan A. Suarez Romero
e532a47f76
util/hash_table: do not leak u64 struct key
...
For non 64bit devices the key stored in hash_table_u64 is wrapped in
hash_key_u64 structure, which is never free.
This commit fixes this issue by just removing the user-defined
`delete_function` parameter in hash_table_u64_{destroy,clear} (which
nobody is using) and using instead a delete function to free this
structure.
Fixes: 608257cf82 ("i965: Fix INTEL_DEBUG=bat")
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10480 >
2021-04-29 12:58:23 +02:00
Italo Nicola
337957956e
pan/mdg: improve tex opcode decoding and add missing ops
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
6a12ea02fe
pan/mdg: properly encode/decode ldst instructions
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
4b933260d9
pan/mdg: print names of non-work registers
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00
Italo Nicola
d2119073de
pan/mdg: improve ldst opcode names and add missing ops
...
Signed-off-by: Italo Nicola <italonicola@collabora.com >
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9461 >
2021-04-27 07:04:08 +00:00