HSM Mega Bezel Reflection Shader! - Feedback and Updates

FWIW once the STD GDV Mini preset loaded, it did run at 60fps. Only tried in Nestopia so far. That said, just being able to run it isn’t the whole ballgame for me. For a dedicated TV box I just can’t have three minute load times.

I’ll report back here if I make any gains.

Also I think this cpu is oem locked and might be physically unreplaceable. This isn’t a terrible emulation box. I could keep it and have a fully functional setup including 720p GC and a mix of native - 1080p PCSX2. I can run all 1990s era cores in RA with decent shaders and utilize overlays to fill out the 4:3 black bars… But these Mega Bezel shaders give a legit feeling of an old TV living inside your new TV. These are the most immersive shaders I’ve ever seen by far.

2 Likes

I wonder if there’s anything else to speed that phase up. I’m going to download the AMD drivers and see if it moves things along.

3 Likes

Does your bios support both “auto” and manual vram size? If so you can try pre-allocating more ram.

3 Likes

I tested out the Bezel on my Lenovo M92p it took 5 minutes to swap the POTATO version. I think with APUs, at least older ones, overlays are the best option.

1 Like

I did two things, and saw major improvements.

1 - I installed the Ryzen Adrenaline software. I did this as the easiest way to ensure I had the latest Vulkan drivers. 2. I went into the BIOS and changed the UMA Framebuffer Size setting. There were 3 options: Auto, 256MB, and 512MB. I chose 512.

I figured, I knew this was a Vulkan framebuffer issue… and here’s a setting in the BIOS about framebuffers. I was wondering - was the computer choking trying to set up the memory to establish the framebuffer necessary for the shader, and would it be quicker if I just specified a particular amount of memory. I also wondered - was the “auto” setting possibly just establishing too little memory.

Well, I loaded STD GDV Mini preset again, and it loaded in 6.3 seconds!!! There are some (rare) occasional slowdowns during gameplay, but so far on NES SMB1 and Adventure Island, and also on Genesis Sonic 2, and SNES DKC I’m at 59.49 FPS, more or less locked!

I also went into the shader parameters and turned off curvature. It’s not to my liking anyhow (prefer the straight bezel look), and I wondered how much overhead was going to that. I might go through the parameters and see what else I can turn off.

I also tested PCSX2 with the new UMA setting and Adrenaline install. Unclear to me if there are gains there. Maybe 1 or 2 FPS. Maybe placebo.

Temperatures seem OK (60C) so far.

Will of course do more testing this weekend, and report back.

4 Likes

Excellent! Glad you made some progress! Yes curvature does use some extra GPU processing power. I was going to suggest you try my shader preset pack but most of my presets use the Advance Mega Bezel Base Presets so they may not be of use. I do have some presets that use the Standard Mega Bezel Presets but they aren’t really optimized for 1080p. I guess that gives me something else to tinker with in the near future. In the meantime you can probably try these settings.

#reference "shaders_slang/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD__GDV-MINI.slangp"

HSM_CURVATURE_MODE = "0.000000"
HSM_INT_SCALE_MODE = "1.000000"


scangammaoffset = "2.500000"

g_hue_degrees = "-7.000000"
wp_temperature = "6500.000000"



GDV_DECONVERGENCE_ON = "0.000000"



g_sat = "0.020000"



post_br = "1.310000"

h_sharp = "5.200000"

GAMMA_INPUT = "2.100000"
gamma_out = "2.500000"


bloom = "0.150000"
halation = "0.000000"



scan_falloff = "0.250000"


g_crtgamut = "1.000000"


scans = "0.000000"
GDV_NOISE_ON = "1.000000"

glow = "0.000000"

masksize = "2.000000"



gsl = "2.000000"
scanline1 = "9.000000"
scanline2 = "9.000000"
beam_min = "1.350000"
beam_max = "1.300000"

shadowMask = "6.000000"
maskstr = "1.000000"


addnoised = "0.180000"
noiseresd = "1.000000"

Or these:

#reference "shaders_slang/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__5__POTATO__GDV.slangp"


HSM_CURVATURE_MODE = "0.000000"
HSM_INT_SCALE_MODE = "1.000000"

scangammaoffset = "2.500000"

g_hue_degrees = "-7.000000"
wp_temperature = "6500.000000"



GDV_DECONVERGENCE_ON = "0.000000"



g_sat = "0.020000"



post_br = "1.310000"

h_sharp = "5.200000"

GAMMA_INPUT = "2.100000"
gamma_out = "2.500000"


bloom = "0.150000"
halation = "0.000000"



scan_falloff = "0.250000"


g_crtgamut = "1.000000"


scans = "0.000000"
GDV_NOISE_ON = "1.000000"

glow = "0.000000"

masksize = "1.000000"



gsl = "2.000000"
scanline1 = "9.000000"
scanline2 = "9.000000"
beam_min = "1.350000"
beam_max = "1.300000"

shadowMask = "6.000000"
maskstr = "1.000000"


addnoised = "0.180000"
noiseresd = "1.000000"

I will check those settings out in the STD GDV Mini preset this weekend.

Will these take the existing STD GDV Mini preset and basically remove some elements, while retaining the reflections on the bezel, but making the overall shader less processor heavy? Or will these rather, make the GDV Mini preset look more like the CyberLab preset?

2 Likes

I have never tested these presets so let’s hope they don’t blow up your computer. I’ve only used those settings on MBZ_3_STD_GDV so they may or may not translate directly to GDV-Mini. Perhaps @HyperspaceMadness or @DariusG might be able to give some more insight as to what to expect?

They don’t do anything too fancy, just mainly mask and scanline tweaks.

They need to be saved as slangp files in the RetroArch/Shaders folder by the way.

GDV-MINI uses a different crt shader than GDV which is what is in @Cyber’s presets. The parameter values for the crt portion are not really transferrable.

Correction, looking at the list of presets it looks like 80% of them will transfer since most are not actually the crt parameters

2 Likes

You bet GDV mini is super fast, faster than easymode (and better looking). I know because I did the tweaking for it to be fast. Lol. Definitely doable on a Vega 11(?) even on single channel Ram.

5 Likes

There is no switch in code if curvature is 0.0 to gain any speed, the shader will still compute the curvature function. So it will run the same with or without.

4 Likes

This will run a little different in the Mega Bezel vs DariusG’s standalone version of GDV-MINI.

The version in the Mega Bezel uses a different curvature (The same curvature as in all the mega bezel presets) and I think should not calculate if it is turned off, but I’d have to I’ll have to check the code to know for sure.

There might be some performance improvement, but I’m not sure if it will be a noticeable difference or not.

GDV-MINI is really fast, looks really good and responds well with the screen at different sizes, thanks for the great work on this shader @DariusG!

4 Likes

Okay, so I finally tested these settings. Both the GDV-Mini and the Potato versions. The settings translate almost perfectly to GDV-Mini while Potato doesn’t really look as good as there are some colour and sharpness/resolution differences.

@DariusG I’m blown away by GDV-Mini! In conjunction with my Blargg_NTSC_Turbo_Duo_SNES_PSX_Composite_CyberLab_Special_Edition.filt video filter it’s even more amazing!

There’s just one issue I noticed though. There’s a strange darkening of the image in the right hand third of the viewport.

Please check it out because I definitely would like to make some presets based on this awesomely efficient shader!

It’s present both with or without my video filter. Here are my Shader Preset settings:

#reference "shaders_slang/bezel/Mega_Bezel/Presets/Base_CRT_Presets/MBZ__3__STD__GDV-MINI.slangp"

HSM_CURVATURE_MODE = "0.000000"
HSM_INT_SCALE_MODE = "1.000000"


scangammaoffset = "2.500000"

g_hue_degrees = "-7.000000"
wp_temperature = "6500.000000"



GDV_DECONVERGENCE_ON = "0.000000"



g_sat = "0.020000"



post_br = "1.310000"

h_sharp = "5.200000"

GAMMA_INPUT = "2.100000"
gamma_out = "2.500000"


bloom = "0.150000"
halation = "0.000000"



scan_falloff = "0.250000"


g_crtgamut = "1.000000"


scans = "0.000000"
GDV_NOISE_ON = "1.000000"

glow = "0.000000"

masksize = "2.000000"



gsl = "2.000000"
scanline1 = "9.000000"
scanline2 = "9.000000"
beam_min = "1.350000"
beam_max = "1.300000"

shadowMask = "6.000000"
maskstr = "1.000000"


addnoised = "0.180000"
noiseresd = "1.000000"

@HyperspaceMadness and I have discussed this… he thinks it is a mask math rounding error. (It is on the “bugs to be squashed” list. :grin:)

I assume you are talking about the dark line at ~66.66666% from the left. If you look really close you can see that the mask is off right there… we have three squashed together.

2 Likes

It isn’t just a line. It starts at that point and goes all the way to the right of the screen. It could really be affecting the mask as that’s why it appears as a line in the all white screenshot but an entire area of darkened/off colour in the coloured images. Even if the mask order is incorrect they’ll still mix to create white but if talking about other colours, incorrect order will cause them to be off.

I’ve only noticed this with GDV-Mini so far though.

Did I say mask order anywhere in my post?

Really dude… did you take a close look like I mentioned?

You can see the difference clearly by measuring the distance between magenta lines.

No, you didn’t say mask order anywhere in your post.

No, I didn’t take a close look like you mentioned.

Thanks, I’m seeing the difference clearly by measuring the distance between magenta lines.

On my TV when viewing the screenshots fullscreen I’m seeing the entire area from the left of the “line” being affected.

On my cellphone, it mostly appears as just a line but depending on the zoom level it appears as an area.

I was merely hypothesizing that this could be due to the change in the regularity/consistency of the mask pattern as a possible explanation as to why I wasn’t seeing it in the white screenshot but was clearly seeing the area in the coloured screenshots.

I used the term mask order but I guess I was thinking aloud, perhaps the term order might also mean a change in the order of the phosphors hence the confusion.

I wanted to reiterate what I saw and experienced not to take away from what you saw and experienced as well as documented but to make sure that what I saw and experienced was documented and remained acknowledged.

I don’t understand the disagreement.

I have taken a crop of the screenshot at a zoom level that I was able to see the area and not just the line better on my cellphone screen.

It’s not a disagreement… I was offended.

When you post things like that you come across like you’re trying to school a student… who isn’t very bright.

I don’t need the lecture.

1 Like

Two questions -

  1. when you say try these settings, you mean to make a copy of the original STD GDV Mini preset, and, in the new copy of the preset, update the original values to those you’ve provided here…then load the new preset. Basically create a variant on the original file.

  2. Do the changes you are suggesting provide aesthetic changes only or should they also provided performance gains?

1 Like

I meant no offense. I made my post with regard to what I was seeing. You appeared to link it to what you were seeing and spoke about previously. I reiterated what I was seeing with a focus on the dark area and not just the line because I realized that even though in practice and in full screen it might have been obvious that it appeared that way to me using my presets and settings, it may not be so obvious to someone else who’s not using these settings and zoom levels.

Even on my phone when viewing the post it only looks like a line depending on the zoom. That doesn’t take away from, in any way, your assessment, experience or account of what you have seen and reported.

My original post regarding the matter was specifically directed at @HyperspaceMadness and @DariusG for their investigation.

How could you even fathom that I would question or knowingly insult your intelligence. Nah man. That’s not how I see you at all. I have utmost respect for you, your talent, your passion and your work.

Sorry to say this but this is subject to your personal interpretation. I guess it’s something about the way I communicate that rubs some folks the wrong way sometimes. Maybe it’s cultural differences in the way I express myself and what I’m used to versus what others are accustomed to or something like that.

I most definitely didn’t try to lecture one who I consider a professor. My post as well as my reinforcement in my reply to your post was so that the totality of what I saw could have been conveyed to @HyperspaceMadness and @DariusG. It wasn’t really about you, just didn’t want them to miss what I saw because it really wasn’t just the line.