| 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 MILEFFECTSERR_EMPTYBOUNDS 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 MILEFFECTSERR_EMPTYBOUNDS 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 | For MILEFFECTSERR_EMPTYBOUNDS, 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 MILEFFECTSERR_EMPTYBOUNDS 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 in the MILEFFECTSERR_EMPTYBOUNDS path. For MILEFFECTSERR_EMPTYBOUNDS, 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. When MILEFFECTSERR_EMPTYBOUNDS is returned, allocating a larger surface cannot restore content whose calculated rectangle is empty.
For MILEFFECTSERR_EMPTYBOUNDS, inspect the following boundary: input bounds, clipping, transforms, and effect expansion or contraction.
Smallest faithful reproducer
When MILEFFECTSERR_EMPTYBOUNDS 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 in the MILEFFECTSERR_EMPTYBOUNDS path.
- Log every intermediate rectangle and identify the first step that becomes empty in the MILEFFECTSERR_EMPTYBOUNDS path.
- For MILEFFECTSERR_EMPTYBOUNDS, rebuild the smallest graph containing only the implicated node and one known input.
- When MILEFFECTSERR_EMPTYBOUNDS is returned, log ownership changes and graph generation numbers.
- Validate the graph before allocating large intermediate resources in the MILEFFECTSERR_EMPTYBOUNDS path.
Avoid broad resets
OUTPUTSIZETOOLARGE is the opposite resource extreme; both require examining calculated bounds rather than only the final visual. For MILEFFECTSERR_EMPTYBOUNDS, 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 MILEFFECTSERR_EMPTYBOUNDS disappears with a smaller faithful case, complexity within MIL empty output bounds is implicated. | For MILEFFECTSERR_EMPTYBOUNDS, keep effect instance and owning graph or group identity fixed while simplifying calculated input and output bounds. |
| Same input, fresh object generation | If MILEFFECTSERR_EMPTYBOUNDS changes after rebuilding state, examine ownership across the effect instance, connector builder, graph owner, listener, and bounds calculator. | For MILEFFECTSERR_EMPTYBOUNDS, 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 MILEFFECTSERR_EMPTYBOUNDS follows one environment, the failure is not explained by source data alone. | For MILEFFECTSERR_EMPTYBOUNDS, 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 MILEFFECTSERR_EMPTYBOUNDS 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. For MILEFFECTSERR_EMPTYBOUNDS, keep the original failing sample and one deliberate negative case so fallback cannot be mistaken for repair.
Technical references
When MILEFFECTSERR_EMPTYBOUNDS 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.