| Previous | Next |
| D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES | D2DERR_EFFECT_IS_NOT_REGISTERED |
D2DERR_INTERMEDIATE_TOO_LARGE
D2DERR_INTERMEDIATE_TOO_LARGE identifies a failure in Direct2D targets, device capabilities, and intermediates. An effect graph requires an intermediate image too large for current tiling or device limits. Investigation of this result should preserve the original object generation before cleanup, retry, or fallback creates a secondary result.
Diagnostic evidence matrix
| Record | Why it matters here |
|---|---|
| Input and output rectangles for every node | Comparing input and output rectangles for every node shows whether this result follows input, object state, or environment. |
| Device maximum bitmap size and tiling settings | Preserving device maximum bitmap size and tiling settings provides the evidence needed to test this distinction: tOO_MANY_SHADER_ELEMENTS is shader complexity; INTERMEDIATE_TOO_LARGE is spatial resource size. |
| Blur, scale, convolution, and transform expansion | Recording blur, scale, convolution, and transform expansion separates the Direct2D targets, device capabilities, and intermediates boundary from a later wrapper symptom. |
| DPI and world transform | In this result diagnostics, recording DPI and world transform ties the HRESULT to the Direct2D targets, device capabilities, and intermediates boundary rather than to the final visible failure. |
Start with the returning API
A device context has target identity and is backed by a Direct3D device with format, feature, shader, and maximum-size limits. Temporarily changing targets, requesting unsupported capabilities, or propagating huge effect bounds are different problems., record target history and capability queries before allocating or drawing.
Inspect the following boundary: bounds propagation and tiling of effect intermediates.
Reproduce without destructive cleanup
When it is returned, use the original target and a small supported bitmap or effect region first. Then change one target, capability, format, or spatial expansion at a time while logging device and context generations.
- Render a smaller region.
- reduce effect expansion or scale.
- When it is returned, split processing into tiles with overlap where mathematically valid.
- Log the first node whose bounds exceed limits.
Limits of this code
TOO_MANY_SHADER_ELEMENTS is shader complexity; INTERMEDIATE_TOO_LARGE is spatial resource size. Do not respond with a universal render-target recreation loop unless the returned status specifically documents device-loss recovery; graph, property, numeric, lifetime, and print-state errors require correcting their contract.
Useful comparison axes
| Test | Interpretation | Hold constant |
|---|---|---|
| Same environment, reduced input | If this result disappears with a smaller faithful case, complexity within Direct2D targets, device capabilities, and intermediates is implicated. | Keep input and output rectangles for every node fixed while simplifying blur, scale, convolution, and transform expansion. |
| Same input, fresh object generation | If it changes after rebuilding state, examine ownership across the caller’s object graph, custom effect or renderer, Direct2D validation layer, backing device, and deferred draw boundary. | Place device maximum bitmap size and tiling settings on the timeline of the last successful transition. |
| Same operation on a controlled second path | If it follows one environment, the failure is not explained by source data alone. | Compare adapter and feature level, factory and device generations, target identity, debug-layer output, and thread ownership while preserving DPI and world transform. |
What success must demonstrate
A correction for it should let the operation at the Direct2D targets, device capabilities, and intermediates boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “Render a smaller region” and confirm that the following lifecycle step also succeeds. Keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.
Technical references
When it is returned, these references define the public API family, object model, or error list used to interpret this status.
- Microsoft: Direct2D error codes.
- Microsoft: Direct2D devices and device contexts.
- Microsoft: Direct2D custom effects.
- Microsoft: Direct2D API overview.
Looking for a different code? Search another status or error code.
