Commit Graph

185174 Commits

Author SHA1 Message Date
Mike Blumenkrantz 417a1986fb zink: set and manage a flag indicating that swapchain readback needs updating
not currently used, but this is more coherent than relying on other flags

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz 114a5da790 zink: update swapchain readback cache on create
ensure this can be used immediately

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz 7486aaa1c0 zink: make readback attempts count towards ZINK_READBACK_THRESHOLD
readback is readback even if the app is being "smart" (swapchain readback
is never smart)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz d5d5f54fe9 zink: add a swapchain readback case for reading differently-acquired image
if a swapchain is shared between multiple resources, a deadlock and/or invalid
data will result from readback attempts if one resource holds a swapchain
image that the other resource must read from

to avoid this, allow accessing the acquiring resource directly since this is
the only sane way to perform readback

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz ae80f9ce65 zink: make kopper_swapchain_image::acquired the resource that acquired it
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz d2ed77072c zink: flag acquired swapchain image as readback target on acquire, not present
readback should trigger on the current backbuffer, not the most recently
presented buffer. if e.g., a clear is only triggered through glFlush,
this clear should be read back rather than the contents of the last-presented
buffer

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz c3a2e2f9f2 zink: lock buffer age when chundering swapchain for readback
this sequence doesn't count as SwapBuffers calls, so age cannot be modified

Fixes: c123ab2137 ("kopper: Implement {EGL,GLX}_EXT_buffer_age")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz 9fa2d9bd50 zink: fix swapchain readback conditional
this check is intended to determine whether the current backbuffer has
data, which correlates to (is_acquired && has_data). here, that corresponds
better to checking for a valid image index && nonzero buffer age

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz 50b671c1c3 zink: fix (dynamic rendering) execution of scissored clears during flush
in the case where the renderpass did not change, this would
otherwise have skipped the mask composition for in-rp clears

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz e602035596 zink: clamp in_rp clears to fb size
this was almost sort of clamping except that it wasn't

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27553>
2024-02-25 21:44:19 -05:00
Mike Blumenkrantz e032e7f6cc zink: don't pre-init null fbfetch info
fbfetch is never used, so this just pointlessly wastes a bunch of
vram

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27684>
2024-02-26 02:07:02 +00:00
Mike Blumenkrantz 5fdbb0868a zink: start out with 256x256 sized dummy surfaces
4096 is huge.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27684>
2024-02-26 02:07:02 +00:00
Mike Blumenkrantz aaf78eadf3 zink: create/resize dummy surfaces on-demand
4096 was used here as a placeholder because it "always works", but
this ends up wasting a ton of vram

instead, start out more conservatively and create new dummy surfaces
if needed

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27684>
2024-02-26 02:07:02 +00:00
Mike Blumenkrantz 1ea64063c8 zink: break out null fbfetch init for descriptor buffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27684>
2024-02-26 02:07:02 +00:00
Mike Blumenkrantz 263d262025 zink: also set null fbfetch surfaces when no fb surface is bound
if nullDescriptor is supported, of course

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27684>
2024-02-26 02:07:02 +00:00
Mike Blumenkrantz f3347a4603 zink: don't pre-init dummy fbfetch surface when missing nullDescriptor feature
this should be handled automatically when updating fbfetch state anyway

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27684>
2024-02-26 02:07:02 +00:00
Mike Blumenkrantz fe13841a99 zink: move flagging rp_changed in zink_update_fbfetch() to caller
this avoids recursive flagging when starting a renderpass

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27684>
2024-02-26 02:07:01 +00:00
Mike Blumenkrantz 35185ad9df zink: assert that batch_id is valid in zink_screen_check_last_finished()
0 is never a valid batch_id

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27729>
2024-02-26 01:42:23 +00:00
Mike Blumenkrantz 3283415bbd zink: fix longstanding issue with active batch state recycling
the previous code could recycle a currently-submitting state by hitting
a race condition where zink_screen_check_last_finished(batch_id) returned
true because batch_id was 0

this can no longer recycle the current batch, but the race should still be
eliminated for consistency: check 'submitted' since this guarantees batch_id
is valid

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27729>
2024-02-26 01:42:22 +00:00
Mike Blumenkrantz 16103b61e7 zink: only scan active batch states for free states if > 1 exist
trying to recycle the current active batch state is never going to be
productive

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27729>
2024-02-26 01:42:22 +00:00
Sean Anderson 2179a7f4d7 Add Xilinx ZynqMP KMSRO entrypoint
Add support for the Xilinx ZynqMP DPSub display driver, used with the
onboard Mali-400 GPU.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27370>
2024-02-25 22:16:27 +00:00
Faith Ekstrand 4499871e34 nvk: Advertise VK+KHR_incremental_present
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27785>
2024-02-25 14:44:20 -06:00
Faith Ekstrand b3fd66c889 nvk: Only expose VK_KHR_present_id/wait when we have WSI
Also update docs/features.txt

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27785>
2024-02-25 14:44:20 -06:00
Juan A. Suarez Romero 726ae2570c v3dv/ci: update expected list
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27781>
2024-02-25 18:44:56 +01:00
Sean Anderson 423add61e2 gallium: lima: Don't round height when checking alignment
Height does not affect alignment, so don't modify it. This fixes
failures if the buffer height is not an exact multiple of 16.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27371>
2024-02-24 19:55:27 +00:00
Lionel Landwerlin 642b12baef anv: limit depth flush on dynamic render pass suspend
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27745>
2024-02-24 13:21:09 +00:00
Lionel Landwerlin abeac8cf96 intel/nir: only consider ray query variables in lowering
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27752>
2024-02-24 12:56:30 +00:00
Caio Oliveira 373130a66c intel/compiler: Remove has_render_target_reads from wm_prog_data
This was used only by the classic i965 driver.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27772>
2024-02-24 02:34:59 +00:00
Caio Oliveira 10230d2eec intel/brw: Assert Gfx9+
Acked-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27768>
2024-02-24 02:10:56 +00:00
Caio Oliveira 40437bea86 intel/brw: Remove pass test cases for Gfx8-
And update the mock devinfo versions to be at least Gfx9.

Acked-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27768>
2024-02-24 02:10:56 +00:00
Caio Oliveira 8c3165f0ff intel/brw: Remove EU validation tests for Gfx8-
Acked-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27768>
2024-02-24 02:10:56 +00:00
Caio Oliveira a5b67d4bea intel/brw: Remove EU compaction tests for Gfx8-
Acked-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27768>
2024-02-24 02:10:56 +00:00
Caio Oliveira 9bc670509c intel/brw: Remove assembler tests for Gfx8-
Acked-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27768>
2024-02-24 02:10:56 +00:00
Caio Oliveira 80de55801e intel/elk: Remove tests for Gfx9+
These are covered in the regular "brw" compiler.

Acked-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27770>
2024-02-24 01:41:31 +00:00
Konrad Dybcio 1f508a5dac freedreno/registers: Add some HWCG regs
A702 sets even more of these.. Follow suit!

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27700>
2024-02-24 01:15:04 +00:00
Rob Clark e7ee2c8ca5 tu: Give suballoc bo's a name
So they show up in gem debugfs with a more useful label.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27700>
2024-02-24 01:15:04 +00:00
Rob Clark bcc5ddcc3b freedreno/crashdec: Find potential fault buffers
Denote if a buffer we know about is covering the fault address (kernel
issue), or if the fault address is within the 2 * size range, indicating
that the buffer is potentially the one the GPU read past the end of.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27700>
2024-02-24 01:15:04 +00:00
Caio Oliveira 32db7a9533 intel/elk: Use anonymous namespace in fs_combine_constants
Certain GitLab CI build use a combination of LTO and -Werror=odr that
will fail if both ELK and BRW share the same names for those helpers,
so wrap the ELK ones around anonymous namespace.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira 2bc18fe46f intel-clc: Use correct set of nir_options when building for Gfx8
Use the correct set of nir_options when building for Gfx8.  Note this is
only used in the NIR codepath.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira c83f92087b intel/elk: Move nir_options to its own c/h file pair
This will allow intel-clc tool to use the ELK nir_options in its NIR
codepath without having to link with the entire ELK compiler.  That way
an Anv only build doesn't need to compile ELK.

Iris uses that codepath for Gfx8.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira 6f83b1dddc intel/tools: Add extra compiler device sha only for Gfx9+
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira 8abfbc9cca intel/meson: Rename libintel_compiler to libintel_compiler_brw
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira 255a411450 intel: Use _brw suffix for genX headers that rely on brw
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira 23e0cff907 intel/tools: Add ELK support for intel_hang_viewer
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira d641ca5b86 intel/tools: Add ELK support for aubinator_viewer
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira 9d379f08af intel/tools: Add ELK support for intel_hang_replay
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira c9a6b49b4b intel/tools: Add ELK support for aubinator_error_decode
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:32 +00:00
Caio Oliveira 5338a24fe0 intel/tools: Add ELK support for aubinator
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:31 +00:00
Caio Oliveira 9796b56e41 iris: Use ELK compiler for Gfx8
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:31 +00:00
Caio Oliveira 4c3b65ccf9 iris: Rename screen->compiler to screen->brw
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27563>
2024-02-24 00:24:31 +00:00