SmartFX: complete Full-resolution upstream input during reduced preview, including negative-origin text and continuously rasterized AI
We are developing a native SmartFX effect on macOS/Apple silicon, tested in AE 26.5x89. We need to analyze the current frame's upstream alpha at a consistent resolution while rendering Full/Half/Quarter previews. This is not a request for a historical frame or time-remapping support.
The effect derives content bounds and occupied cells from alpha. Reduced input can lose a faint detail and change the occupied-cell set, which then changes the timing of other visible cells. We can reproduce that in AE with a synthetic 32×8 PNG: two opaque 4×4 corner patches and one alpha=4/255 pixel. At Quarter, the faint feature disappears while the opaque patches remain. Input dimensions or a conservative bounding rectangle alone cannot supply the missing occupancy information.
Ordinary SmartFX checkout supplies the complete required extent in our text test, but PF_RenderRequest has no documented per-checkout resolution override. Our isolated diagnostic also tried this acquisition chain:
1. PFInterfaceSuite1.AEGP_GetNewEffectForEffect.
2. LayerRenderOptionsSuite2.AEGP_NewFromUpstreamOfEffect.
3. SetTime to the same native current time, SetDownsampleFactor(1,1), and SetWorldType matching the requested native depth.
4. RenderSuite5.AEGP_RenderAndCheckoutLayerFrame, then GetRenderedRegion and GetReceiptWorld; WorldSuite3.FillOutPFEffectWorld supplies pixel access.
5. Check in the frame and dispose the options and effect reference.
This worked for bounded raster fixtures. For negative-origin editable text at Full resolution, however, the observed regions and visible-pixel counts (alpha greater than 1/255) were:
Input route | Region | Visible pixels
Ordinary SmartFX | [-178,27,343,100] | 21,436
Auxiliary layer render | [0,27,343,100] | 13,598
The auxiliary result loses 7,838 visible pixels and remains clipped during Half requests. A direct continuously rasterized Illustrator fixture also showed a coverage discrepancy. These were serial diagnostic renders; we have not qualified the chain for MFR.
The supplied SDK 26.5 declarations were previously compared with 25.6: LayerRenderOptionsSuite2, RenderSuite5, PFInterfaceSuite1 and the relevant SmartFX request/callback structures were unchanged. Layer render options initialize the ROI to nominal layer bounds and expose no ROI setter. The item-render ROI setter takes a different handle type.
Could you clarify:
1. Is there a supported way for a SmartFX effect to obtain complete upstream RGBA, or equivalent bounds/occupancy information, at Full resolution during reduced previews, including expanded and negative-origin content?
2. Is the auxiliary clipping expected? Is there a supported ROI/coordinate correction, newer interface or known fix for text and CR Illustrator?
3. Which selectors and threading rules apply to the entire acquisition chain, including PFInterface handle acquisition during Smart Render and MFR? How should its dependencies be declared to the host?
We need to preserve upstream effects and normal one-layer use without changing the project during rendering. Guidance on a supported route would let us build a focused reproduction against that route.
