FidelityFX-FSR2 icon indicating copy to clipboard operation
FidelityFX-FSR2 copied to clipboard

Crash with Kepler GPU

Open KristofMorva opened this issue 1 year ago • 7 comments

I've been wanting to test FSR2 out on an older machine, a Lenovo 510P with GT755M, and CreateComputePipelineState kept failing in ffx_fsr2_dx12 with E_INVALIDARGS. Turning on DirectX Debug Layer provided more information:

D3D12 ERROR: ID3D12Device::CreateComputeShader: Shader uses new Typed UAV Load formats, but the device does not support this. To check for support, check device caps via the CheckFeatureSupport() API [ STATE_CREATION ERROR #622: CREATESHADER_INVALIDBYTECODE]

It seems to me that FSR2 never checks for D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD, even though according to NVIDIA DirectX12 Hardware Features table, the Kepler architecture doesn't support Typed UAV Loads.

I'm not a graphics programmer so maybe I'm missing something, but as far as I can tell, (some?) Kepler GPUs are currently unsupported, and it is not handled gracefully; later on it crashes in the Unreal Engine plugin (FSR2TemporalUpscaler), which I'm assuming is induced by the issue above:

FfxErrorCode ErrorCode = ffxFsr2ContextCreate(&FSR2State->Fsr2, &Params);
check(ErrorCode == FFX_OK); // this check fails

KristofMorva avatar Jul 16 '22 10:07 KristofMorva

Hate to be the bringer of bad news, but I'd wager the odds of Kepler or any pre-2016 (perhaps pre-2018) GPU being supported here are close to nonexistent. Perhaps Mesa will look into that, but the official support is extremely unlikely.

AwayB avatar Jul 26 '22 21:07 AwayB

Hate to be the bringer of bad news, but I'd wager the odds of Kepler or any pre-2016 (perhaps pre-2018) GPU being supported here are close to nonexistent. Perhaps Mesa will look into that, but the official support is extremely unlikely.

That is really sad news indeed, but thanks for the confirmation that it's not me who has broken something.

If it's officially unsupported, then it'd be really nice if the Unreal Plugin (and I assume whatever other official plugins are available) provided some kind of query to decide if FSR2 is supported or not (IsFSR2Supported()) - because currently it'll just crash on unsupported systems, and the documentation doesn't mention any exceptions to the DX12 & Vulkan support (or maybe I was blind).

KristofMorva avatar Jul 27 '22 12:07 KristofMorva

The documentation clearly states that Shader Model 6.2 support is required for support in DX12 and Vulkan. The situation with the DX11 version may be different. You GPU only has support for Shader model 5.1, well below the required version. https://www.techpowerup.com/gpu-specs/geforce-gt-755m.c2420 https://github.com/microsoft/DirectXShaderCompiler/wiki/Shader-Model-6.2 image

PMunkes avatar Sep 15 '22 16:09 PMunkes

Thanks for the clarification @PMunkes! :) Although I'm unsure now where that excerpt is from, the GitHub README has no mention of it, the official website also just says DX12 (https://gpuopen.com/fidelityfx-superresolution-2/), and I don't remember the UE4 Plugin documentation to have any mention of it.

KristofMorva avatar Sep 16 '22 08:09 KristofMorva

Here you go @KristofMorva, it's directly in the main README.md file: https://github.com/GPUOpen-Effects/FidelityFX-FSR2#shading-language-requirements

PMunkes avatar Sep 17 '22 03:09 PMunkes

Ah, thanks, somehow my eyes skipped right over that 🥲

KristofMorva avatar Sep 17 '22 08:09 KristofMorva

17.09.2022 11:02:48 Morva Kristóf @.***>:

Ah, thanks, somehow my eyes skipped right over that 🥲

— Reply to this email directly, view it on GitHub[https://github.com/GPUOpen-Effects/FidelityFX-FSR2/issues/36#issuecomment-1250024954], or unsubscribe[https://github.com/notifications/unsubscribe-auth/ABRGOVRDA76BHSZ62HBRAFDV6V3KPANCNFSM53X427QQ]. You are receiving this because you were mentioned.[Verfolgungsbild][https://github.com/notifications/beacon/ABRGOVSVRQHRNA7QBUBV4A3V6V3KPA5CNFSM53X427Q2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOJKA536Q.gif]

You're Welcome.

PMunkes avatar Sep 17 '22 08:09 PMunkes