Wine-Devel
Threads by month
- ----- 2026 -----
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 19 participants
- 84525 discussions
v3: Use separate implementation from pointer moniker.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/ole32/moniker.h | 4 +-
dlls/ole32/ole32.spec | 2 +-
dlls/ole32/ole32_objidl.idl | 6 +
dlls/ole32/oleproxy.c | 13 +
dlls/ole32/pointermoniker.c | 531 +++++++++++++++++++++++++++++++++++-
dlls/ole32/tests/moniker.c | 221 ++++++++++++++-
include/objidl.idl | 5 +-
7 files changed, 776 insertions(+), 6 deletions(-)
diff --git a/dlls/ole32/moniker.h b/dlls/ole32/moniker.h
index 8549bd46c1e..2106e374394 100644
--- a/dlls/ole32/moniker.h
+++ b/dlls/ole32/moniker.h
@@ -26,15 +26,17 @@
DEFINE_OLEGUID( CLSID_FileMoniker, 0x303, 0, 0 );
DEFINE_OLEGUID( CLSID_ItemMoniker, 0x304, 0, 0 );
DEFINE_OLEGUID( CLSID_AntiMoniker, 0x305, 0, 0 );
+DEFINE_OLEGUID( CLSID_PointerMoniker, 0x306, 0, 0 );
DEFINE_OLEGUID( CLSID_CompositeMoniker, 0x309, 0, 0 );
DEFINE_OLEGUID( CLSID_ClassMoniker, 0x31a, 0, 0 );
-DEFINE_OLEGUID( CLSID_PointerMoniker, 0x306, 0, 0 );
+DEFINE_OLEGUID( CLSID_ObjrefMoniker, 0x327, 0, 0 );
HRESULT WINAPI FileMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
HRESULT WINAPI ItemMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
HRESULT WINAPI AntiMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
HRESULT WINAPI CompositeMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
HRESULT WINAPI ClassMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
+HRESULT WINAPI ObjrefMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
HRESULT WINAPI PointerMoniker_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
HRESULT WINAPI ComCat_CreateInstance(IClassFactory *iface, IUnknown *pUnk, REFIID riid, void **ppv);
diff --git a/dlls/ole32/ole32.spec b/dlls/ole32/ole32.spec
index 8e73fdd16b4..d9ffd63585c 100644
--- a/dlls/ole32/ole32.spec
+++ b/dlls/ole32/ole32.spec
@@ -103,7 +103,7 @@
@ stdcall CreateGenericComposite(ptr ptr ptr)
@ stdcall CreateILockBytesOnHGlobal(ptr long ptr)
@ stdcall CreateItemMoniker(wstr wstr ptr)
-@ stub CreateObjrefMoniker
+@ stdcall CreateObjrefMoniker(ptr ptr)
@ stdcall CreateOleAdviseHolder(ptr)
@ stdcall CreatePointerMoniker(ptr ptr)
@ stdcall CreateStreamOnHGlobal(ptr long ptr) combase.CreateStreamOnHGlobal
diff --git a/dlls/ole32/ole32_objidl.idl b/dlls/ole32/ole32_objidl.idl
index 0cc3ccea9e5..97f91224839 100644
--- a/dlls/ole32/ole32_objidl.idl
+++ b/dlls/ole32/ole32_objidl.idl
@@ -105,6 +105,12 @@ coclass ClassMoniker { interface IMoniker; }
]
coclass PSFactoryBuffer { interface IFactoryBuffer; }
+[
+ threading(both),
+ uuid(00000327-0000-0000-c000-000000000046)
+]
+coclass ObjrefMoniker { interface IMoniker; }
+
[
helpstring("Component Categories Manager"),
threading(both),
diff --git a/dlls/ole32/oleproxy.c b/dlls/ole32/oleproxy.c
index e40e2b073e5..c429ce02b3b 100644
--- a/dlls/ole32/oleproxy.c
+++ b/dlls/ole32/oleproxy.c
@@ -137,6 +137,17 @@ static const IClassFactoryVtbl PointerMonikerCFVtbl =
static IClassFactory PointerMonikerCF = { &PointerMonikerCFVtbl };
+static const IClassFactoryVtbl ObjrefMonikerCFVtbl =
+{
+ ClassFactory_QueryInterface,
+ ClassFactory_AddRef,
+ ClassFactory_Release,
+ ObjrefMoniker_CreateInstance,
+ ClassFactory_LockServer
+};
+
+static IClassFactory ObjrefMonikerCF = { &ObjrefMonikerCFVtbl };
+
static const IClassFactoryVtbl ComCatCFVtbl =
{
ClassFactory_QueryInterface,
@@ -198,6 +209,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid,LPVOID *ppv)
return IClassFactory_QueryInterface(&CompositeMonikerCF, iid, ppv);
if (IsEqualCLSID(rclsid, &CLSID_ClassMoniker))
return IClassFactory_QueryInterface(&ClassMonikerCF, iid, ppv);
+ if (IsEqualCLSID(rclsid, &CLSID_ObjrefMoniker))
+ return IClassFactory_QueryInterface(&ObjrefMonikerCF, iid, ppv);
if (IsEqualCLSID(rclsid, &CLSID_PointerMoniker))
return IClassFactory_QueryInterface(&PointerMonikerCF, iid, ppv);
if (IsEqualGUID(rclsid, &CLSID_StdComponentCategoriesMgr))
diff --git a/dlls/ole32/pointermoniker.c b/dlls/ole32/pointermoniker.c
index 051d42aca6d..f75c2e3f0f4 100644
--- a/dlls/ole32/pointermoniker.c
+++ b/dlls/ole32/pointermoniker.c
@@ -1,5 +1,5 @@
/*
- * Pointer Moniker Implementation
+ * Pointer and Objref Monikers Implementation
*
* Copyright 1999 Noomen Hamza
* Copyright 2008 Robert Shearman (for CodeWeavers)
@@ -641,3 +641,532 @@ HRESULT WINAPI PointerMoniker_CreateInstance(IClassFactory *iface,
return hr;
}
+
+/* ObjrefMoniker implementation */
+
+typedef struct ObjrefMonikerImpl
+{
+ IMoniker IMoniker_iface;
+ IMarshal IMarshal_iface;
+
+ LONG refcount;
+
+ IUnknown *pObject;
+} ObjrefMonikerImpl;
+
+static inline ObjrefMonikerImpl *objref_impl_from_IMoniker(IMoniker *iface)
+{
+ return CONTAINING_RECORD(iface, ObjrefMonikerImpl, IMoniker_iface);
+}
+
+static ObjrefMonikerImpl *objref_impl_from_IMarshal(IMarshal *iface)
+{
+ return CONTAINING_RECORD(iface, ObjrefMonikerImpl, IMarshal_iface);
+}
+
+static ObjrefMonikerImpl *unsafe_objref_impl_from_IMoniker(IMoniker *iface);
+
+static HRESULT WINAPI ObjrefMonikerImpl_QueryInterface(IMoniker *iface, REFIID iid, void **obj)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface);
+
+ TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), obj);
+
+ if (!obj)
+ return E_INVALIDARG;
+
+ *obj = 0;
+
+ if (IsEqualIID(iid, &IID_IUnknown) ||
+ IsEqualIID(iid, &IID_IPersist) ||
+ IsEqualIID(iid, &IID_IPersistStream) ||
+ IsEqualIID(iid, &IID_IMoniker) ||
+ IsEqualGUID(iid, &CLSID_ObjrefMoniker) ||
+ IsEqualGUID(iid, &CLSID_PointerMoniker))
+ {
+ *obj = iface;
+ }
+ else if (IsEqualIID(iid, &IID_IMarshal))
+ *obj = &moniker->IMarshal_iface;
+ else
+ return E_NOINTERFACE;
+
+ IMoniker_AddRef(iface);
+
+ return S_OK;
+}
+
+static ULONG WINAPI ObjrefMonikerImpl_AddRef(IMoniker *iface)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface);
+ ULONG refcount = InterlockedIncrement(&moniker->refcount);
+
+ TRACE("%p, refcount %u\n", iface, refcount);
+
+ return refcount;
+}
+
+static ULONG WINAPI ObjrefMonikerImpl_Release(IMoniker *iface)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface);
+ ULONG refcount = InterlockedDecrement(&moniker->refcount);
+
+ TRACE("%p, refcount %u\n", iface, refcount);
+
+ if (!refcount)
+ {
+ if (moniker->pObject) IUnknown_Release(moniker->pObject);
+ heap_free(moniker);
+ }
+
+ return refcount;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_GetClassID(IMoniker *iface, CLSID *clsid)
+{
+ TRACE("(%p,%p)\n", iface, clsid);
+
+ if (!clsid)
+ return E_POINTER;
+
+ *clsid = CLSID_ObjrefMoniker;
+ return S_OK;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_IsDirty(IMoniker *iface)
+{
+ /* Note that the OLE-provided implementations of the IPersistStream::IsDirty
+ method in the OLE-provided moniker interfaces always return S_FALSE because
+ their internal state never changes. */
+
+ TRACE("(%p)\n",iface);
+
+ return S_FALSE;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_Load(IMoniker *iface, IStream *stream)
+{
+ TRACE("(%p)\n", stream);
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_Save(IMoniker *iface, IStream *stream, BOOL dirty)
+{
+ FIXME("(%p,%p,%d): stub\n", iface, stream, dirty);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_GetSizeMax(IMoniker* iface, ULARGE_INTEGER *size)
+{
+ TRACE("(%p,%p)\n", iface, size);
+
+ if (!size)
+ return E_POINTER;
+
+ size->u.LowPart = 0;
+ size->u.HighPart = 0;
+
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_BindToObject(IMoniker *iface, IBindCtx *pbc, IMoniker *left,
+ REFIID riid, void **result)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface);
+
+ TRACE("(%p,%p,%p,%s,%p)\n", iface, pbc, left, debugstr_guid(riid), result);
+
+ if (!moniker->pObject)
+ return E_UNEXPECTED;
+
+ return IUnknown_QueryInterface(moniker->pObject, riid, result);
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_BindToStorage(IMoniker *iface, IBindCtx *pbc, IMoniker *left,
+ REFIID riid, void **result)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface);
+
+ TRACE("(%p,%p,%p,%s,%p)\n", iface, pbc, left, debugstr_guid(riid), result);
+
+ if (!moniker->pObject)
+ return E_UNEXPECTED;
+
+ return IUnknown_QueryInterface(moniker->pObject, riid, result);
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_Reduce(IMoniker *iface, IBindCtx *pbc, DWORD howfar,
+ IMoniker **left, IMoniker **reduced)
+{
+ TRACE("(%p,%p,%d,%p,%p)\n", iface, pbc, howfar, left, reduced);
+
+ if (!reduced)
+ return E_POINTER;
+
+ ObjrefMonikerImpl_AddRef(iface);
+
+ *reduced = iface;
+
+ return MK_S_REDUCED_TO_SELF;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_ComposeWith(IMoniker *iface, IMoniker *right,
+ BOOL only_if_not_generic, IMoniker **result)
+{
+ DWORD order;
+
+ TRACE("(%p,%p,%d,%p)\n", iface, right, only_if_not_generic, result);
+
+ if (!result || !right)
+ return E_POINTER;
+
+ *result = NULL;
+
+ if (is_anti_moniker(right, &order))
+ return order > 1 ? create_anti_moniker(order - 1, result) : S_OK;
+
+ return only_if_not_generic ? MK_E_NEEDGENERIC : CreateGenericComposite(iface, right, result);
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_Enum(IMoniker *iface, BOOL forward, IEnumMoniker **enummoniker)
+{
+ TRACE("(%p,%d,%p)\n", iface, forward, enummoniker);
+
+ if (!enummoniker)
+ return E_POINTER;
+
+ *enummoniker = NULL;
+ return S_OK;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_IsEqual(IMoniker *iface, IMoniker *other)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface), *other_moniker;
+
+ TRACE("(%p,%p)\n", iface, other);
+
+ if (!other)
+ return E_INVALIDARG;
+
+ other_moniker = unsafe_objref_impl_from_IMoniker(other);
+ if (!other_moniker)
+ return S_FALSE;
+
+ return moniker->pObject == other_moniker->pObject ? S_OK : S_FALSE;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_Hash(IMoniker *iface, DWORD *hash)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface);
+
+ TRACE("(%p,%p)\n", iface, hash);
+
+ if (!hash)
+ return E_POINTER;
+
+ *hash = PtrToUlong(moniker->pObject);
+
+ return S_OK;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_IsRunning(IMoniker *iface, IBindCtx *pbc, IMoniker *left,
+ IMoniker *running)
+{
+ TRACE("(%p,%p,%p,%p)\n", iface, pbc, left, running);
+
+ return S_OK;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_GetTimeOfLastChange(IMoniker *iface,
+ IBindCtx *pbc, IMoniker *left, FILETIME *time)
+{
+ TRACE("(%p,%p,%p,%p)\n", iface, pbc, left, time);
+ return MK_E_UNAVAILABLE;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_Inverse(IMoniker *iface, IMoniker **moniker)
+{
+ TRACE("(%p,%p)\n", iface, moniker);
+
+ return CreateAntiMoniker(moniker);
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_CommonPrefixWith(IMoniker *iface, IMoniker *other, IMoniker **prefix)
+{
+ TRACE("(%p,%p,%p)\n", iface, other, prefix);
+
+ if (!prefix || !other)
+ return E_INVALIDARG;
+
+ *prefix = NULL;
+
+ if (ObjrefMonikerImpl_IsEqual(iface, other) == S_OK)
+ {
+ IMoniker_AddRef(iface);
+
+ *prefix = iface;
+
+ return MK_S_US;
+ }
+ else
+ return MK_E_NOPREFIX;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_RelativePathTo(IMoniker *iface, IMoniker *other, IMoniker **result)
+{
+ TRACE("(%p,%p,%p)\n", iface, other, result);
+
+ if (!result)
+ return E_INVALIDARG;
+
+ *result = NULL;
+
+ return other ? E_NOTIMPL : E_INVALIDARG;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_GetDisplayName(IMoniker *iface, IBindCtx *pbc,
+ IMoniker *left, LPOLESTR *name)
+{
+ FIXME("(%p,%p,%p,%p): stub\n", iface, pbc, left, name);
+
+ if (!name)
+ return E_POINTER;
+
+ *name = NULL;
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_ParseDisplayName(IMoniker *iface, IBindCtx *pbc,
+ IMoniker *left, LPOLESTR name, ULONG *eaten, IMoniker **out)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMoniker(iface);
+ HRESULT hr;
+ IParseDisplayName *pdn;
+
+ TRACE("(%p,%p,%p,%p,%p,%p)\n", iface, pbc, left, name, eaten, out);
+
+ if (left)
+ return MK_E_SYNTAX;
+
+ if (!moniker->pObject)
+ return E_UNEXPECTED;
+
+ hr = IUnknown_QueryInterface(moniker->pObject, &IID_IParseDisplayName, (void **)&pdn);
+ if (FAILED(hr))
+ return hr;
+
+ hr = IParseDisplayName_ParseDisplayName(pdn, pbc, name, eaten, out);
+ IParseDisplayName_Release(pdn);
+
+ return hr;
+}
+
+static HRESULT WINAPI ObjrefMonikerImpl_IsSystemMoniker(IMoniker *iface, DWORD *mksys)
+{
+ TRACE("(%p,%p)\n", iface, mksys);
+
+ if (!mksys)
+ return E_POINTER;
+
+ *mksys = MKSYS_OBJREFMONIKER;
+ return S_OK;
+}
+
+static const IMonikerVtbl VT_ObjrefMonikerImpl =
+{
+ ObjrefMonikerImpl_QueryInterface,
+ ObjrefMonikerImpl_AddRef,
+ ObjrefMonikerImpl_Release,
+ ObjrefMonikerImpl_GetClassID,
+ ObjrefMonikerImpl_IsDirty,
+ ObjrefMonikerImpl_Load,
+ ObjrefMonikerImpl_Save,
+ ObjrefMonikerImpl_GetSizeMax,
+ ObjrefMonikerImpl_BindToObject,
+ ObjrefMonikerImpl_BindToStorage,
+ ObjrefMonikerImpl_Reduce,
+ ObjrefMonikerImpl_ComposeWith,
+ ObjrefMonikerImpl_Enum,
+ ObjrefMonikerImpl_IsEqual,
+ ObjrefMonikerImpl_Hash,
+ ObjrefMonikerImpl_IsRunning,
+ ObjrefMonikerImpl_GetTimeOfLastChange,
+ ObjrefMonikerImpl_Inverse,
+ ObjrefMonikerImpl_CommonPrefixWith,
+ ObjrefMonikerImpl_RelativePathTo,
+ ObjrefMonikerImpl_GetDisplayName,
+ ObjrefMonikerImpl_ParseDisplayName,
+ ObjrefMonikerImpl_IsSystemMoniker
+};
+
+static ObjrefMonikerImpl *unsafe_objref_impl_from_IMoniker(IMoniker *iface)
+{
+ if (iface->lpVtbl != &VT_ObjrefMonikerImpl)
+ return NULL;
+ return CONTAINING_RECORD(iface, ObjrefMonikerImpl, IMoniker_iface);
+}
+
+static HRESULT WINAPI objref_moniker_marshal_QueryInterface(IMarshal *iface, REFIID riid, LPVOID *ppv)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMarshal(iface);
+
+ TRACE("%p, %s, %p.\n", iface, debugstr_guid(riid), ppv);
+
+ return IMoniker_QueryInterface(&moniker->IMoniker_iface, riid, ppv);
+}
+
+static ULONG WINAPI objref_moniker_marshal_AddRef(IMarshal *iface)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMarshal(iface);
+
+ TRACE("%p.\n",iface);
+
+ return IMoniker_AddRef(&moniker->IMoniker_iface);
+}
+
+static ULONG WINAPI objref_moniker_marshal_Release(IMarshal *iface)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMarshal(iface);
+
+ TRACE("%p.\n",iface);
+
+ return IMoniker_Release(&moniker->IMoniker_iface);
+}
+
+static HRESULT WINAPI objref_moniker_marshal_GetUnmarshalClass(IMarshal *iface, REFIID riid, void *pv,
+ DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, CLSID *clsid)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMarshal(iface);
+
+ TRACE("%p, %s, %p, %x, %p, %x, %p.\n", iface, debugstr_guid(riid), pv, dwDestContext, pvDestContext,
+ mshlflags, clsid);
+
+ return IMoniker_GetClassID(&moniker->IMoniker_iface, clsid);
+}
+
+static HRESULT WINAPI objref_moniker_marshal_GetMarshalSizeMax(IMarshal *iface, REFIID riid, void *pv,
+ DWORD dwDestContext, void *pvDestContext, DWORD mshlflags, DWORD *size)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMarshal(iface);
+
+ TRACE("%p, %s, %p, %d, %p, %#x, %p.\n", iface, debugstr_guid(riid), pv, dwDestContext, pvDestContext,
+ mshlflags, size);
+
+ return CoGetMarshalSizeMax(size, &IID_IUnknown, moniker->pObject, dwDestContext, pvDestContext, mshlflags);
+}
+
+static HRESULT WINAPI objref_moniker_marshal_MarshalInterface(IMarshal *iface, IStream *stream, REFIID riid,
+ void *pv, DWORD dwDestContext, void *pvDestContext, DWORD mshlflags)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMarshal(iface);
+
+ TRACE("%p, %s, %p, %x, %p, %x.\n", stream, debugstr_guid(riid), pv,
+ dwDestContext, pvDestContext, mshlflags);
+
+ return CoMarshalInterface(stream, &IID_IUnknown, moniker->pObject, dwDestContext,
+ pvDestContext, mshlflags);
+}
+
+static HRESULT WINAPI objref_moniker_marshal_UnmarshalInterface(IMarshal *iface, IStream *stream,
+ REFIID riid, void **ppv)
+{
+ ObjrefMonikerImpl *moniker = objref_impl_from_IMarshal(iface);
+ IUnknown *object;
+ HRESULT hr;
+
+ TRACE("%p, %p, %s, %p.\n", iface, stream, debugstr_guid(riid), ppv);
+
+ hr = CoUnmarshalInterface(stream, &IID_IUnknown, (void **)&object);
+ if (FAILED(hr))
+ {
+ ERR("Couldn't unmarshal moniker, hr = %#x.\n", hr);
+ return hr;
+ }
+
+ if (moniker->pObject)
+ IUnknown_Release(moniker->pObject);
+ moniker->pObject = object;
+
+ return IMoniker_QueryInterface(&moniker->IMoniker_iface, riid, ppv);
+}
+
+static HRESULT WINAPI objref_moniker_marshal_ReleaseMarshalData(IMarshal *iface, IStream *stream)
+{
+ TRACE("%p, %p.\n", iface, stream);
+
+ return S_OK;
+}
+
+static HRESULT WINAPI objref_moniker_marshal_DisconnectObject(IMarshal *iface, DWORD reserved)
+{
+ TRACE("%p, %#x.\n", iface, reserved);
+
+ return S_OK;
+}
+
+static const IMarshalVtbl objref_moniker_marshal_vtbl =
+{
+ objref_moniker_marshal_QueryInterface,
+ objref_moniker_marshal_AddRef,
+ objref_moniker_marshal_Release,
+ objref_moniker_marshal_GetUnmarshalClass,
+ objref_moniker_marshal_GetMarshalSizeMax,
+ objref_moniker_marshal_MarshalInterface,
+ objref_moniker_marshal_UnmarshalInterface,
+ objref_moniker_marshal_ReleaseMarshalData,
+ objref_moniker_marshal_DisconnectObject
+};
+
+/***********************************************************************
+ * CreateObjrefMoniker (OLE32.@)
+ */
+HRESULT WINAPI CreateObjrefMoniker(IUnknown *obj, IMoniker **ret)
+{
+ ObjrefMonikerImpl *moniker;
+
+ TRACE("(%p,%p)\n", obj, ret);
+
+ if (!ret)
+ return E_INVALIDARG;
+
+ moniker = heap_alloc(sizeof(*moniker));
+ if (!moniker)
+ {
+ *ret = NULL;
+ return E_OUTOFMEMORY;
+ }
+
+ moniker->IMoniker_iface.lpVtbl = &VT_ObjrefMonikerImpl;
+ moniker->IMarshal_iface.lpVtbl = &objref_moniker_marshal_vtbl;
+ moniker->refcount = 1;
+ moniker->pObject = obj;
+ if (moniker->pObject)
+ IUnknown_AddRef(moniker->pObject);
+
+ *ret = &moniker->IMoniker_iface;
+
+ return S_OK;
+}
+
+HRESULT WINAPI ObjrefMoniker_CreateInstance(IClassFactory *iface, IUnknown *unk, REFIID iid, void **obj)
+{
+ IMoniker *moniker;
+ HRESULT hr;
+
+ TRACE("(%p,%s,%p)\n", unk, debugstr_guid(iid), obj);
+
+ *obj = NULL;
+
+ if (unk)
+ return CLASS_E_NOAGGREGATION;
+
+ hr = CreateObjrefMoniker(NULL, &moniker);
+ if (FAILED(hr))
+ return hr;
+
+ hr = IMoniker_QueryInterface(moniker, iid, obj);
+ IMoniker_Release(moniker);
+
+ return hr;
+}
diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c
index 8d3276651bc..53aa583c1cb 100644
--- a/dlls/ole32/tests/moniker.c
+++ b/dlls/ole32/tests/moniker.c
@@ -82,9 +82,10 @@ static const CLSID CLSID_TestMoniker =
DEFINE_OLEGUID(CLSID_FileMoniker, 0x303, 0, 0);
DEFINE_OLEGUID(CLSID_ItemMoniker, 0x304, 0, 0);
DEFINE_OLEGUID(CLSID_AntiMoniker, 0x305, 0, 0);
+DEFINE_OLEGUID(CLSID_PointerMoniker, 0x306, 0, 0);
DEFINE_OLEGUID(CLSID_CompositeMoniker, 0x309, 0, 0);
DEFINE_OLEGUID(CLSID_ClassMoniker, 0x31a, 0, 0);
-DEFINE_OLEGUID(CLSID_PointerMoniker, 0x306, 0, 0);
+DEFINE_OLEGUID(CLSID_ObjrefMoniker, 0x327, 0, 0);
#define TEST_MONIKER_TYPE_TODO(m,t) _test_moniker_type(m, t, TRUE, __LINE__)
#define TEST_MONIKER_TYPE(m,t) _test_moniker_type(m, t, FALSE, __LINE__)
@@ -3861,7 +3862,7 @@ todo_wine
hr = IMarshal_GetUnmarshalClass(marshal, NULL, NULL, 0, NULL, 0, &clsid);
ok(hr == S_OK, "Failed to get class, hr %#x.\n", hr);
- ok(IsEqualGUID(&clsid, &CLSID_PointerMoniker), "Unexpected class.\n");
+ ok(IsEqualGUID(&clsid, &CLSID_PointerMoniker), "Unexpected class %s.\n", wine_dbgstr_guid(&clsid));
hr = IMarshal_GetMarshalSizeMax(marshal, &IID_IMoniker, NULL, CLSCTX_INPROC, NULL, 0, &size);
ok(hr == S_OK, "Failed to get marshal size, hr %#x.\n", hr);
@@ -4076,6 +4077,221 @@ todo_wine
IMoniker_Release(moniker);
}
+static void test_objref_moniker(void)
+{
+ IMoniker *moniker, *moniker2, *prefix, *inverse, *anti;
+ struct test_factory factory;
+ IEnumMoniker *enummoniker;
+ DWORD hash, size;
+ HRESULT hr;
+ IBindCtx *bindctx;
+ FILETIME filetime;
+ IUnknown *unknown;
+ IStream *stream;
+ IROTData *rotdata;
+ LPOLESTR display_name;
+ IMarshal *marshal;
+ LARGE_INTEGER pos;
+ CLSID clsid;
+
+ test_factory_init(&factory);
+
+ hr = CreateObjrefMoniker((IUnknown *)&factory.IClassFactory_iface, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+
+ hr = CreateObjrefMoniker((IUnknown *)&factory.IClassFactory_iface, &moniker);
+ ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+ hr = IMoniker_QueryInterface(moniker, &IID_IMoniker, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+
+ hr = IMoniker_QueryInterface(moniker, &CLSID_PointerMoniker, (void **)&unknown);
+ ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n");
+ IUnknown_Release(unknown);
+
+ hr = IMoniker_QueryInterface(moniker, &CLSID_ObjrefMoniker, (void **)&unknown);
+ ok(unknown == (IUnknown *)moniker, "Unexpected interface.\n");
+ IUnknown_Release(unknown);
+
+ hr = IMoniker_QueryInterface(moniker, &IID_IMarshal, (void **)&marshal);
+ ok(hr == S_OK, "Failed to get interface, hr %#x.\n", hr);
+
+ hr = IMarshal_GetUnmarshalClass(marshal, NULL, NULL, 0, NULL, 0, &clsid);
+ ok(hr == S_OK, "Failed to get class, hr %#x.\n", hr);
+ ok(IsEqualGUID(&clsid, &CLSID_ObjrefMoniker), "Unexpected class %s.\n", wine_dbgstr_guid(&clsid));
+
+ hr = IMarshal_GetMarshalSizeMax(marshal, &IID_IMoniker, NULL, CLSCTX_INPROC, NULL, 0, &size);
+ ok(hr == S_OK, "Failed to get marshal size, hr %#x.\n", hr);
+ ok(size > 0, "Unexpected size %d.\n", size);
+
+ hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
+ ok(hr == S_OK, "Failed to create a stream, hr %#x.\n", hr);
+
+ hr = CoMarshalInterface(stream, &IID_IMoniker, (IUnknown *)moniker, MSHCTX_INPROC, NULL, MSHLFLAGS_NORMAL);
+ ok(hr == S_OK, "Failed to marshal moniker, hr %#x.\n", hr);
+
+ pos.QuadPart = 0;
+ IStream_Seek(stream, pos, STREAM_SEEK_SET, NULL);
+ hr = CoUnmarshalInterface(stream, &IID_IMoniker, (void **)&moniker2);
+ ok(hr == S_OK, "Failed to unmarshal, hr %#x.\n", hr);
+ hr = IMoniker_IsEqual(moniker, moniker2);
+ ok(hr == S_OK, "Expected equal moniker, hr %#x.\n", hr);
+ IMoniker_Release(moniker2);
+
+ IStream_Release(stream);
+
+ IMarshal_Release(marshal);
+
+ ok(factory.refcount > 1, "Unexpected factory refcount %u.\n", factory.refcount);
+
+ /* Display Name */
+
+ hr = CreateBindCtx(0, &bindctx);
+ ok(hr == S_OK, "CreateBindCtx failed: 0x%08x\n", hr);
+
+ hr = IMoniker_GetDisplayName(moniker, bindctx, NULL, &display_name);
+todo_wine
+ ok(hr == S_OK, "IMoniker_GetDisplayName failed: 0x%08x\n", hr);
+
+ IBindCtx_Release(bindctx);
+
+ hr = IMoniker_IsDirty(moniker);
+ ok(hr == S_FALSE, "IMoniker_IsDirty should return S_FALSE, not 0x%08x\n", hr);
+
+ /* IROTData::GetComparisonData test */
+
+ hr = IMoniker_QueryInterface(moniker, &IID_IROTData, (void **)&rotdata);
+ ok(hr == E_NOINTERFACE, "IMoniker_QueryInterface(IID_IROTData) should have returned E_NOINTERFACE instead of 0x%08x\n", hr);
+
+ /* Saving */
+
+ hr = CreateStreamOnHGlobal(NULL, TRUE, &stream);
+ ok(hr == S_OK, "CreateStreamOnHGlobal failed: 0x%08x\n", hr);
+
+ hr = IMoniker_Save(moniker, stream, TRUE);
+todo_wine
+ ok(hr == S_OK, "IMoniker_Save failed: 0x%08x\n", hr);
+
+ IStream_Release(stream);
+
+ /* Hashing */
+ hr = IMoniker_Hash(moniker, &hash);
+ ok(hr == S_OK, "IMoniker_Hash failed: 0x%08x\n", hr);
+ ok(hash == PtrToUlong(&factory.IClassFactory_iface), "Unexpected hash value %#x.\n", hash);
+
+ /* IsSystemMoniker test */
+ TEST_MONIKER_TYPE(moniker, MKSYS_OBJREFMONIKER);
+
+ hr = IMoniker_Inverse(moniker, &inverse);
+ ok(hr == S_OK, "Failed to get inverse, hr %#x.\n", hr);
+ TEST_MONIKER_TYPE(inverse, MKSYS_ANTIMONIKER);
+ IMoniker_Release(inverse);
+
+ hr = CreateBindCtx(0, &bindctx);
+ ok(hr == S_OK, "CreateBindCtx failed: 0x%08x\n", hr);
+
+ /* IsRunning test */
+ hr = IMoniker_IsRunning(moniker, bindctx, NULL, NULL);
+ ok(hr == S_OK, "IMoniker_IsRunning should return S_OK, not 0x%08x\n", hr);
+
+ hr = IMoniker_GetTimeOfLastChange(moniker, bindctx, NULL, &filetime);
+ ok(hr == MK_E_UNAVAILABLE, "IMoniker_GetTimeOfLastChange should return MK_E_UNAVAILABLE, not 0x%08x\n", hr);
+
+ hr = IMoniker_BindToObject(moniker, bindctx, NULL, &IID_IUnknown, (void **)&unknown);
+ ok(hr == S_OK, "IMoniker_BindToObject failed: 0x%08x\n", hr);
+ IUnknown_Release(unknown);
+
+ hr = IMoniker_BindToStorage(moniker, bindctx, NULL, &IID_IUnknown, (void **)&unknown);
+ ok(hr == S_OK, "IMoniker_BindToObject failed: 0x%08x\n", hr);
+ IUnknown_Release(unknown);
+
+ IMoniker_Release(moniker);
+
+todo_wine
+ ok(factory.refcount > 1, "Unexpected factory refcount %u.\n", factory.refcount);
+
+ hr = CreateObjrefMoniker(NULL, &moniker);
+ ok(hr == S_OK, "CreateObjrefMoniker failed, hr %#x.\n", hr);
+
+ hr = IMoniker_BindToObject(moniker, bindctx, NULL, &IID_IUnknown, (void **)&unknown);
+ ok(hr == E_UNEXPECTED, "IMoniker_BindToObject should have returned E_UNEXPECTED instead of 0x%08x\n", hr);
+
+ hr = IMoniker_BindToStorage(moniker, bindctx, NULL, &IID_IUnknown, (void **)&unknown);
+ ok(hr == E_UNEXPECTED, "IMoniker_BindToStorage should have returned E_UNEXPECTED instead of 0x%08x\n", hr);
+
+ IBindCtx_Release(bindctx);
+
+ /* Enum() */
+ enummoniker = (void *)0xdeadbeef;
+ hr = IMoniker_Enum(moniker, TRUE, &enummoniker);
+ ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(enummoniker == NULL, "got %p\n", enummoniker);
+
+ enummoniker = (void *)0xdeadbeef;
+ hr = IMoniker_Enum(moniker, FALSE, &enummoniker);
+ ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+ ok(enummoniker == NULL, "got %p\n", enummoniker);
+
+ IMoniker_Release(moniker);
+
+ /* CommonPrefixWith() */
+ hr = CreateObjrefMoniker((IUnknown *)&factory.IClassFactory_iface, &moniker);
+ ok(hr == S_OK, "CreateObjrefMoniker failed: hr %#x.\n", hr);
+
+ hr = CreateObjrefMoniker((IUnknown *)&factory.IClassFactory_iface, &moniker2);
+ ok(hr == S_OK, "CreateObjrefMoniker failed: hr %#x.\n", hr);
+
+ hr = IMoniker_IsEqual(moniker, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+
+ hr = IMoniker_IsEqual(moniker, moniker2);
+ ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+ hr = IMoniker_CommonPrefixWith(moniker, moniker2, NULL);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+
+ hr = IMoniker_CommonPrefixWith(moniker, NULL, &prefix);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+
+ hr = IMoniker_CommonPrefixWith(moniker, moniker2, &prefix);
+ ok(hr == MK_S_US, "Unexpected hr %#x.\n", hr);
+ ok(prefix == moniker, "Unexpected pointer.\n");
+ IMoniker_Release(prefix);
+
+ IMoniker_Release(moniker2);
+
+ hr = CreateObjrefMoniker((IUnknown *)moniker, &moniker2);
+ ok(hr == S_OK, "Failed to create moniker, hr %#x.\n", hr);
+
+ hr = IMoniker_IsEqual(moniker, moniker2);
+ ok(hr == S_FALSE, "Unexpected hr %#x.\n", hr);
+
+ hr = IMoniker_CommonPrefixWith(moniker, moniker2, &prefix);
+ ok(hr == MK_E_NOPREFIX, "Unexpected hr %#x.\n", hr);
+
+ IMoniker_Release(moniker2);
+
+ /* ComposeWith() */
+
+ /* P + A -> () */
+ anti = create_antimoniker(1);
+ hr = IMoniker_ComposeWith(moniker, anti, TRUE, &moniker2);
+ ok(hr == S_OK, "Failed to compose, hr %#x.\n", hr);
+ ok(!moniker2, "Unexpected pointer.\n");
+ IMoniker_Release(anti);
+
+ /* P + A2 -> A */
+ anti = create_antimoniker(2);
+ hr = IMoniker_ComposeWith(moniker, anti, TRUE, &moniker2);
+ ok(hr == S_OK, "Failed to compose, hr %#x.\n", hr);
+ TEST_MONIKER_TYPE(moniker2, MKSYS_ANTIMONIKER);
+ IMoniker_Release(moniker2);
+
+ IMoniker_Release(anti);
+
+ IMoniker_Release(moniker);
+}
+
static void test_bind_context(void)
{
IRunningObjectTable *rot, *rot2;
@@ -4385,6 +4601,7 @@ START_TEST(moniker)
test_anti_moniker();
test_generic_composite_moniker();
test_pointer_moniker();
+ test_objref_moniker();
test_save_load_filemoniker();
test_MonikerCommonPrefixWith();
diff --git a/include/objidl.idl b/include/objidl.idl
index 7576a686aeb..cd11729b292 100644
--- a/include/objidl.idl
+++ b/include/objidl.idl
@@ -330,7 +330,10 @@ interface IMoniker : IPersistStream
MKSYS_ITEMMONIKER = 4,
MKSYS_POINTERMONIKER = 5,
/* MKSYS_URLMONIKER = 6, */ /* defined in urlmon.idl */
- MKSYS_CLASSMONIKER = 7
+ MKSYS_CLASSMONIKER = 7,
+ MKSYS_OBJREFMONIKER = 8,
+ MKSYS_SESSIONMONIKER = 9,
+ MKSYS_LUAMONIKER = 10
} MKSYS;
typedef [v1_enum] enum tagMKREDUCE {
--
2.31.1
2
2
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
tools/make_unicode | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
2
1
Hi,
I'm trying to run Diablo II: Resurrected for 3 days now and it keeps
failing with the:
"Failed to initialize graphics device. Please ensure your PC meets the
minimum system requirements and your drivers are up to date."
I use openSUSE 15.3 with:
1. Wine updated to the 6.19
2. vkd3d 1.2 (installed as Wine dependency)
3. Mesa updated to the 21.2.3
I suspect that Direct3D 12 simply doesn't work for some reason. I
decided to verify that using vkd3d tests. I downloaded vkd3d 1.2
sources and exectued:
./configure
make check
That gave me a failing tests/d3d12 and a lot of fixme-s & some d3d12
debugging messages in the test-suite.log .
My laptop is AMD Ryzen 5 PRO 2500U (so integrated GPU).
> glxinfo | grep --max-count=4 OpenGL
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon(TM) Vega 8 Graphics (RAVEN, DRM 3.39.0, 5.3.18-59.24-default, LLVM 11.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.2.3
OpenGL core profile shading language version string: 4.60
I would like to kindly ask for your help and some suggestion on what
may I be missing in my system that breaks vkd3d.
=================================
vkd3d 1.2: ./test-suite.log
=================================
# TOTAL: 5
# PASS: 4
# SKIP: 0
# XFAIL: 0
# FAIL: 1
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: tests/d3d12
=================
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_device_CheckFeatureSupport: Multi-adapter not supported.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x42.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x43.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x44.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x45.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x55.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x56.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x59.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x64.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x65.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x66.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x67.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x68.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x69.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x6a.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x6b.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x6c.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x6d.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x6e.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x6f.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x70.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x71.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x72.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0x73.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_device_CheckFeatureSupport: Unhandled format 0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_device_get_vkd3d_queue: Unhandled command list type 0x1.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_device_get_vkd3d_queue: Unhandled command list type 0x1.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:blend_attachment_from_d3d12: Ignoring LogicOpEnable 0x1.
fixme:d3d12_pipeline_state_init_graphics: Format 0x1c is not depth/stencil format.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
d3d12:579: Driver name: radv, driver info: Mesa 21.2.3.
d3d12:1043: Node count: 1.
d3d12:1111: UMA 0, cache coherent UMA 0, tile based renderer 0.
d3d12:1135: Max supported feature level 0xb100.
d3d12:1227:format 0x43: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x43: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x44: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x44: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x45: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x45: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x55: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x55: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x56: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x56: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x59: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x59: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x64: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x64: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x65: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x65: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x66: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x66: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x67: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x67: Todo: Got plane count 0, expected 2.
d3d12:1227:format 0x68: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x68: Todo: Got plane count 0, expected 2.
d3d12:1227:format 0x69: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x69: Todo: Got plane count 0, expected 2.
d3d12:1227:format 0x6a: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x6a: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x6b: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x6b: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x6c: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x6c: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x6d: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x6d: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x6e: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x6e: Todo: Got plane count 0, expected 2.
d3d12:1227:format 0x6f: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x6f: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x70: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x70: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x71: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x71: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x72: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x72: Todo: Got plane count 0, expected 1.
d3d12:1227:format 0x73: Todo: Failed to get format info, hr 0x80070057.
d3d12:1230:format 0x73: Todo: Got plane count 0, expected 1.
d3d12:1240: GPU virtual address bits per resource: 40.
d3d12:1242: GPU virtual address bits per process: 40.
d3d12:1293: Todo: Got unexpected hr 0x80070057.
d3d12:1294: Todo: Got unexpected support1 0.
d3d12:1866: Todo: Got unexpected hr 0.
d3d12:2432: Test skipped: Tiled resources are not supported.
d3d12:2645: Sampler descriptor handle increment size: 32.
d3d12:2672: MinMaxFiltering: 0.
d3d12:2713: CBV/SRV/UAV descriptor size: 32.
d3d12:2848: Todo: Got unexpected hr 0.
d3d12:2883: Todo: Got unexpected hr 0.
d3d12:4476: DSV descriptor handle increment size: 48.
d3d12:4610: RTV descriptor handle increment size: 48.
d3d12:4983:Test 20: Todo: Got 0x0000ffff, expected 0x00000000 at (0, 0, 0).
d3d12:4983:Test 28: Todo: Got 0x000000ff, expected 0x00000000 at (0, 0, 0).
d3d12:5257:Dim 0, Test 13: Todo: At layer 0, (0,0,0), expected 0x2345, got 0xffff.
d3d12:5257:Dim 0, Test 17: Todo: At layer 0, (0,0,0), expected 0x23, got 0xff.
d3d12:5257:Dim 1, Test 13: Todo: At lafixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_rtv_desc_create_rtv: NULL resource RTV not implemented.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_resource_Map: Not implemented for textures.
fixme:d3d12_resource_Map: Not implemented for textures.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_desc_create_srv: Ignoring plane slice 1.
fixme:d3d12_desc_create_srv: Ignoring plane slice 1.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_dsv_desc_create_dsv: Ignoring flags 0x1.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_desc_create_srv: Ignoring plane slice 1.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_dxbc_compiler_emit_dcl_resource_structured: Unhandled UAV flags 0x100.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:vkd3d_dxbc_compiler_emit_dcl_resource_structured: Unhandled UAV flags 0x100.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_dxbc_compiler_emit_dcl_resource_structured: Unhandled UAV flags 0x100.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_command_list_ResolveQueryData: D3D12 guarantees binary occlusion queries result in only 0 and 1.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 3.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 2.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 4.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 2.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 3.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 4.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 2.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:vkd3d_dxbc_compiler_check_index_range: Unhandled index range write mask 0x1 (0xf).
fixme:vkd3d_dxbc_compiler_emit_dcl_index_range: Ignoring dcl_index_range 0x6 3.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_set_view_swizzle_for_format: Alpha swizzle is not supported.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_command_list_check_index_buffer_strip_cut_value: Strip cut value 0xffff is not supported with index buffer format 0x2a.
fixme:d3d12_command_list_check_index_buffer_strip_cut_value: Strip cut value 0xffff is not supported with index buffer format 0x2a.
fixme:d3d12_command_list_check_index_buffer_strip_cut_value: Strip cut value 0xffffffff is not supported with index buffer format 0x39.
fixme:d3d12_command_list_check_index_buffer_strip_cut_value: Strip cut value 0xffffffff is not supported with index buffer format 0x39.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_command_list_SetPredication: Predication doesn't support clear and copy commands, and predication values are treated as 32-bit values.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xb.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:shader_sm4_read_instruction_modifier: Unhandled resource type 0xc.
fixme:shader_sm4_read_instruction_modifier: Unhandled data type 0x6.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:d3d12_command_list_WriteBufferImmediate: iface 0x4631ef0, count 2, parameters 0x7fffb04ec600, modes (nil) stub!
fixme:d3d12_command_list_WriteBufferImmediate: iface 0x4631ef0, count 2, parameters 0x7fffb04ec600, modes 0x7fffb04ec5f8 stub!
fixme:d3d12_command_list_WriteBufferImmediate: iface 0x4631ef0, count 2, parameters 0x7fffb04ec600, modes 0x7fffb04ec5f8 stub!
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:vkd3d_dxbc_compiler_emit_dcl_resource_structured: Unhandled UAV flags 0x100.
fixme:vkd3d_dxbc_compiler_emit_dcl_resource_structured: Unhandled UAV flags 0x100.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
fixme:debug_vk_memory_property_flags: Unrecognized flag(s) 0xc0.
yer 0, (0,0,0), expected 0x2345, got 0xffff.
d3d12:5257:Dim 1, Test 17: Todo: At layer 0, (0,0,0), expected 0x23, got 0xff.
d3d12:5257:Dim 2, Test 13: Todo: At layer 0, (0,0,0), expected 0x2345, got 0xffff.
d3d12:5257:Dim 2, Test 17: Todo: At layer 0, (0,0,0), expected 0x23, got 0xff.
d3d12:6956: Fixed bug: Got 0x000001f4, expected 0x000001f4 at (1, 1, 1).
d3d12:7113: Todo: Got unexpected hr 0.
d3d12:7190: Todo: Got unexpected hr 0x80070057.
d3d12:7452: Test skipped: Bundles are not implemented yet.
d3d12:9967:31:if_return: Fixed bug: Got {1.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00}, expected {1.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00} at (32, 32).
d3d12:9967:34:if_return: Fixed bug: Got {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 0.00000000e+00}, expected {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 0.00000000e+00} at (32, 32).
d3d12:9967:37:if_return: Fixed bug: Got {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 0.00000000e+00}, expected {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 0.00000000e+00} at (32, 32).
d3d12:9967:41:if_return: Fixed bug: Got {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00}, expected {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00} at (32, 32).
d3d12:9967:48:if_return: Fixed bug: Got {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00}, expected {1.00000000e+00, 1.00000000e+00, 1.00000000e+00, 1.00000000e+00} at (32, 32).
d3d12:16235: Todo: Got unexpected value 0xff0000ff.
d3d12:22297: Todo succeeded: Test 0: Got 0 (0), expected 0 (0) for 'atomic_imax' with inputs (1, 0), (-1), 0 (0).
d3d12:22297: Todo succeeded: Test 0: Got 0xffffffff (-1), expected 0xffffffff (-1) for 'atomic_imin' with inputs (1, 0), (-1), 0 (0).
d3d12:22317: Todo succeeded: Test 0: Got 0 (0), expected 0 (0) for 'imm_atomic_imax' with inputs (1, 0), (-1), 0 (0).
d3d12:22317: Todo succeeded: Test 0: Got 0xffffffff (-1), expected 0xffffffff (-1) for 'imm_atomic_imin' with inputs (1, 0), (-1), 0 (0).
d3d12:23209: Todo: Got unexpected result 0.
d3d12:29617: Size 4096, alignment 4096.
d3d12:30894:Test 8: Todo: Got 0xff00ff00, expected 0xffffffff at (16, 0, 0).
d3d12:30888:Test 10: Todo: Got 0xffffffff, expected 0xff00ff00 at (0, 0, 0).
d3d12:31443: Test skipped: Wait() is not implemented yet.
d3d12:32059: Bug: Got 0xffffffff, expected 0xffffffff at (32, 32, 1).
d3d12:32111: Todo: Got 0xff00ff00, expected 0xffffffff at (0, 0, 0).
d3d12:32228: Todo: Got 0x28384858, expected 0x39495969 at (0, 0, 0).
d3d12:32294: Bug: Got 0x39495969, expected 0x39495969 at (1, 1, 1).
d3d12:32791: Todo: Got unexpected value 0xdeadbeef, expected 0x1020304.
d3d12:32793: Todo: Got unexpected value 0xf00baa, expected 0xc0d0e0f.
d3d12:32810: Todo: Got unexpected value 0xdeadbeef, expected 0x2030405.
d3d12:32812: Todo: Got unexpected value 0xf00baa, expected 0xb0c0d0e.
d3d12:32819: Todo: Got unexpected hr 0.
d3d12: 2452893 tests executed (4 failures, 3 skipped, 70 todo, 8 bugs).
FAIL tests/d3d12 (exit status: 1)
2
4
Oct. 13, 2021
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/user32/tests/win.c | 29 ++++++++++++++++----
dlls/user32/win.c | 59 ++++++++++++++++++++++++++++++-----------
2 files changed, 67 insertions(+), 21 deletions(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index 6b13d93be14..2679ea0813f 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -7923,17 +7923,36 @@ static void test_gettext(void)
if (0)
{
r = SendMessageA( hwnd, WM_GETTEXT, 0x10, 0x1000);
- ok( r == 0, "settext should return zero\n");
+ ok(r == 0, "WM_GETTEXT should return zero (%ld)\n", r);
r = SendMessageA( hwnd, WM_GETTEXT, 0x10000, 0);
- ok( r == 0, "settext should return zero (%ld)\n", r);
+ ok(r == 0, "WM_GETTEXT should return zero (%ld)\n", r);
r = SendMessageA( hwnd, WM_GETTEXT, 0xff000000, 0x1000);
- ok( r == 0, "settext should return zero (%ld)\n", r);
+ ok(r == 0, "WM_GETTEXT should return zero (%ld)\n", r);
r = SendMessageA( hwnd, WM_GETTEXT, 0x1000, 0xff000000);
- ok( r == 0, "settext should return zero (%ld)\n", r);
- }
+ ok(r == 0, "WM_GETTEXT should return zero (%ld)\n", r);
+ }
+
+ /* GetWindowText doesn't crash */
+ r = GetWindowTextA(hwnd, (LPSTR)0x10, 0x1000);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
+ r = GetWindowTextA(hwnd, (LPSTR)0x10000, 0);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
+ r = GetWindowTextA(hwnd, (LPSTR)0xff000000, 0x1000);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
+ r = GetWindowTextA(hwnd, (LPSTR)0x1000, 0xff000000);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
+
+ r = GetWindowTextW(hwnd, (LPWSTR)0x10, 0x1000);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
+ r = GetWindowTextW(hwnd, (LPWSTR)0x10000, 0);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
+ r = GetWindowTextW(hwnd, (LPWSTR)0xff000000, 0x1000);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
+ r = GetWindowTextW(hwnd, (LPWSTR)0x1000, 0xff000000);
+ ok(r == 0, "GetWindowText should return zero (%ld)\n", r);
DestroyWindow(hwnd);
}
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index 5e89f4c2c97..e57f291be35 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -35,6 +35,7 @@
#include "controls.h"
#include "winerror.h"
#include "wine/gdi_driver.h"
+#include "wine/exception.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(win);
@@ -3001,22 +3002,34 @@ LONG WINAPI DECLSPEC_HOTPATCH SetWindowLongW(
INT WINAPI GetWindowTextA( HWND hwnd, LPSTR lpString, INT nMaxCount )
{
WCHAR *buffer;
+ int ret = 0;
if (!lpString || nMaxCount <= 0) return 0;
- if (WIN_IsCurrentProcess( hwnd ))
+ __TRY
{
- lpString[0] = 0;
- return (INT)SendMessageA( hwnd, WM_GETTEXT, nMaxCount, (LPARAM)lpString );
+ if (WIN_IsCurrentProcess( hwnd ))
+ {
+ lpString[0] = 0;
+ ret = (INT)SendMessageA( hwnd, WM_GETTEXT, nMaxCount, (LPARAM)lpString );
+ }
+ else if ((buffer = HeapAlloc( GetProcessHeap(), 0, nMaxCount * sizeof(WCHAR) )))
+ {
+ /* when window belongs to other process, don't send a message */
+ get_server_window_text( hwnd, buffer, nMaxCount );
+ if (!WideCharToMultiByte( CP_ACP, 0, buffer, -1, lpString, nMaxCount, NULL, NULL ))
+ lpString[nMaxCount-1] = 0;
+ HeapFree( GetProcessHeap(), 0, buffer );
+ ret = strlen(lpString);
+ }
+ }
+ __EXCEPT_ALL
+ {
+ ret = 0;
}
+ __ENDTRY
- /* when window belongs to other process, don't send a message */
- if (!(buffer = HeapAlloc( GetProcessHeap(), 0, nMaxCount * sizeof(WCHAR) ))) return 0;
- get_server_window_text( hwnd, buffer, nMaxCount );
- if (!WideCharToMultiByte( CP_ACP, 0, buffer, -1, lpString, nMaxCount, NULL, NULL ))
- lpString[nMaxCount-1] = 0;
- HeapFree( GetProcessHeap(), 0, buffer );
- return strlen(lpString);
+ return ret;
}
@@ -3049,17 +3062,31 @@ INT WINAPI InternalGetWindowText(HWND hwnd,LPWSTR lpString,INT nMaxCount )
*/
INT WINAPI GetWindowTextW( HWND hwnd, LPWSTR lpString, INT nMaxCount )
{
+ int ret;
+
if (!lpString || nMaxCount <= 0) return 0;
- if (WIN_IsCurrentProcess( hwnd ))
+ __TRY
{
- lpString[0] = 0;
- return (INT)SendMessageW( hwnd, WM_GETTEXT, nMaxCount, (LPARAM)lpString );
+ if (WIN_IsCurrentProcess( hwnd ))
+ {
+ lpString[0] = 0;
+ ret = (INT)SendMessageW( hwnd, WM_GETTEXT, nMaxCount, (LPARAM)lpString );
+ }
+ else
+ {
+ /* when window belongs to other process, don't send a message */
+ get_server_window_text( hwnd, lpString, nMaxCount );
+ ret = lstrlenW(lpString);
+ }
}
+ __EXCEPT_ALL
+ {
+ ret = 0;
+ }
+ __ENDTRY
- /* when window belongs to other process, don't send a message */
- get_server_window_text( hwnd, lpString, nMaxCount );
- return lstrlenW(lpString);
+ return ret;
}
--
2.31.1
4
8
[PATCH 6/8] win32u: Move NtUserOpenInputDesktop implementation from user32.
by Jacek Caban Oct. 13, 2021
by Jacek Caban Oct. 13, 2021
Oct. 13, 2021
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
dlls/user32/user32.spec | 2 +-
dlls/user32/winstation.c | 25 -------------------------
dlls/win32u/syscall.c | 1 +
dlls/win32u/win32u.spec | 2 +-
dlls/win32u/winstation.c | 28 ++++++++++++++++++++++++++++
dlls/wow64win/syscall.h | 1 +
dlls/wow64win/user.c | 9 +++++++++
include/ntuser.h | 1 +
8 files changed, 42 insertions(+), 27 deletions(-)
2
1
[PATCH 5/8] win32u: Move NtUserSetThreadDesktop implementation from user32.
by Jacek Caban Oct. 13, 2021
by Jacek Caban Oct. 13, 2021
Oct. 13, 2021
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
dlls/user32/user_main.c | 2 +-
dlls/user32/winstation.c | 8 +-------
dlls/win32u/syscall.c | 1 +
dlls/win32u/win32u.spec | 2 +-
dlls/win32u/winstation.c | 18 ++++++++++++++++++
dlls/wow64win/syscall.h | 3 ++-
dlls/wow64win/user.c | 7 +++++++
include/ntuser.h | 1 +
8 files changed, 32 insertions(+), 10 deletions(-)
2
1
[PATCH v4] winex11.drv: Add video adapter description to the registry.
by Dmitry Timoshkov Oct. 13, 2021
by Dmitry Timoshkov Oct. 13, 2021
Oct. 13, 2021
v2: Without setting "HardwareInformation.MemorySize" key.
v3: strlen() -> sizeof().
v4: Perform string size calculation ealier.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/winex11.drv/display.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/display.c b/dlls/winex11.drv/display.c
index c8c216c8302..65336888c13 100644
--- a/dlls/winex11.drv/display.c
+++ b/dlls/winex11.drv/display.c
@@ -463,6 +463,11 @@ static BOOL link_device(const WCHAR *instance, const GUID *guid)
static BOOL X11DRV_InitGpu(HDEVINFO devinfo, const struct x11drv_gpu *gpu, INT gpu_index, WCHAR *guid_string,
WCHAR *driver, LUID *gpu_luid)
{
+ static const WCHAR adapter_stringW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','A','d','a','p','t','e','r','S','t','r','i','n','g',0};
+ static const WCHAR bios_stringW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','B','i','o','s','S','t','r','i','n','g',0};
+ static const WCHAR chip_typeW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','C','h','i','p','T','y','p','e',0};
+ static const WCHAR dac_typeW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','D','a','c','T','y','p','e',0};
+ static const WCHAR ramdacW[] = {'I','n','t','e','r','g','r','a','t','e','d',' ','R','A','M','D','A','C',0};
static const BOOL present = TRUE;
SP_DEVINFO_DATA device_data = {sizeof(device_data)};
WCHAR instanceW[MAX_PATH];
@@ -538,9 +543,9 @@ static BOOL X11DRV_InitGpu(HDEVINFO devinfo, const struct x11drv_gpu *gpu, INT g
* This is where HKLM\System\CurrentControlSet\Control\Video\{GPU GUID}\{Adapter Index} links to */
hkey = SetupDiCreateDevRegKeyW(devinfo, &device_data, DICS_FLAG_GLOBAL, 0, DIREG_DRV, NULL, NULL);
+ size = (strlenW(gpu->name) + 1) * sizeof(WCHAR);
/* Write DriverDesc value */
- if (RegSetValueExW(hkey, driver_descW, 0, REG_SZ, (const BYTE *)gpu->name,
- (strlenW(gpu->name) + 1) * sizeof(WCHAR)))
+ if (RegSetValueExW(hkey, driver_descW, 0, REG_SZ, (const BYTE *)gpu->name, size))
goto done;
/* Write DriverDateData value, using current time as driver date, needed by Evoland */
GetSystemTimeAsFileTime(&filetime);
@@ -551,6 +556,14 @@ static BOOL X11DRV_InitGpu(HDEVINFO devinfo, const struct x11drv_gpu *gpu, INT g
sprintfW(bufferW, driver_date_fmtW, systemtime.wMonth, systemtime.wDay, systemtime.wYear);
if (RegSetValueExW(hkey, driver_dateW, 0, REG_SZ, (BYTE *)bufferW, (strlenW(bufferW) + 1) * sizeof(WCHAR)))
goto done;
+ if (RegSetValueExW(hkey, adapter_stringW, 0, REG_SZ, (const BYTE *)gpu->name, size))
+ goto done;
+ if (RegSetValueExW(hkey, bios_stringW, 0, REG_SZ, (const BYTE *)gpu->name, size))
+ goto done;
+ if (RegSetValueExW(hkey, chip_typeW, 0, REG_SZ, (const BYTE *)gpu->name, size))
+ goto done;
+ if (RegSetValueExW(hkey, dac_typeW, 0, REG_SZ, (const BYTE *)ramdacW, sizeof(ramdacW)))
+ goto done;
RegCloseKey(hkey);
--
2.31.1
1
0
[PATCH v3] winex11.drv: Add video adapter description to the registry.
by Dmitry Timoshkov Oct. 13, 2021
by Dmitry Timoshkov Oct. 13, 2021
Oct. 13, 2021
v2: Without setting "HardwareInformation.MemorySize" key.
v3: strlen() -> sizeof().
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/winex11.drv/display.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/dlls/winex11.drv/display.c b/dlls/winex11.drv/display.c
index c8c216c8302..2930f6062c7 100644
--- a/dlls/winex11.drv/display.c
+++ b/dlls/winex11.drv/display.c
@@ -463,6 +463,11 @@ static BOOL link_device(const WCHAR *instance, const GUID *guid)
static BOOL X11DRV_InitGpu(HDEVINFO devinfo, const struct x11drv_gpu *gpu, INT gpu_index, WCHAR *guid_string,
WCHAR *driver, LUID *gpu_luid)
{
+ static const WCHAR adapter_stringW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','A','d','a','p','t','e','r','S','t','r','i','n','g',0};
+ static const WCHAR bios_stringW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','B','i','o','s','S','t','r','i','n','g',0};
+ static const WCHAR chip_typeW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','C','h','i','p','T','y','p','e',0};
+ static const WCHAR dac_typeW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','D','a','c','T','y','p','e',0};
+ static const WCHAR ramdacW[] = {'I','n','t','e','r','g','r','a','t','e','d',' ','R','A','M','D','A','C',0};
static const BOOL present = TRUE;
SP_DEVINFO_DATA device_data = {sizeof(device_data)};
WCHAR instanceW[MAX_PATH];
@@ -551,6 +556,15 @@ static BOOL X11DRV_InitGpu(HDEVINFO devinfo, const struct x11drv_gpu *gpu, INT g
sprintfW(bufferW, driver_date_fmtW, systemtime.wMonth, systemtime.wDay, systemtime.wYear);
if (RegSetValueExW(hkey, driver_dateW, 0, REG_SZ, (BYTE *)bufferW, (strlenW(bufferW) + 1) * sizeof(WCHAR)))
goto done;
+ size = (strlenW(gpu->name) + 1) * sizeof(WCHAR);
+ if (RegSetValueExW(hkey, adapter_stringW, 0, REG_SZ, (const BYTE *)gpu->name, size))
+ goto done;
+ if (RegSetValueExW(hkey, bios_stringW, 0, REG_SZ, (const BYTE *)gpu->name, size))
+ goto done;
+ if (RegSetValueExW(hkey, chip_typeW, 0, REG_SZ, (const BYTE *)gpu->name, size))
+ goto done;
+ if (RegSetValueExW(hkey, dac_typeW, 0, REG_SZ, (const BYTE *)ramdacW, sizeof(ramdacW)))
+ goto done;
RegCloseKey(hkey);
--
2.31.1
3
3
Signed-off-by: Georg Lehmann <dadschoorse(a)gmail.com>
---
dlls/winevulkan/make_vulkan | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index 9f0380ae619..0a22834dc4d 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -64,7 +64,7 @@ from enum import Enum
LOGGER = logging.Logger("vulkan")
LOGGER.addHandler(logging.StreamHandler())
-VK_XML_VERSION = "1.2.195"
+VK_XML_VERSION = "1.2.196"
WINE_VK_VERSION = (1, 2)
# Filenames to create.
--
2.33.0
1
0
[PATCH v2] winex11.drv: Add video adapter description to the registry.
by Dmitry Timoshkov Oct. 13, 2021
by Dmitry Timoshkov Oct. 13, 2021
Oct. 13, 2021
v2: Without setting "HardwareInformation.MemorySize" key.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/winex11.drv/display.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/dlls/winex11.drv/display.c b/dlls/winex11.drv/display.c
index c8c216c8302..74431a92a6b 100644
--- a/dlls/winex11.drv/display.c
+++ b/dlls/winex11.drv/display.c
@@ -463,6 +463,11 @@ static BOOL link_device(const WCHAR *instance, const GUID *guid)
static BOOL X11DRV_InitGpu(HDEVINFO devinfo, const struct x11drv_gpu *gpu, INT gpu_index, WCHAR *guid_string,
WCHAR *driver, LUID *gpu_luid)
{
+ static const WCHAR adapter_stringW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','A','d','a','p','t','e','r','S','t','r','i','n','g',0};
+ static const WCHAR bios_stringW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','B','i','o','s','S','t','r','i','n','g',0};
+ static const WCHAR chip_typeW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','C','h','i','p','T','y','p','e',0};
+ static const WCHAR dac_typeW[] = {'H','a','r','d','w','a','r','e','I','n','f','o','r','m','a','t','i','o','n','.','D','a','c','T','y','p','e',0};
+ static const WCHAR ramdacW[] = {'I','n','t','e','r','g','r','a','t','e','d',' ','R','A','M','D','A','C',0};
static const BOOL present = TRUE;
SP_DEVINFO_DATA device_data = {sizeof(device_data)};
WCHAR instanceW[MAX_PATH];
@@ -551,6 +556,14 @@ static BOOL X11DRV_InitGpu(HDEVINFO devinfo, const struct x11drv_gpu *gpu, INT g
sprintfW(bufferW, driver_date_fmtW, systemtime.wMonth, systemtime.wDay, systemtime.wYear);
if (RegSetValueExW(hkey, driver_dateW, 0, REG_SZ, (BYTE *)bufferW, (strlenW(bufferW) + 1) * sizeof(WCHAR)))
goto done;
+ if (RegSetValueExW(hkey, adapter_stringW, 0, REG_SZ, (const BYTE *)gpu->name, (strlenW(gpu->name) + 1) * sizeof(WCHAR)))
+ goto done;
+ if (RegSetValueExW(hkey, bios_stringW, 0, REG_SZ, (const BYTE *)gpu->name, (strlenW(gpu->name) + 1) * sizeof(WCHAR)))
+ goto done;
+ if (RegSetValueExW(hkey, chip_typeW, 0, REG_SZ, (const BYTE *)gpu->name, (strlenW(gpu->name) + 1) * sizeof(WCHAR)))
+ goto done;
+ if (RegSetValueExW(hkey, dac_typeW, 0, REG_SZ, (const BYTE *)ramdacW, (strlenW(ramdacW) + 1) * sizeof(WCHAR)))
+ goto done;
RegCloseKey(hkey);
--
2.31.1
2
4