mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
Bug 1287653 - Minor fixes in D3D11Checks. - r=mattwoodrow
MozReview-Commit-ID: l8VkUewdhA
This commit is contained in:
parent
ac277e5603
commit
0ded0eabcd
@ -90,8 +90,8 @@ D3D11Checks::DoesRenderTargetViewNeedRecreating(ID3D11Device *aDevice)
|
||||
desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ;
|
||||
desc.MiscFlags = 0;
|
||||
desc.BindFlags = 0;
|
||||
ID3D11Texture2D* cpuTexture;
|
||||
hr = aDevice->CreateTexture2D(&desc, NULL, &cpuTexture);
|
||||
RefPtr<ID3D11Texture2D> cpuTexture;
|
||||
hr = aDevice->CreateTexture2D(&desc, NULL, getter_AddRefs(cpuTexture));
|
||||
if (FAILED(hr)) {
|
||||
gfxCriticalNote << "DoesRecreatingCreateCPUTextureFailed";
|
||||
return false;
|
||||
@ -107,7 +107,7 @@ D3D11Checks::DoesRenderTargetViewNeedRecreating(ID3D11Device *aDevice)
|
||||
}
|
||||
int resultColor = *(int*)mapped.pData;
|
||||
deviceContext->Unmap(cpuTexture, 0);
|
||||
cpuTexture->Release();
|
||||
cpuTexture = nullptr;
|
||||
|
||||
// XXX on some drivers resultColor will not have changed to
|
||||
// match the clear
|
||||
@ -311,19 +311,20 @@ DoesTextureSharingWorkInternal(ID3D11Device *device, DXGI_FORMAT format, UINT bi
|
||||
// Copy to the cpu texture so that we can readback
|
||||
deviceContext->CopyResource(cpuTexture, sharedTexture);
|
||||
|
||||
// We only need to hold on to the mutex during the copy.
|
||||
sharedMutex->ReleaseSync(0);
|
||||
|
||||
D3D11_MAPPED_SUBRESOURCE mapped;
|
||||
int resultColor = 0;
|
||||
uint32_t resultColor = 0;
|
||||
if (SUCCEEDED(deviceContext->Map(cpuTexture, 0, D3D11_MAP_READ, 0, &mapped))) {
|
||||
// read the texture
|
||||
resultColor = *(int*)mapped.pData;
|
||||
resultColor = *(uint32_t*)mapped.pData;
|
||||
deviceContext->Unmap(cpuTexture, 0);
|
||||
} else {
|
||||
gfxCriticalError() << "DoesD3D11TextureSharingWork_MapFailed";
|
||||
return false;
|
||||
}
|
||||
|
||||
sharedMutex->ReleaseSync(0);
|
||||
|
||||
// check that the color we put in is the color we get out
|
||||
if (resultColor != color[0]) {
|
||||
// Shared surfaces seem to be broken on dual AMD & Intel HW when using the
|
||||
|
Loading…
Reference in New Issue
Block a user