Skip to content

anv: add ASTC LDR emulation

Chia-I Wu requested to merge olv/mesa:anv-astc-emu into main

What does this MR do and why?

This MR adds ASTC LDR emulation for gfx 12.5+. Because I only have access to tigerlake at the moment, this is tested on gfx 12 with native astc support disabled. This is also based on an older version of !24672 (merged). I plan to rebase and test on real hw when I have access to. For now, please ignore commit isl: force disable astc and those before it.

This takes a similar approach as radv does

  • if astc emulation is enabled and an astc image is created, a hidden plane for the decompressed data is added
  • on texture uploads, invoke a compute shader to decompress to the hidden plane
  • when an image view is created for such an image, transparently make it a view into the hidden plane

It also passes CTS.

BUT IT LEAKS MEMORY.

I am also sending this out now because I would like get opinions on the overall approach as well. Especially the CS invocation works like a meta operation: save a subset of command buffer states, modify the same subset of states, dispatch, and restore states. I am not sure if that's the approach we want or should I extend blorp or simple shaders.

Edited by Chia-I Wu

Merge request reports