mesa/src
Connor Abbott 9e63224424
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
tu: Use a patchpoint for subpass clears with FDM
The rectangle to clear, which is the render area for subpass clears, is
specified in framebuffer coordinates, but the hardware uses GMEM
coordinates with FDM. I assumed this was ok for subpass clears, because
the end of the bin in GMEM coordinates is always less than or equal to
the end in framebuffer coordinates, so we would clear past the end of
the bin which is still safe because only the render area would be stored
to sysmem:

bin 0   bin 1   bin 2
|---|   |---|   |---|      GMEM coordinates (what the HW "sees")
|-------|-------|-------|  framebuffer coordinates (used e.g.
	                   as STORE_OP_STORE destination)
|-----------------------|  render area/clear rectangle (past end of bin
			   in GMEM coordinates!)

There was a hack for FDM offset, where framebuffer coordinates are
shifted to the left, but that was it. However this breaks down if the
render area doesn't start at (0,0), because it can miss pixels in GMEM
coordinates that should be cleared:

bin 0   bin 1   bin 2
|---|   |---|   |---|      GMEM coordinates (what the HW "sees")
|-------|-------|-------|  framebuffer coordinates (used e.g.
	                   as STORE_OP_STORE destination)
     |------------------|  render area/clear rectangle (we don't clear
			   bin 0!)

Here we should clear the right half of bin 0 but instead we don't clear
it at all.

Instead of adding yet more hacks to expand the render area, just add a
patchpoint to transform the render area into GMEM coordinates. We
already do this for CmdClearAttachments where we didn't have a choice,
so just reuse that. As a bonus, we can also delete the hack for FDM
offset.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39495>
2026-01-26 12:17:12 -05:00
..
amd radeonsi/vcn: Add low latency decode debug option 2026-01-26 15:00:06 +00:00
android_stub android_stub: fix missing prototypes issues 2025-12-02 20:03:02 +00:00
asahi asahi/clc: call nir_opt_remove_phis after nir_opt_loop 2026-01-26 12:02:49 +00:00
broadcom broadcom/ci: remove duplicate entries 2026-01-23 10:44:30 +00:00
c11 c11/threads: fix build on c23 2025-11-10 07:01:50 +10:00
compiler nir/opt_loop: Relax restrictions on opt_loop_peel_initial_break() for more loops 2026-01-26 12:02:49 +00:00
drm-shim drm-shim: handle DRM_CAP_ADDFB2_MODIFIERS 2025-11-24 12:34:08 +00:00
egl egl/surfaceless,device: Support RGB[A]16_UNORM formats for pbuffers. 2026-01-21 12:29:03 +00:00
etnaviv etnaviv/ci: Add gitlab-ci-inc.yml to file list 2026-01-19 20:46:38 +00:00
freedreno tu: Use a patchpoint for subpass clears with FDM 2026-01-26 12:17:12 -05:00
gallium r600: update cubearray imagesize calculation 2026-01-26 16:38:10 +00:00
gbm gbm: Make documentation for gbm_bo_map more explicit 2025-12-29 10:05:38 +00:00
getopt
gfxstream gfxstream: fixes related to -Wmissing-prototypes 2026-01-23 18:06:01 +00:00
glx driconf: add a way to override GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 2025-12-17 23:35:24 +00:00
gtest
imagination pvr/ci: document last night's flakes 2026-01-23 19:37:20 +00:00
imgui imgui: Silence build warnings for imgui 2025-09-16 06:16:19 +00:00
intel intel/dev: Add INTEL_DEVICE_INFO_MMAP_MODE_INVALID 2026-01-26 15:24:55 +00:00
kosmickrisp kk: Use pipeline_layout.dynamic_descriptor_offset 2026-01-22 17:04:19 +00:00
loader loader: fix UB in wayland helper code. 2026-01-03 07:56:38 +00:00
mesa compiler/mesa/st: Move gl_advanced_blend_mode to util/blend.h 2026-01-24 21:44:00 +00:00
microsoft vk: descriptors: sort bindings along with flags 2026-01-20 15:55:47 +00:00
nouveau nvk/nvkmd: Do not limit exec_push count in nvkmd_nouveau_exec_ctx 2026-01-22 20:35:03 +00:00
panfrost panfrost/clc: call nir_opt_remove_phis after nir_opt_loop 2026-01-26 12:02:49 +00:00
poly panvk/csf: implement VK_EXT_primitives_generated_query primitive restart 2026-01-21 09:03:34 +00:00
tool pps/meson: minor refactor for pps_deps 2025-11-08 18:39:00 -08:00
util util/blend: Add pipe_blend_overlap_mode enum 2026-01-24 21:44:00 +00:00
virtio venus: refactor Android ANB tracking to avoid confusions with WSI 2026-01-21 23:15:42 +00:00
vulkan vulkan/wsi/wayland: use roundtrip instead of flush on swapchain free 2026-01-26 06:27:37 +00:00
x11 treewide: strip unneeded inc_gallium inc_gallium_aux 2025-11-13 22:01:43 +00:00
.clang-format util: Add sparse bitset data structure 2025-11-06 21:34:33 +00:00
meson.build kk: Add KosmicKrisp 2025-10-20 17:46:38 +00:00