Date: Wed, 25 Nov 2020 08:51:43 +0300 From: Nikolay Sivov nsivov@codeweavers.com To: wine-devel@winehq.org Subject: Re: [PATCH] include: add AV1 support to dxva.h Message-ID: aa27d182-49e8-d3ec-eef1-15d4aeaf02b9@codeweavers.com Content-Type: text/plain; charset=utf-8
On 11/20/20 3:37 PM, Steve Lhomme wrote:
Based on the DXVA AV1 specs https://www.microsoft.com/en-us/download/details.aspx?id=101577
The structures and the associated define are available in Windows SDK since at least 10.0.20231.0.
Is this something pre-released? Latest one I see is 10.0.19041.0, corresponding to Windows 10 2004. It does not have the types.
Yes, it's Windows Insider SDKs that can be found here: https://docs.microsoft.com/en-us/windows-insider/flight-hub/
The GUIDs were present in previous SDKs as well.
include/dxva.h | 279 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 279 insertions(+)
diff --git a/include/dxva.h b/include/dxva.h index 4f18f2e60da..b474bd87111 100644 --- a/include/dxva.h +++ b/include/dxva.h @@ -563,6 +563,285 @@ typedef struct _DXVA_Status_VPx USHORT wNumMbsAffected; } DXVA_Status_VPx, *LPDXVA_Status_VPx;
+#define _DIRECTX_AV1_VA_
+/* AV1 decoder GUIDs */ +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a); +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08); +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8); +DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0); +DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);
Adding GUIDs is fine, since they are indeed present in current versions.
+/* AV1 picture entry data structure */ +typedef struct _DXVA_PicEntry_AV1 {
- UINT width;
- UINT height;
- // Global motion parameters
- INT wmmat[6];
- union {
struct {
UCHAR wminvalid : 1;
UCHAR wmtype : 2;
UCHAR Reserved : 5;
};
UCHAR GlobalMotionFlags;
- };
- UCHAR Index;
- USHORT Reserved16Bits;
+} DXVA_PicEntry_AV1, *LPDXVA_PicEntry_AV1;
For that I think we should wait for released SDK.
OK. It may not even be in 20H2 though. Drivers from Intel, NVIDIA and AMD can all understand those structures, even on Windows 20H1.
On 11/25/20 12:27 PM, Steve Lhomme wrote:
Date: Wed, 25 Nov 2020 08:51:43 +0300 From: Nikolay Sivov nsivov@codeweavers.com To: wine-devel@winehq.org Subject: Re: [PATCH] include: add AV1 support to dxva.h Message-ID: aa27d182-49e8-d3ec-eef1-15d4aeaf02b9@codeweavers.com Content-Type: text/plain; charset=utf-8
On 11/20/20 3:37 PM, Steve Lhomme wrote:
Based on the DXVA AV1 specs https://www.microsoft.com/en-us/download/details.aspx?id=101577
The structures and the associated define are available in Windows SDK since at least 10.0.20231.0.
Is this something pre-released? Latest one I see is 10.0.19041.0, corresponding to Windows 10 2004. It does not have the types.
Yes, it's Windows Insider SDKs that can be found here: https://docs.microsoft.com/en-us/windows-insider/flight-hub/
I think it's better to wait until it's available through regular public releases.
The GUIDs were present in previous SDKs as well.
include/dxva.h | 279 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 279 insertions(+)
diff --git a/include/dxva.h b/include/dxva.h index 4f18f2e60da..b474bd87111 100644 --- a/include/dxva.h +++ b/include/dxva.h @@ -563,6 +563,285 @@ typedef struct _DXVA_Status_VPx USHORT wNumMbsAffected; } DXVA_Status_VPx, *LPDXVA_Status_VPx; + +#define _DIRECTX_AV1_VA_
+/* AV1 decoder GUIDs */ +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a); +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08); +DEFINE_GUID(DXVA_ModeAV1_VLD_Profile2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8); +DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0); +DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);
Adding GUIDs is fine, since they are indeed present in current versions.
+/* AV1 picture entry data structure */ +typedef struct _DXVA_PicEntry_AV1 { + UINT width; + UINT height;
+ // Global motion parameters + INT wmmat[6]; + union { + struct { + UCHAR wminvalid : 1; + UCHAR wmtype : 2; + UCHAR Reserved : 5; + }; + UCHAR GlobalMotionFlags; + }; + UCHAR Index; + USHORT Reserved16Bits; +} DXVA_PicEntry_AV1, *LPDXVA_PicEntry_AV1;
For that I think we should wait for released SDK.
OK. It may not even be in 20H2 though. Drivers from Intel, NVIDIA and AMD can all understand those structures, even on Windows 20H1.