It’s better to leave /etc/default/grub alone, so as to not be prompted on upgrades what to do, should there be a newer version of it. That’s why we have config drop-ins (the files in .d directories).
For example:
sudo mkdir -p /etc/default/grub.d/
sudo tee /etc/default/grub.d/flickerfree-boot.cfg >/dev/null <<'EOF'
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT amdgpu.sg_display=0 i915.fastboot=1"
EOF
sudo update-grub
(never forget to put $GRUB_CMDLINE_LINUX_DEFAULT in there too, otherwise you overwrite any previous settings from the main config or previous drop-ins)
BTW, I believe that at least the i915.fastboot=1 is redundant, because it’s the default anyway, from what I gathered in the thread about it. Same as GRUB_GFXPAYLOAD_LINUX="keep", but it’s been like that since long before the flickerfree boot initiative.
From the documentation of the amdgpu module parameter, it looks like sg_display=0 is for other purposes. There shouldn’t be any memory pressure at boot time. Is there any proof that it works toward removing boot “flicker”?