Moderators: Mug UK, Zorro 2, Greenious, spiny, Sorgelig, Moderator Team
Sorgelig wrote:- I see tearing - tripple frame buffer should solve this problem.
vanfanel wrote:Triple buffer will add 1 frame of lag. V-synced double buffer is a better solution (unless there's something I'm missing here).
Sorgelig wrote:In general case you cannot vsync HDMI to retro video as it usually doesn't follow HDMI requirements.
vsync_adjust is an option for compatible monitors to lock vsync for smooth scrolls but it cannot be a requirement.
ijor wrote:I agree. If you are "vsynced" you shouldn't need triple frame buffer. You actually don't need double buffer either if you can "sync" the frame buffer correctly.
Grabulosaure wrote:it only does nearest and bilinear, and it is not well tested.
Sorgelig wrote:is it hard to add polyphase filtering? That would make it as replacement of VIP scaler... It would be really wonderful to replace the whole VIP
Grabulosaure wrote:I will first try BiCubic, I think I know how to do it. AFAIU polyphase is not very different.
Grabulosaure wrote:For interlaced video, is the "field" input sufficient? Decoding composite PAL or NTSC synchro, with equalization pulses, is not fun.
Grabulosaure wrote:I have updated the Megadrive/Genesis .RBF with support for triple buffering.
Grabulosaure wrote:I will first try BiCubic, I think I know how to do it. AFAIU polyphase is not very different.
Grabulosaure wrote:I will first try BiCubic, I think I know how to do it. AFAIU polyphase is not very different.
For interlaced video, is the "field" input sufficient? Decoding composite PAL or NTSC synchro, with equalization pulses, is not fun.
I have updated the Megadrive/Genesis .RBF with support for triple buffering.
Code: Select all
Suppose you have a game resolution of 320x240.
Suppose the pixel in the display maps to an x coordinate of 112.13 (just an example). Also, in pixel shaders we say 112.5 is the center of pixel 112, so x=112.13 would be a distance of 0.37 from pixel center 112 and a distance of 0.63 from pixel center 111.
Instead of linearly interpolating between pixels 111 and 112 with (0.37)(Pixel 111) + (0.63)(Pixel 112) we do this instead:
Adjust the coordinates as follows:
X = 112.13
C = floor(X)+0.5 (Center of the current Source Pixel)
Dist = X - C (Distance from the Pixel Center)
Dist = 4.0*Dist^3 (Adjusts the distance from center. See below for explanation)
X = C + Dist (Put the x coordinate back together)
The result from the above would map 112.13 to 112.297
Then you linearly interpolate with standard linear interpolation: (0.203)(Pixel 111) + (0.797)(Pixel 112)
Grabulosaure wrote:I will first try BiCubic, I think I know how to do it. AFAIU polyphase is not very different.
Sorgelig wrote:is there any progress?
coughlanio wrote:I've noticed some severe image retention with the Genesis core using the new scaler on my monitor. It's an LG 27UK850W. I tried to see if I could reproduce the burn-in with the standard Genesis core, but it seems to be exclusive to the new scaler. Speaking with some people, it could be due to weird video timings?
BlockABoots wrote:So this scaler can be implemented into and core, or is it just Genesis?
cacophony wrote:According to RetroRGB:
"I did some MiSTer lag tests. In it's current state, the MiSTer's HDMI output ads about 2 frames of lag. Future community-built scalers can significantly lower this though."
Grabulosaure wrote:I have just fixed a bug and updated the files.
Grabulosaure wrote:I have just fixed a bug and updated the files.coughlanio wrote:I've noticed some severe image retention with the Genesis core using the new scaler on my monitor. It's an LG 27UK850W. I tried to see if I could reproduce the burn-in with the standard Genesis core, but it seems to be exclusive to the new scaler. Speaking with some people, it could be due to weird video timings?
What do you mean by image retention? Do the "triple buffer" option change anything ? The scaler should use the same video modes as Sorgelig's Genesis core.BlockABoots wrote:So this scaler can be implemented into and core, or is it just Genesis?
It can be used with any core, replacing the Intel/Altera scaler.cacophony wrote:According to RetroRGB:
"I did some MiSTer lag tests. In it's current state, the MiSTer's HDMI output ads about 2 frames of lag. Future community-built scalers can significantly lower this though."
This scaler doesn't try to minimise lag yet. It shouldn't be too difficult, assuming that the output vertical frequency is locked to the input frequency. Currently, with the "triple buffer" mechanism, there is a 1 to 2 images delay.
Code: Select all
-----------------------------------------------------------------------------
-- Ghogan
-- Shift Bilinear weights away from the center (towards 0 or 1) to
-- make scaling sharper
FUNCTION gho_calc(frac : unsigned(11 DOWNTO 0)) RETURN unsigned IS
BEGIN
case frac(11 DOWNTO 8) is --We don't need so many bits
when "0000" => Return "00000000";
when "0001" => Return "00000001";
when "0010" => Return "00000010";
when "0011" => Return "00000110";
when "0100" => Return "00010000";
when "0101" => Return "00100000";
when "0110" => Return "00110110";
when "0111" => Return "01010101";
when "1000" => Return "10000000";
when "1001" => Return "10101010";
when "1010" => Return "11001010";
when "1011" => Return "11100000";
when "1100" => Return "11110000";
when "1101" => Return "11111010" ;
when "1110" => Return "11111110";
when "1111" => Return "11111111";
end case;
END FUNCTION;
SIGNAL o_h_gho_pix,o_v_gho_pix : type_pix;
SIGNAL o_h_gho_frac,o_v_gho_frac : unsigned(7 DOWNTO 0);
Grabulosaure wrote:coughlanio wrote:I've noticed some severe image retention with the Genesis core using the new scaler on my monitor. It's an LG 27UK850W. I tried to see if I could reproduce the burn-in with the standard Genesis core, but it seems to be exclusive to the new scaler. Speaking with some people, it could be due to weird video timings?
What do you mean by image retention? Do the "triple buffer" option change anything ? The scaler should use the same video modes as Sorgelig's Genesis core.
Users browsing this forum: No registered users and 6 guests