Is there any way to get a percentage of completion from here or something similar?
the rt already holds your progress, you just have to average it. dont loop Read Render Target Pixel across the texture, each call is a sync gpu to cpu copy, so a 1024 mask turns into thousands of stalls for one number.
two cheap ways: keep a small copy of the mask (64x64 is plenty for a percentage) and read only that on a timer, count pixels above your painted threshold and divide by total. or build mips on the mask and read the 1x1 mip, which is the average of the whole thing already.
keep the read off tick and a few times a second is enough, the number does not need to be frame fresh.
you can also try Async Render Target Reader, a render target readback plugin for Unreal Engine that reads pixels without stalling the game thread: Async Render Target Reader — Non-Blocking GPU Pixel Readback for Blueprints | Fab


