Fix crash when updating GPU texture residency to 0
This commit is contained in:
@@ -133,8 +133,9 @@ void GPUTextureDX11::OnResidentMipsChanged()
|
||||
srDesc.Texture2D.MostDetailedMip = firstMipIndex;
|
||||
srDesc.Texture2D.MipLevels = mipLevels;
|
||||
}
|
||||
ID3D11ShaderResourceView* srView;
|
||||
VALIDATE_DIRECTX_RESULT(_device->GetDevice()->CreateShaderResourceView(_resource, &srDesc, &srView));
|
||||
ID3D11ShaderResourceView* srView = nullptr;
|
||||
if (mipLevels != 0)
|
||||
VALIDATE_DIRECTX_RESULT(_device->GetDevice()->CreateShaderResourceView(_resource, &srDesc, &srView));
|
||||
GPUTextureViewDX11& view = IsVolume() ? _handleVolume : _handlesPerSlice[0];
|
||||
if (view.GetParent() == nullptr)
|
||||
view.Init(this, nullptr, srView, nullptr, nullptr, Format(), MultiSampleLevel());
|
||||
|
||||
@@ -240,7 +240,8 @@ void GPUTextureDX12::OnResidentMipsChanged()
|
||||
GPUTextureViewDX12& view = IsVolume() ? _handleVolume : _handlesPerSlice[0];
|
||||
if (view.GetParent() == nullptr)
|
||||
view.Init(this, _device, this, Format(), MultiSampleLevel());
|
||||
view.SetSRV(srDesc);
|
||||
if (mipLevels != 0)
|
||||
view.SetSRV(srDesc);
|
||||
}
|
||||
|
||||
void GPUTextureDX12::OnReleaseGPU()
|
||||
|
||||
Reference in New Issue
Block a user