Faith Ekstrand
63db105014
nak: Rename OpFSOut to OpRegOut
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
0b4bfefd6f
nak/nir: Preserve rounding modes in split_64bit_conversions()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
ec84d7ce74
nak: Add tests for OpPopC and enable SrcMod::BNot
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
27ee9027da
nak: Use OpFoldData::get_u32_bnot_src() more places
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
1a6ca8e601
nak/sm50: Set the not bit for OpLop2::srcs[0]
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
61076b04a7
nak: Add tests for OpIAdd2 and OpIAdd2X
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
aa87c9c96d
nak/hw_tests: Use better test values for iadd tests
...
This new helper makes sure we return some particularly interesting
numbers which may hit edge cases in the hardware and/or folding code.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
6291440ee7
nak/hw_tests: Respect src_mod and src_swizzle in op auto-tests
...
Instead of replacing the whole source, just replace the src_ref so we
maintain the modifier.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
f557423467
nak: Add source and destination types for carry values
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
eb5f333606
nak: Assert no overflow when legalizing iadd with too many ineg modifiers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
96812f6b72
nak: Add tests for OpFlo
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
10701ac331
nak/hw_tests: Explicitly test equal cases in test_isetp64
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
957e7b3451
nak: Lower iadd64(x, -y) to isub64(x, y) in NIR
...
This is easier than optimizing in the back-end and lets us use 2
instructions for an isub64 rather than 4.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
8646ae7e23
nak/builder: Allow source modifiers in ineg64()
...
This lets us implement ineg64(x) as iadd64(0, -x, 0) and also reduces
the number of cases in iadd64() itself.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
7f0b8a82d0
nak: Add tests for nak_builder::ineg64
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
73384c626d
nak: SrcMod::INeg cannot be folded
...
The only reason why this hasn't been causing us problems before is
because the only use of ineg in an iadd with a carry-out is ineg64 and
that's basically guaranteed to be folded in NIR because it's unary.
However, if we want to be able to use SrcMod::INeg more, we need to be
more careful about it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
c2b5d7ca41
nak/sm50: Add execution delays for more ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
ce91e8875a
nak: OpKill also needs a delay on Maxwell
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:20 +00:00
Faith Ekstrand
c8eb8f946a
nak: Add an optimization for CRS ops
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Faith Ekstrand
1cf945a5d1
nak: Add target labels to CRS pop instructions
...
This makes them easier to read.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Faith Ekstrand
9bbc692064
nak/nir: Rework CRS handling
...
THe new code tracks the whole call/return stack. This means we know the
size of the stack at all times. It also means that we can detect a
bunch of potential error cases.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Faith Ekstrand
cb5e10d0aa
nak/nir: Add a few more NIR helpers
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Faith Ekstrand
f66ca6edc3
nak/nir: Fix the reverse execlist iterator
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Faith Ekstrand
d19ea8524b
nvk: Take CRS into account when allocating the SLM area
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Faith Ekstrand
b78f7d208b
nak: Plumb through the call/return stack size
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Faith Ekstrand
3e935df2b0
nak: Move the runner into the main nak crate
...
This makes the meson a bit simpler since we can just conditionally build
it based on #[cfg(test)] instead of breaking it into a separate library.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30402 >
2024-07-28 21:49:19 +00:00
Rob Clark
ad90bf0500
freedreno/a6xx: Initial a7xx support
...
Passing all of deqp-gles*
LRZ is still causing some artifacts in games so it is disabled for now.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
e6be78c703
freedreno/a6xx: Rework CCU_CNTL emit for a7xx
...
Regs are different, and a750+ gets new configuration for VPC cache in
GMEM.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
1f41d59059
freedreno/a6xx: Refactor CP_EVENT_WRITE emit
...
Consolidate the various uses of CP_EVENT_WRITE into helpers, and use use
fd_gpu_event to manage the differences between a6xx and a7xx. This is a
bit churny as it spreading a fair bit of the CHIP template param around.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
b1937f76ff
freedreno/a6xx: Allocate lrcfc when needed for direction tracking
...
On later GPUs this buffer is also used for direction tracking, etc.
Meaning that it is not optional.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
679e9093e1
freedreno: Extract out shared LRZFC layout helpers
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
beb5577e12
freedreno: Extract out common UBWC helper
...
And re-use in gallium driver.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
5c34a5e59a
freedreno: Move GENX/CALLX magic to common
...
And re-use them in the gallium driver
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
a6c9f152cc
freedreno/drm: Handle a7xx case
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:18 +00:00
Rob Clark
31302ca107
tu/drm/virtio: Add missing a7xx case
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:17 +00:00
Rob Clark
8ff33a756d
freedreno/cffdec: Fix a7xx CP_EVENT_WRITE decoding
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:17 +00:00
Rob Clark
10eaf06e47
freedreno/a7xx: Fix GRAS_UNKNOWN_80F4 writes
...
If this is a 64b reg, we should write both halves.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:17 +00:00
Rob Clark
1a3f041cd8
freedreno/a6xx: Implement reg stomper support
...
Useful to track down issues related to uninitialized regs.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30304 >
2024-07-28 18:25:17 +00:00
Mike Blumenkrantz
1242f3ed3a
glx: unhackify inferring zink from dri3
...
this still needs to be broken up more
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
8994165e92
glx: consolidate some LIBGL_KOPPER_DISABLE checks
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
725875cdea
glx: move drisw dri3 handling for zink out to glxInitialize
...
this is much cleaner
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
82955b48aa
glx: use base screen has_multibuffer for drisw
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
e9aec758c6
glx: delete all driver-specific display handling
...
this no longer does anything
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
886af985f8
glx: move dri2 loader extensions to static vtable
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
d723438e0d
glx: move dri2 init checks to separate function
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
5f55da01db
glx: tweak dri2 init ordering
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
f79eb4730c
glx: move dri2Hash to base glx_display
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
6be546764a
glx: rework/simplify drisw zink handling
...
this pushes the logic further down so it's all in one place
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
08e2985e57
glx: move driwindows_display::event_base to driwindows_context
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00
Mike Blumenkrantz
2126a48149
glx: move has_multibuffer to base glx_screen struct
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30375 >
2024-07-28 13:11:07 +00:00