-
Notifications
You must be signed in to change notification settings - Fork 266
Description
Running on Windows 11 DX12 with r_useValidationLayers = 2 fails with the following error:
D3D12 ERROR: ID3D12CommandList::DrawIndexedInstanced: Static Descriptor Sampler Filter (D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR) is not compatible with Non-Comparison Sampler Mode expected by shader at register 0 space 0. Static Descriptor (ptr = 0x0000000100170030) is from Descriptor Table Handle (ptr = 0x0000000100170030) at 0 descriptor offset. Also Root Signature (0x0000017A24AE2FF0:'Unnamed ID3D12RootSignature Object')'s Descriptor Table (at Parameter Index [2])'s Descriptor Range (at Range Index [0])'s Descriptor (at descriptorIndex in range [0]). [ EXECUTION ERROR #1321: COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH] D3D12: **BREAK** enabled for the previous message, which was: [ ERROR EXECUTION #1321: COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH ]
This looks like another DX12 descriptor validation issue similar to others seen and suppressed before (e.g. perhaps related to D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH).
Although I am running on Windows 11, I am still using VS2019 with Windows SDK 10.0.20348.0 (final SDK version for Windows 10) which does not define D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH (1321). However, if I add a cast like D3D12_MESSAGE_ID(1321) to the suppression list in DeviceManager_DX12 then the game runs fine with DX12 validation on.
So is this an error that should be reviewed and possibly corrected, or another case of incorrect DX12 descriptor validation which can be suppressed? And if so, should there be a new minimum Windows 11 SDK version specified for the game (along with VS2022) that includes new message IDs, or simply add to the suppression list with a backwards compatible cast as above?