mesa/src
Lucas Stach ea8fc9592c etnaviv: use linear PE rendering only on properly aligned surfaces
When linear rendering is used together with TS, the color tiles must be fully
contained in a single row of pixels. When wrapping around to the next row
TS gets confused and records wrong tile status information, leading to visual
corruption when the surface is resolved/decompressed.

The corruption can be fixed by increasing the stride alignment for linear
render targets, but that would break some existing use-cases, as some display
engines used together with Vivante GPUs currently don't support strides that
don't match the horizontal display resolution.

For now only enable linear PE rendering when the surface is properly aligned
already. This allows to use the optimization in a lot of common use-cases, but
falls back to the proven tiled rendering with subsequent resolve into linear
for the problematic cases.

CC: mesa-stable #22.2
Fixes: 53445284a4 ("etnaviv: add linear PE support")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Tested-by: Guido Günther <agx@sigxcpu.org>
Reviewed-by: Guido Günther <agx@sigxcpu.org>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18232>
2022-08-26 07:47:09 +00:00
..
amd radv: stop emitting RMW context registers for updating sample locations 2022-08-26 06:33:05 +00:00
android_stub
asahi asahi: Fix warning building for macOS 12.0 2022-08-21 14:32:40 -04:00
broadcom v3d: introduce V3D_DBG() macro to make V3D_DEBUG checks consistent 2022-08-24 23:03:57 +00:00
c11 c11: #include <threads.h> when the os/platform provide it 2022-08-18 01:02:07 +00:00
compiler nir,ac/llvm: add nir_intrinsic_load_viewport_xy_scale_and_offset 2022-08-26 05:50:30 +00:00
drm-shim drm-shim: Cleanup on device file close 2022-05-02 19:50:33 +00:00
egl meson: replace manual compiler flags with meson arguments 2022-08-24 22:13:19 +00:00
etnaviv util/list: rename LIST_ENTRY() to list_entry() 2022-07-28 10:10:44 +00:00
freedreno turnip: improve tracing of secondary cmd buffers 2022-08-25 21:00:14 +00:00
gallium etnaviv: use linear PE rendering only on properly aligned surfaces 2022-08-26 07:47:09 +00:00
gbm gbm: Add USE_FRONT_RENDERING flag 2022-08-05 00:57:38 +00:00
getopt
glx mapi: Remove usage of _glapi_check_multithread and _glapi_destroy_multithread 2022-08-22 21:32:09 +00:00
gtest gtest: Fix maybe-uninitialized compiler warning 2022-06-29 21:02:18 +00:00
hgl
imagination pvr: Fix calculation in rogue_max_compute_shared_registers(). 2022-08-25 06:51:53 +00:00
imgui
intel anv: Return earlier in anv_gem_get_tiling() when not supported 2022-08-25 19:21:49 +00:00
loader loader/dri3: remove a no-op free call 2022-08-12 13:11:03 +00:00
mapi mesa: Expose GL_NV_ES1_1_compatibility 2022-08-25 10:17:10 -07:00
mesa mesa: Expose GL_NV_ES1_1_compatibility 2022-08-25 10:17:10 -07:00
microsoft dzn: Get max supported shader model 2022-08-25 21:22:49 +00:00
nouveau nv50/nir: A group barrier is CTA-level not global-level 2022-08-23 18:29:44 +00:00
panfrost meson: replace manual compiler flags with meson arguments 2022-08-24 22:13:19 +00:00
tool meson: replace manual compiler flags with meson arguments 2022-08-24 22:13:19 +00:00
util util/u_trace: add PERFETTO HeaderScope 2022-08-25 21:00:14 +00:00
virtio venus: avoid scrubing wsi/external sempahores 2022-08-25 20:18:28 +00:00
vulkan vulkan: Update the XML and headers to 1.3.225 2022-08-24 12:19:13 +00:00
meson.build meson: Remove usage of use_elf_tls 2022-07-29 23:59:11 +00:00