[PATCH v5 0/10] MR79: wined3d: Refactor format flags into two groups.

Chip Davis (@cdavis5e) wine at gitlab.winehq.org
Mon May 23 18:08:44 CDT 2022


On Mon May 23 17:04:32 2022 +0000, **** wrote:
> Zebediah Figura replied on the mailing list:
> ```
> On 5/20/22 19:25, Chip Davis (@cdavis5e) wrote:
> > On Fri May 20 17:13:12 2022 +0000, **** wrote:
> >> Zebediah Figura replied on the mailing list:
> >> \`\`\`
> >> On 5/20/22 04:06, Jan Sikorski (@jsikorski) wrote:
> >>> On Fri May 20 09:06:20 2022 +0000, Chip Davis wrote:
> >>>> @jsikorski, I have no way of verifying that I didn't break the
> tests on
> >>>> Vulkan again. They crash on me at this moment.
> >>> I get the same result. Do you get a crash in test_texture() and
> >> test_compressed_format_compatibility() specifically? Those are the ones
> >> that regress.
> >>>
> >> I'm getting the same errors with GL too, actually. They seem to be
> >> triggered by patch 6/10 (the one moving BLOCKS etc.)
> >> \`\`\`
> >> I get the same result. Do you get a crash in test_texture() and
> test_compressed_format_compatibility() specifically? Those are the ones
> that regress.
> > 
> > I don't see those failures. With Vulkan, I see different crashes that
> have a lot to do with a) MoltenVK not implementing stuff that b) wined3d
> blindly assumes that a Vulkan implementation will have. I see crashes in
> `test_so_statistics_query()` and `test_clear_state()`. With OpenGL, it
> doesn't even actually run any tests.
> > 
> > This is supposed to be NFC. I don't see anything in the patch itself
> that would cause problems, yet clearly something is lurking there.
> Exactly what failures do you see?
> > 
> I get signs of memory corruption and GL_INVALID_OPERATION errors like 
> the following:
> 0104:err:d3d:wined3d_debug_callback 000000000039BC80: "GL_INVALID_VALUE 
> in glCompressedTexSubImage2D(size=512)".
> I did a bit of debugging, and the following diff fixes things for me:
> diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
> index 37846d980b7..50ccde057f0 100644
> --- a/dlls/wined3d/utils.c
> +++ b/dlls/wined3d/utils.c
> @@ -3835,7 +3835,7 @@ static BOOL init_typeless_formats(const struct 
> wined3d_adapter *adapter)
>           attrs = typeless_format->attrs;
>           memcpy(flags, typeless_format->flags, sizeof(flags));
>           copy_format(adapter, typeless_format, format);
> -        typeless_format->attrs = attrs;
> +        typeless_format->attrs |= attrs;
>           for (j = 0; j < ARRAY_SIZE(typeless_format->flags); ++j)
>               typeless_format->flags[j] |= flags[j];
>       }
> ```
/me smacks head

*That's* what I missed. And no wonder--it was in the first patch, when I was focused on patch 6.

Thanks for figuring this out. I have applied your diff to my patches.

-- 
https://gitlab.winehq.org/wine/wine/-/merge_requests/79#note_1131



More information about the wine-devel mailing list