Fix MSAA + mipmaps combination on D3D11/D3D12/Vulkan/Metal. (#3717)

This commit is contained in:
Branimir Karadžić
2026-05-21 15:53:17 -07:00
committed by GitHub
parent 526b886105
commit 7d03e160fa
4 changed files with 36 additions and 10 deletions

View File

@@ -5757,6 +5757,15 @@ namespace bgfx { namespace d3d12
}
else
{
const uint32_t savedMipLevels = resourceDesc.MipLevels;
const D3D12_RESOURCE_FLAGS savedFlags = resourceDesc.Flags;
if (needResolve)
{
resourceDesc.MipLevels = 1;
resourceDesc.Flags &= ~D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS;
}
m_ptr = createCommittedResource(
device
, HeapProperty::Texture
@@ -5768,6 +5777,12 @@ namespace bgfx { namespace d3d12
: D3D12_HEAP_FLAG_NONE
);
if (needResolve)
{
resourceDesc.MipLevels = savedMipLevels;
resourceDesc.Flags = savedFlags;
}
if (externalShared)
{
DX_CHECK(device->CreateSharedHandle(