ID3D11DeviceContext::Map's given memory is invalid from 2nd slice (2048x2048x4(Array)xUInt2)

Discussion created by jseb on Oct 29, 2018
Latest reply on Oct 29, 2018 by dipak



I've filled in a report on "AMD Issue Reporting Form", yet I prefer doubling my question here.


I'm running a driver issue while using "ID3D11DeviceContext::Map" on a 2048x2048x4(Array)xUInt2 resource.

I'm seeing the bug on 2 different AMD hardwares:

A) "AMD Radeon R9 200 Series"(0x1002,0x6798) (3GB) + "atidxx64.dll":Version:24.20.11016.4001 (? not sure of what "Radeon software adrenaline edition" this dll it's part of)

B) Second is an older AMD on laptop with old driver (updates no longer available), I can give you more details if needed


I get (read) access violation when reading from memory given by ID3D11DeviceContext::Map,

the mapped resource is a Texture2DArray DXGI_FORMAT_R16G16_UINT, Witdh=2048, Height=2048, Mips=1, cArray=4

I can fully read the 1st slice of that array but starting with 2nd slice, memory does not seem to be rightly mapped (I got access_violation).


The reproduction of the issue is rather simple: there is still one strange thing:

The first time the 'Map' occurs, everything is ok (on all slices), but the 2nd time (the resource has been delete and created again before),

I get the crash when reading the 2nd slice (though resource description is the same).


I've not seen that issue on other platforms, and D3D11 DebugLayer stay silent about that Map.


You'll be able to reproduce the issue in our next version of 'Maniplanet' (supporting Trackmania/Shootmania).


Is there any known limitations of AMD driver implementation of ID3D11DeviceContext::Map, especially in Texture2DArray case ?