Remove more problematic D3D11 misc resource flags

This commit is contained in:
baldurk
2021-10-04 15:04:48 +01:00
parent 3ed35bf253
commit 44cfabb12a
3 changed files with 22 additions and 30 deletions
+2
View File
@@ -606,6 +606,8 @@ private:
rdcarray<FrameDescription> m_CapturedFrames;
rdcarray<ActionDescription *> m_Actions;
void MaskResourceMiscFlags(UINT &MiscFlags);
public:
ALLOCATE_WITH_WRAPPED_POOL(WrappedID3D11Device);
@@ -72,9 +72,7 @@ bool WrappedID3D11Device::Serialise_CreateTexture2D1(SerialiserType &ser,
TextureDisplayType dispType = DispTypeForTexture(Descriptor);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
if(m_pDevice3)
{
@@ -212,9 +210,7 @@ bool WrappedID3D11Device::Serialise_CreateTexture3D1(SerialiserType &ser,
TextureDisplayType dispType = DispTypeForTexture(Descriptor);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
if(m_pDevice3)
{
+18 -24
View File
@@ -28,6 +28,16 @@
#include "d3d11_debug.h"
#include "d3d11_resources.h"
void WrappedID3D11Device::MaskResourceMiscFlags(UINT &MiscFlags)
{
MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE |
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT | D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE |
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER | D3D11_RESOURCE_MISC_GUARDED |
D3D11_RESOURCE_MISC_HW_PROTECTED);
}
template <typename SerialiserType>
bool WrappedID3D11Device::Serialise_CreateBuffer(SerialiserType &ser, const D3D11_BUFFER_DESC *pDesc,
const D3D11_SUBRESOURCE_DATA *pInitialData,
@@ -99,9 +109,7 @@ bool WrappedID3D11Device::Serialise_CreateBuffer(SerialiserType &ser, const D3D1
HRESULT hr = S_OK;
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
D3D11_SUBRESOURCE_DATA data;
data.pSysMem = InitialData;
@@ -408,9 +416,7 @@ bool WrappedID3D11Device::Serialise_CreateTexture1D(SerialiserType &ser,
TextureDisplayType dispType = DispTypeForTexture(Descriptor);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
if(pInitialData != NULL)
hr = m_pDevice->CreateTexture1D(&Descriptor, &descs[0], &ret);
@@ -550,9 +556,7 @@ bool WrappedID3D11Device::Serialise_CreateTexture2D(SerialiserType &ser,
APIProps.YUVTextures |= IsYUVFormat(Descriptor.Format);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
if(pInitialData != NULL)
hr = m_pDevice->CreateTexture2D(&Descriptor, &descs[0], &ret);
@@ -689,9 +693,7 @@ bool WrappedID3D11Device::Serialise_CreateTexture3D(SerialiserType &ser,
APIProps.YUVTextures |= IsYUVFormat(Descriptor.Format);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
if(pInitialData != NULL)
hr = m_pDevice->CreateTexture3D(&Descriptor, &descs[0], &ret);
@@ -3422,9 +3424,7 @@ bool WrappedID3D11Device::Serialise_OpenSharedResource(SerialiserType &ser, HAND
HRESULT hr = S_OK;
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
D3D11_SUBRESOURCE_DATA data;
data.pSysMem = BufferContents;
@@ -3502,9 +3502,7 @@ bool WrappedID3D11Device::Serialise_OpenSharedResource(SerialiserType &ser, HAND
TextureDisplayType dispType = DispTypeForTexture(Descriptor);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
hr = m_pDevice->CreateTexture1D(&Descriptor, NULL, &ret);
@@ -3548,9 +3546,7 @@ bool WrappedID3D11Device::Serialise_OpenSharedResource(SerialiserType &ser, HAND
TextureDisplayType dispType = DispTypeForTexture(Descriptor);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
hr = m_pDevice->CreateTexture2D(&Descriptor, NULL, &ret);
@@ -3594,9 +3590,7 @@ bool WrappedID3D11Device::Serialise_OpenSharedResource(SerialiserType &ser, HAND
TextureDisplayType dispType = DispTypeForTexture(Descriptor);
// unset flags that are unimportant/problematic in replay
Descriptor.MiscFlags &=
~(D3D11_RESOURCE_MISC_SHARED | D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX |
D3D11_RESOURCE_MISC_GDI_COMPATIBLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE);
MaskResourceMiscFlags(Descriptor.MiscFlags);
hr = m_pDevice->CreateTexture3D(&Descriptor, NULL, &ret);