| Previous | Next |
| MILEFFECTSERR_NOTAFFINETRANSFORM | MILEFFECTSERR_OUTPUTSIZETOOLARGE |
MILEFFECTSERR_EMPTYBOUNDS
MILEFFECTSERR_EMPTYBOUNDS identifies a failure in MIL empty output bounds. The effect graph calculated an empty output region where the requested operation requires drawable bounds. Investigation of this result should preserve the original object generation before cleanup, retry, or fallback creates a secondary result.
Telemetry with explanatory value
| Record | Why it matters here |
|---|---|
| Effect instance and owning graph or group identity | Comparing effect instance and owning graph or group identity shows whether this result follows input, object state, or environment. |
| Connector, input, child, listener, property, or transform involved | Preserving connector, input, child, listener, property, or transform involved provides the evidence needed to test this distinction: oUTPUTSIZETOOLARGE is the opposite resource extreme; both require examining calculated bounds rather than only the final visual. |
| Calculated input and output bounds | Recording calculated input and output bounds separates the MIL empty output bounds boundary from a later wrapper symptom. |
| Construction sequence and first method returning the HRESULT | In this result diagnostics, recording construction sequence and first method returning the HRESULT ties the HRESULT to the MIL empty output bounds boundary rather than to the final visible failure. |
Where the failure occurs
Empty bounds mean the graph has no drawable intersection for an operation that requires output. This can result from an empty input, clipping that removes all pixels, a transform that moves content outside the requested region, or an effect contraction larger than the source., allocating a larger surface cannot restore content whose calculated rectangle is empty.
Inspect the following boundary: input bounds, clipping, transforms, and effect expansion or contraction.
Smallest faithful reproducer
When it is returned, trace source bounds, clip rectangles, transform results, and effect contractions in order. Replace the original source with a finite unit rectangle and remove clipping first, then restore each operation until the rectangle becomes empty.
- Log every intermediate rectangle and identify the first step that becomes empty.
- rebuild the smallest graph containing only the implicated node and one known input.
- When it is returned, log ownership changes and graph generation numbers.
- Validate the graph before allocating large intermediate resources.
Avoid broad resets
OUTPUTSIZETOOLARGE is the opposite resource extreme; both require examining calculated bounds rather than only the final visual. Do not catch the HRESULT and continue rendering with a partially connected graph; later failures can obscure the invariant that was first violated.
Separate object, input, and environment
| Test | Interpretation | Hold constant |
|---|---|---|
| Same environment, reduced input | If this result disappears with a smaller faithful case, complexity within MIL empty output bounds is implicated. | Keep effect instance and owning graph or group identity fixed while simplifying calculated input and output bounds. |
| Same input, fresh object generation | If it changes after rebuilding state, examine ownership across the effect instance, connector builder, graph owner, listener, and bounds calculator. | Place connector, input, child, listener, property, or transform involved 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 visual generation, effect registration, shader profile, rendering tier, and target dimensions while preserving construction sequence and first method returning the HRESULT. |
Completion test
A correction for it should let the operation at the MIL empty output bounds boundary complete repeatedly under the original supported conditions. Repeat the control that begins with “Log every intermediate rectangle and identify the first step that becomes empty” 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 Open Specifications: HRESULT values.
- Microsoft: WPF bitmap effects overview.
- Microsoft: PixelShader class.
- Microsoft: Direct2D custom effects.
- Microsoft: ID2D1TransformGraph.
Looking for a different code? Search another status or error code.
