[PATCH 6/7] wineboot: Initialize XState features in user_shared_data.

Francois Gouget fgouget at codeweavers.com
Thu May 27 12:46:21 CDT 2021


On Thu, 27 May 2021, Paul Gofman wrote:
[...]
> I have AMD Ryzen 5 3500X, Windows 10 Pro, 20H2 Build 19042.985.
> Everything was the same with these test results at the moment of writing
> the original patch. Maybe this depends on CPU feature flags, or AVX2. As
> far as I looked up, i7-2600K is from early 2010s and doesn't support
> AVX2, maybe it doesn't support some other xstate related features like
> xsavec or xsaveopt (I don't have a full cpuid for that CPU to be sure).

I think it has to do with the xsavec support. Running the (Linux) cpuid 
tool on the cw-* machines gives:

i7-2600K:
   XSAVE features (0xd/1):
      XSAVEOPT instruction                        = true
      XSAVEC instruction                          = false
      XGETBV instruction                          = false
      XSAVES/XRSTORS instructions                 = false
      SAVE area size in bytes                     = 0x00000000 (0)
      IA32_XSS lower 32 bits valid bit field mask = 0x00000000
      IA32_XSS upper 32 bits valid bit field mask = 0x00000000

(same thing in the TestBot VMs and on my i7-4790K)

And the test does not get the broken case if I run it in a Windows 10 VM 
on my laptop where cpuid says:

i7-8565U:
   XSAVE features (0xd/1):
      XSAVEOPT instruction                        = true
      XSAVEC instruction                          = true
      XGETBV instruction                          = true
      XSAVES/XRSTORS instructions                 = true
      SAVE area size in bytes                     = 0x000003c0 (960)
      IA32_XSS lower 32 bits valid bit field mask = 0x00000100
      IA32_XSS upper 32 bits valid bit field mask = 0x00000000

I think that's also the reason for the failure on Windows 8.1. So I'll 
send a patch.

-- 
Francois Gouget <fgouget at codeweavers.com>



More information about the wine-devel mailing list