mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 01:20:42 +00:00
Add D3D11_RESOURCE_MISC_SHARED in GL/DX interop tests
* Necessary for it to work correctly on AMD
This commit is contained in:
@@ -220,6 +220,12 @@ D3D11BufferCreator &D3D11BufferCreator::Staging()
|
||||
return *this;
|
||||
}
|
||||
|
||||
D3D11BufferCreator &D3D11BufferCreator::Shared()
|
||||
{
|
||||
m_BufDesc.MiscFlags |= D3D11_RESOURCE_MISC_SHARED;
|
||||
return *this;
|
||||
}
|
||||
|
||||
D3D11BufferCreator &D3D11BufferCreator::Data(const void *data)
|
||||
{
|
||||
m_Initdata.pSysMem = data;
|
||||
@@ -314,6 +320,12 @@ D3D11TextureCreator &D3D11TextureCreator::Staging()
|
||||
return *this;
|
||||
}
|
||||
|
||||
D3D11TextureCreator &D3D11TextureCreator::Shared()
|
||||
{
|
||||
MiscFlags |= D3D11_RESOURCE_MISC_SHARED;
|
||||
return *this;
|
||||
}
|
||||
|
||||
D3D11TextureCreator::operator ID3D11Texture1DPtr() const
|
||||
{
|
||||
D3D11_TEXTURE1D_DESC texdesc;
|
||||
|
||||
@@ -103,6 +103,7 @@ public:
|
||||
D3D11BufferCreator &ByteAddressed();
|
||||
D3D11BufferCreator &Mappable();
|
||||
D3D11BufferCreator &Staging();
|
||||
D3D11BufferCreator &Shared();
|
||||
|
||||
D3D11BufferCreator &Data(const void *data);
|
||||
D3D11BufferCreator &Size(UINT size);
|
||||
@@ -145,6 +146,7 @@ public:
|
||||
|
||||
D3D11TextureCreator &Mappable();
|
||||
D3D11TextureCreator &Staging();
|
||||
D3D11TextureCreator &Shared();
|
||||
|
||||
operator ID3D11Texture1DPtr() const;
|
||||
operator ID3D11Texture2DPtr() const;
|
||||
|
||||
@@ -141,11 +141,12 @@ void main()
|
||||
ID3D11VertexShaderPtr vs = d3d.CreateVS(vsblob);
|
||||
ID3D11PixelShaderPtr ps = d3d.CreatePS(psblob);
|
||||
|
||||
ID3D11Texture2DPtr d3d_fromd3d = d3d.MakeTexture(DXGI_FORMAT_R8G8B8A8_UNORM, 1024, 1024).RTV();
|
||||
ID3D11Texture2DPtr d3d_fromd3d =
|
||||
d3d.MakeTexture(DXGI_FORMAT_R8G8B8A8_UNORM, 1024, 1024).RTV().Shared();
|
||||
ID3D11RenderTargetViewPtr rtv = d3d.MakeRTV(d3d_fromd3d);
|
||||
|
||||
ID3D11Texture2DPtr d3d_tod3d =
|
||||
d3d.MakeTexture(DXGI_FORMAT_R8G8B8A8_UNORM, 1024, 1024).RTV().SRV();
|
||||
d3d.MakeTexture(DXGI_FORMAT_R8G8B8A8_UNORM, 1024, 1024).RTV().SRV().Shared();
|
||||
ID3D11ShaderResourceViewPtr srv = d3d.MakeSRV(d3d_tod3d);
|
||||
ID3D11RenderTargetViewPtr rtv2 = d3d.MakeRTV(d3d_tod3d);
|
||||
|
||||
@@ -163,7 +164,7 @@ void main()
|
||||
{Vec3f(0.8f, 0.8f, 0.0f), Vec4f(0.0f, 0.0f, 1.0f, 1.0f), Vec2f(1.0f, 1.0f)},
|
||||
};
|
||||
|
||||
ID3D11BufferPtr buf = d3d.MakeBuffer().Vertex().Data(quad);
|
||||
ID3D11BufferPtr buf = d3d.MakeBuffer().Vertex().Data(quad).Shared();
|
||||
|
||||
GLuint vao = MakeVAO();
|
||||
glBindVertexArray(vao);
|
||||
@@ -256,6 +257,8 @@ void main()
|
||||
|
||||
ctx->ClearState();
|
||||
|
||||
ctx->Flush();
|
||||
|
||||
res = wglDXLockObjectsNV(interop_dev, ARRAY_COUNT(lockHandles), lockHandles);
|
||||
|
||||
TEST_ASSERT(res, "wglDXLockObjectsNV textures failed");
|
||||
|
||||
Reference in New Issue
Block a user