Skip to content

Performance issue in CanvasCommandList with big Scale Transform #992

@mdmozibur

Description

@mdmozibur

I have a large numbe of geometries drawn into a CanvasCommandList.
Not all of it is being shown in the screen at the same time.
Moreover, I let the user zoom in.
I use scale transform into the CanvasDrawingSession to zoom in :

drawngSession.Transform = Matrix3x2.CreateScale(zoom_factor);

The issue is, if the zoom factor is much (100 or more), the FPS drops significantly. Please note that I use CanvasStrokeTransformBehavior.Fixed. I am assuming that the performance issue is because of the increased size of the commandList bound due to the large scale transform applied. In that case, how can mention a culling rectangle / avoid drawing the part of commandList that is outside of the visible bound?

I tried using PushLayer method of drawingSession, used the visible rectangle as the clipping rectangle. It did not change anything unfortunately. Please advice me in this situation here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions