Login
You're viewing the discuss.systems public feed.

Replies

  • Oct 11, 2026, 2:58 AM

    Context: I was asked to have a look at the ETC encoder compute shader that UE uses for Runtime Virtual Textures, but my testbed for the runtime encoding shaders is PC D3D12. So it's either port the testbed to a mobile device and then also need to shuttle the test data back and forth to a phone etc., or decode ETC on the PC. My testbed also assumes all pixel processing (including the diffing) happens on the GPU and it's easier to write this shader than to completely redo the way that app works.

    💬 1🔄 0⭐ 0
  • Oct 11, 2026, 3:01 AM

    "why do you still use ETC2 for RVTs, why not ASTC?"
    It's only some of the layers.

    We want something with 4x4 pixel blocks and 64-bit blocks (to match BC1) and ETC2 is the closest we get.

    ASTC only has 128-bit blocks and the ~same bitrate equivalent is 128-bit blocks with 6x6 pixels, but that would result in mixing 4x4 blocks and 6x6 blocks within RVT tiles, also require RVT tile dimensions to have a multiple of 12 (and not 4) pixels, and in general get incredibly cursed, so 🤷

    💬 1🔄 0⭐ 0
  • Oct 11, 2026, 3:02 AM

    (in practice, upgrading to ASTC 4x4 and just eating the extra size is the sanest option given the other constraints, but that costs more memory which is quite scarce on the devices in question, so... yeah)

    💬 1🔄 0⭐ 0
  • Oct 11, 2026, 3:04 AM

    more to the point, although this is all Questionable Bullshit, it's exactly my kind of bullshit and totally my jam, so...

    💬 0🔄 0⭐ 0
  • 💬 1🔄 0⭐ 0
  • 💬 0🔄 0⭐ 0