mesa/src/freedreno
Emma Anholt 58f5605124 freedreno: Handle full blit discards by invalidating the resource.
The previous implementation had several issues:

- It wasn't checking all the conditions necessary for "this blit updates
  the whole surface", like PIPE_MASK_Z but not S on a depth/stencil
  buffer.
- It would reset the previous batchbuffer, even if that batch had side
  effects on other buffers.
- The layering was painful to follow and made any recursion extra
  dangerous.

Now, we use a more conservative test (enough for the resource shadowing
case) and just invalidate the buffer up front, which should have the right
logic for discarding drawing to that resource.

I found I had to add fd_bc_flush_writer() to the end of fd_blitter_blit()
-- a flush was happening at fb state restore time when the discard flag
was set, and losing that flush breaks
dEQP-GLES31.functional.stencil_texturing.format.stencil_index8_cube.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11455>
2021-06-21 20:48:21 +00:00
..
.gitlab-ci freedreno/afuc: Use emulator to extract jmptbl 2021-05-31 23:34:43 +00:00
afuc freedreno/afuc: Print uintptr_t with PRIxPTR 2021-06-02 03:57:20 +00:00
ci freedreno: Handle full blit discards by invalidating the resource. 2021-06-21 20:48:21 +00:00
common freedreno: Move pkt parsing helpers to common 2021-05-31 23:34:43 +00:00
computerator nir: Rename WORK_GROUP (and similar) to WORKGROUP 2021-06-07 22:34:42 +00:00
decode freedreno: Move pkt parsing helpers to common 2021-05-31 23:34:43 +00:00
drm freedreno: Flush if at risk of overflowing bos table 2021-06-21 18:45:23 +00:00
drm-shim freedreno/drm-shim: keep GEM buffers page-aligned 2021-06-14 17:30:01 +00:00
ds freedreno: Add perfetto renderpass support 2021-05-10 15:34:07 +00:00
fdl freedreno/fdl: Give the tiling mode a nice name in debug dumps. 2021-06-17 22:47:51 +00:00
ir2 freedreno/ir2: Re-indent 2021-04-17 15:38:56 +00:00
ir3 freedreno/ir3: Move NIR printing to mesa_log. 2021-06-18 18:18:35 +00:00
isa util: add util_sign_extend 2021-04-27 07:04:07 +00:00
perfcntrs freedreno: Fix fdperf flush 2021-06-09 19:08:53 -07:00
registers freedreno/registers: define REG_DSI_CPHY_MODE_CTRL 2021-06-15 12:42:57 -04:00
rnn freedreno/headergen2: Fix compile warnings with CP_DRAW_INDIRECT_MULTI 2021-05-31 23:34:43 +00:00
vulkan nir/propagate_invariant: add invariant_prim option 2021-06-21 15:13:05 +00:00
.clang-format freedreno: Be more strict about QUERY_AVAILABLE to simplify the code. 2021-06-15 20:42:26 +00:00
.dir-locals.el freedreno: Update editorconfig and emacs settings for freedreno reformat. 2021-05-10 23:16:00 +00:00
.editorconfig freedreno: Update editorconfig and emacs settings for freedreno reformat. 2021-05-10 23:16:00 +00:00
Android.common.mk android: freedreno/common: add libmesa_git_sha1 static dependency 2020-09-07 20:02:45 +00:00
Android.drm.mk freedreno/drm: android: add libfreedreno_registers static dependency 2020-05-09 16:19:14 +00:00
Android.ir2.mk android: freedreno: move a2xx disasm out of gallium 2020-08-02 21:40:21 +02:00
Android.ir3.mk android: freedreno/ir3: Switch over to new encoder/decoder 2021-01-17 21:57:05 +01:00
Android.isa.mk android: freedreno/hw/isa: Add description of ir3 ISA 2021-01-17 21:57:05 +01:00
Android.mk android: freedreno/hw/isa: Add description of ir3 ISA 2021-01-17 21:57:05 +01:00
Android.perfcntrs.mk freedreno: android: fix build of perfcounters. 2020-02-07 16:34:49 +00:00
Android.registers.mk android: freedreno: Another build fix 2020-08-19 11:57:17 +00:00
Makefile.sources android: freedreno/hw/isa: Add description of ir3 ISA 2021-01-17 21:57:05 +01:00
meson.build freedreno: Add freedreno pps driver 2021-05-10 15:34:07 +00:00