You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The lifted Microsoft.UI.Composition implementation shipped with WinUI 3 still uses the legacy FXC/DXBC shader compilation and linking pipeline.
It does not support shaders compiled by the current DirectX Shader Compiler (DXC), including DXIL shaders targeting Shader Model 6.9, nor does the Composition effect backend expose a D3D12/D3D12U execution path.
This is separate from #11813. That issue reports the lack of a supported public custom-effect/custom-shader extension point. This issue concerns the outdated shader compiler and graphics backend used internally by lifted Composition. Even if a public custom-shader API were added, the current implementation would still be restricted to the legacy FXC/DXBC pipeline.
The supported pixel-shader profiles visible in the binary are limited to:
ps_4_0
ps_4_0_level_9_3
ps_4_0_level_9_1
The binary contains hundreds of embedded DXBC shader containers but no DXIL containers. The embedded shaders also identify the legacy Microsoft HLSL Shader Compiler.
This indicates that both sides of the lifted Composition effect pipeline are tied to the old D3D11 Function Linking/DXBC ABI:
produces DXIL, which cannot be consumed by the existing D3DLoadModule and ID3D11Linker pipeline.
Adding or updating the DXC NuGet package in the application does not help because shader compilation is performed internally by wuceffectsi.dll, which explicitly loads d3dcompiler_47.dll and chooses a fixed legacy target.
WinUI 3 presents lifted Composition as the current application-local Composition implementation, but its effect compiler remains tied to the deprecated FXC toolchain and very old shader profiles.
This is not merely a request for an additional visual effect. It prevents applications from using Microsoft's current HLSL compiler and shader platform in the current Windows UI framework, and creates an architectural blocker for the custom-material scenarios described in #11813.
Steps to reproduce the bug
Steps to reproduce the bug
Create a WinUI 3 application using Microsoft.UI.Composition.
Attempt to use a shader compiled by Microsoft.Direct3D.DXC 1.9.2607.13 with a Shader Model 6.x target, including ps_6_9 or lib_6_9.
Observe that the DXIL shader cannot be loaded or linked by the Composition runtime.
Inspect the shipped Composition binaries and observe that the runtime loads d3dcompiler_47.dll, hard-codes lib_4_0_level_9_3_ps_only, and consumes shaders through legacy D3D11 Function Linking APIs.
Actual behavior
WinUI 3 lifted Composition is restricted to:
FXC
DXBC
Shader Model 4.x / Level 9.x profiles
D3D11 Function Linking
It does not provide a path for:
DXC
DXIL
Shader Model 6.x, including Shader Model 6.9
D3D12/D3D12U-backed Composition effects
Applications therefore cannot use current HLSL language and compiler functionality, newer shader-model features, or a modern D3D12 shader backend in Composition effects.
Replacing d3dcompiler_47.dll, adding Microsoft.Direct3D.DXC, or changing the application’s shader build settings cannot solve the problem because the legacy target and linking ABI are implemented inside the private Composition runtime.
Expected behavior
Lifted Microsoft.UI.Composition should provide a modern shader path based on DXC and DXIL.
At minimum, the runtime should:
Support shader bytecode produced by current Microsoft.Direct3D.DXC releases.
Support appropriate Shader Model 6.x targets, including Shader Model 6.9 where supported by the OS, adapter, and driver.
Avoid requiring legacy D3DLoadModule/ID3D11Linker function linking for modern shaders.
Provide a D3D12/D3D12U-backed Composition effect path, or document why lifted Composition remains restricted to D3D11.
Expose capability detection so applications can determine whether DXIL, a particular shader model, and the D3D12 backend are available.
Retain a legacy DXBC fallback only where required for older hardware or compatibility.
Together with the public extensibility requested in #11813, the intended path should be similar to:
Application HLSL
↓
Microsoft.Direct3D.DXC
↓
DXIL / Shader Model 6.x
↓
supported Microsoft.UI.Composition custom-shader API
↓
D3D12/D3D12U lifted Composition backend
#11813 tracks the absence of a supported public entry point. This issue tracks the separate requirement to modernize the underlying Composition shader compiler, bytecode format, linking model, and graphics backend.
The affected Composition implementation is distributed as part of the Windows App SDK/WinUI runtime but does not appear to be included in the public microsoft-ui-xaml source tree. If the implementation is owned by another Windows graphics or Composition team, please transfer or route this issue rather than treating it as an application dependency-version problem.
Describe the bug
The lifted
Microsoft.UI.Compositionimplementation shipped with WinUI 3 still uses the legacy FXC/DXBC shader compilation and linking pipeline.It does not support shaders compiled by the current DirectX Shader Compiler (DXC), including DXIL shaders targeting Shader Model 6.9, nor does the Composition effect backend expose a D3D12/D3D12U execution path.
This is separate from #11813. That issue reports the lack of a supported public custom-effect/custom-shader extension point. This issue concerns the outdated shader compiler and graphics backend used internally by lifted Composition. Even if a public custom-shader API were added, the current implementation would still be restricted to the legacy FXC/DXBC pipeline.
Evidence from the shipped runtime
The following binaries were inspected from:
Relevant files:
wuceffectsi.dllThe Composition effect compiler explicitly loads:
and resolves:
Microsoft::UI::Composition::EffectGenerator::BuildCompiledEffectSubgraphhard-codes the shader target:The generated HLSL is therefore compiled as a legacy D3D11 shader library using FXC-compatible DXBC.
There is no
dxcompiler.dll,DxcCreateInstance,IDxcCompiler,IDxcUtils, or equivalent DXC/DXIL path in this component.dwmcorei.dllThe corresponding Composition rendering implementation imports the legacy D3DCompiler function-linking APIs:
The supported pixel-shader profiles visible in the binary are limited to:
The binary contains hundreds of embedded
DXBCshader containers but noDXILcontainers. The embedded shaders also identify the legacy Microsoft HLSL Shader Compiler.This indicates that both sides of the lifted Composition effect pipeline are tied to the old D3D11 Function Linking/DXBC ABI:
A shader compiled with a current package such as:
using a target such as:
produces DXIL, which cannot be consumed by the existing
D3DLoadModuleandID3D11Linkerpipeline.Adding or updating the DXC NuGet package in the application does not help because shader compilation is performed internally by
wuceffectsi.dll, which explicitly loadsd3dcompiler_47.dlland chooses a fixed legacy target.Why is this important?
Can not use such as https://devblogs.microsoft.com/directx/shader-model-6-9-retail-and-more/
WinUI 3 presents lifted Composition as the current application-local Composition implementation, but its effect compiler remains tied to the deprecated FXC toolchain and very old shader profiles.
This is not merely a request for an additional visual effect. It prevents applications from using Microsoft's current HLSL compiler and shader platform in the current Windows UI framework, and creates an architectural blocker for the custom-material scenarios described in #11813.
Steps to reproduce the bug
Steps to reproduce the bug
Microsoft.UI.Composition.Microsoft.Direct3D.DXC 1.9.2607.13with a Shader Model 6.x target, includingps_6_9orlib_6_9.d3dcompiler_47.dll, hard-codeslib_4_0_level_9_3_ps_only, and consumes shaders through legacy D3D11 Function Linking APIs.Actual behavior
WinUI 3 lifted Composition is restricted to:
It does not provide a path for:
Applications therefore cannot use current HLSL language and compiler functionality, newer shader-model features, or a modern D3D12 shader backend in Composition effects.
Replacing
d3dcompiler_47.dll, addingMicrosoft.Direct3D.DXC, or changing the application’s shader build settings cannot solve the problem because the legacy target and linking ABI are implemented inside the private Composition runtime.Expected behavior
Lifted
Microsoft.UI.Compositionshould provide a modern shader path based on DXC and DXIL.At minimum, the runtime should:
Microsoft.Direct3D.DXCreleases.D3DLoadModule/ID3D11Linkerfunction linking for modern shaders.Together with the public extensibility requested in #11813, the intended path should be similar to:
Screenshots
No response
NuGet package version
Microsoft.WindowsAppSDK.InteractiveExperiences 2.1.7-experimental (2.4.1) Microsoft.Direct3D.DXC 1.9.2607.13
Windows version
No response
Additional context
Related issue
Microsoft.UI.Compositionstill rejects custom/D2D effects while MUC also lacks Visual-to-GPU interop#11813 tracks the absence of a supported public entry point. This issue tracks the separate requirement to modernize the underlying Composition shader compiler, bytecode format, linking model, and graphics backend.
The affected Composition implementation is distributed as part of the Windows App SDK/WinUI runtime but does not appear to be included in the public
microsoft-ui-xamlsource tree. If the implementation is owned by another Windows graphics or Composition team, please transfer or route this issue rather than treating it as an application dependency-version problem.