protonscr

Would it be acceptable to expose BC7 in d3d9 as an extension?

dxvkclosed question
doitsujin/dxvk#5792 · opened 2026-07-13 by Aerocatia · updated 2026-08-03 · 3 comments · github
AAerocatia 2026-07-13 github

In Halo PC it is possible to have BC7 bitmaps in the game assets, but obviously the d3d9 version of the game can not use these directly, we would have to resort to software decoding.

Would it be acceptable for upstream DXVK to have a feature where you could use the BC7 texture format directly in d3d9, and have some way to detect this? If people do not have such a version of DXVK (or another implementation that supports the same extension) we could go back to software decoding. it might be useful in dxvk-native too.

I could do this is some forked DXVK, but I don't know if that is worth it, or if this is even a good idea in general.

AAerocatia 2026-07-13 github

hmm it seems according to the d3d9 documentation this kind of thing was intended (but not widely used?)

Pixel formats have been chosen to enable the expression of hardware-vendor-defined extension formats, as well as to include the well-established FOURCC method. The set of formats understood by the Direct3D runtime is defined by D3DFORMAT.

https://learn.microsoft.com/en-us/windows/win32/direct3d9/d3dformat

EDIT: Oh I see DXVK already has some of these, just not BC7.

Ddoitsujin maintainer 2026-07-13 github

Not sure I understand how this issue even comes into existence, if this is a D3D9 game then how in the name of fuck is it aware of BC7 in the first place? Did Xbox 360 support this or something?

Not too thrilled about adding features that never existed on any "real" D3D9 implementation in general.

AAerocatia 2026-07-13 github

It's not, but the content is aware of the format because of later versions.

So we have Halo PC/Halo Custom Edition, this is a d3d9 game released in 2003.
Then you have Halo MCC, released in 2019 for PC, using d3d11.

The content for these games is defined in a format known as "tags" and MCC defined BC7 as a valid format in bitmap tags.
There is no reason we can't use tags with this format in the older game, and with a mod we can hook up the new format.
However the older versions is still d3d9.

The reason a lot of us prefer the older release is because it has proper dedicated servers and better runtime mod support.
You can't even host a public game with custom maps in the newer release (custom invite games only), let alone on a public facing dedicated server.

To clarify we could have defined BC7 as a custom format in the game asset format ourselves but we don't have to do that because it was done officially, we just need to make the older release handle it be it software decoding, or this.

Nothing extracted yet.