[PATCH v2] wined3d: Decompress DXTn 3D textures on upload.
Matteo Bruni
matteo.mystral at gmail.com
Sun Aug 12 16:55:17 CDT 2018
On Mon, Aug 6, 2018 at 11:05 PM Henri Verbeet <hverbeet at codeweavers.com> wrote:
>
> From: Connor McAdams <conmanx360 at gmail.com>
> + /* Note that uploading 3D textures may require quite some address
> + * space; it may make sense to upload them per-slice instead. */
I think Connor wrote (but probably didn't send) a version of this
patch doing exactly that. Actually IIRC that was necessary to avoid
running out of address space in Halo Online.
Connor, do you want to prepare a followup patch to improve on that?
Tiny nitpick:
> +static void build_dxtn_alpha_table(BYTE alpha0, BYTE alpha1, BYTE alpha_table[8])
> +{
> + unsigned int i;
> +
> + alpha_table[0] = alpha0;
> + alpha_table[1] = alpha1;
> +
> + if (alpha0 > alpha1)
> + {
> + for (i = 0; i < 6; ++i)
> + {
> + alpha_table[2 + i] = ((6 - i) * alpha0 + (i + 1) * alpha1) / 7;
> + }
> + return;
> + }
> + else
> + {
> + for (i = 0; i < 4; ++i)
> + {
> + alpha_table[2 + i] = ((4 - i) * alpha0 + (i + 1) * alpha1) / 5;
> + }
> + alpha_table[6] = 0x00;
> + alpha_table[7] = 0xff;
> + }
> +}
Technically this is DXT5 / BC3 only, the function name could reflect that.
More information about the wine-devel
mailing list