Drawing RenderTarget without alpha channel to RT with alpha channel

I have render target with alpha channel and I want to draw another render target, that may have $vertexalpha or not.

Code:


local rt1 = GetRenderTarget("TestRT1" .. os.clock(), 500, 500)
local rt2 = GetRenderTarget("TestRT2" .. os.clock(), 500, 500)

local rt_mat = CreateMaterial("mat" .. os.time(), "UnlitGeneric", {
	["$ignorez"] = 1,
	["$vertexalpha"] = 1,
})
local rt_mat2 = CreateMaterial("mat21" .. os.time(), "UnlitGeneric", {
	["$ignorez"] = 1,
})

hook.Add("HUDPaint", "TestRTHook", function()
	local scrw, scrh = ScrW(), ScrH()
	
	render.PushRenderTarget(rt1)
		render.Clear(0, 0, 0, 255)
		
		cam.Start2D()
			surface.SetDrawColor(Color(255, 0, 0))
			surface.DrawRect(0, 0, 500, 500)
		cam.End2D()
	render.PopRenderTarget()
	
	rt_mat2:SetTexture("$basetexture", rt1)
	
	render.PushRenderTarget(rt2)
		render.Clear(0, 0, 0, 255)
		
		cam.Start2D()
			surface.SetDrawColor(255, 255, 255)
			surface.SetMaterial(rt_mat2)
			surface.DrawTexturedRect(0, 0, 255, 255)
		cam.End2D()
	render.PopRenderTarget()
	
	rt_mat:SetTexture("$basetexture", rt2)
	surface.SetMaterial(rt_mat)
	surface.DrawTexturedRect(100, 100, 500, 500)
end)

And I see this

I tried to draw transparent rectangle after drawing rt_mat2


surface.SetDrawColor(255, 255, 255, 100)
surface.DrawRect(0, 0, 500, 500)

As you can see, colors was drawn, but alpha = 0

If add drawing transparent rectangle before drawing rt_mat2

Any idea how to draw render target without $vertexalpha to render target with $vertexalpha completely opaque?