Copying a portion of a tilemap? draw_tilemap_ext?

I would like to copy part of a tilemap to a surface so I can pass it to a shader.

The problem is that there only seems to be one function for drawing / copying a tilemap; the draw_tilemap() function, which draws the entire thing (requiring the target surface be the size of the room, which is inefficient).

Is there a way to copy a specific portion of a tilemap that I just am just not seeing? Or is it that I am taking the wrong approach?

Something like:

draw_tilemap_ext(tilemap_id, target_surface, x, y, w, h)

would be exactly what I need, but the documentation for GMS2 doesn't list anything.

Any and all help much appreciated!