Change “viewport” to “canvas_items”. As far as I understand, the viewport mode means that rendered textures will have consistent pixel size. It doesn’t work well if you change the scale of sprites as you have done with the icon texture (?). I think that viewport works best when you want everything to be pixel perfect. It is the recommended mode for pixel art games but sometimes you might need to have elements that are not pixel perfect, like freely rotating sprites or a font that is not a pixel font.