Mega Bezel Reflection Shader! - Feedback and Updates

OK. I did some testing on the overlay method.

On my HTPC (i7 950 @ 2.80GHz GTX 1050 Ti w/ 4GB)

Test was kind of inconclusive. Running Beetle PSX HW and even the notorious Snes9x I got a flat 60.00 fps both with the shader defaults and the Overlay method, although the shader was very slow to load. I am really surprised at how well it ran, I always assumed it would be terrible.

On my lovely wife’s everyday box. (i7 860 @ 1.80GHz GTX 750 Ti w/ 2GB)

At first it seemed inconclusive, 58-60.00fps very little sound stuttering on Snes9x. (But VERY, VERY slow to load.)

Until I loaded HSM’s crt-royal! 28-33fps. :open_mouth: Simply changing the aspect to 4x3 got it up to 55fps! :grin:

It seems this method has value! (Note: Changing the frame opacity and all shadows opacity had no additional benefit. Also, crt-easymode-halation ran the best in all my tests. I am actually blown away at how well it ran on the GTX 750 Ti)

2 Likes

Awesome, thanks for the testing this is really helpful!

Yeah, it’s surprising how much a performance improvement changing the aspect ratio makes. I did a quick calculation and 4:3 is 75% of the pixels as 16:9.

Yeah Royale is the worst offender :stuck_out_tongue:, one reason is because of how many passes it has at a higher res than core, and the other is because the 3D curvature is on by default. If you set the curvature to one of the 2D options it wil be faster, and perhaps this should be changed so it defaults to 2D since there is such a big performance hit (All the other presets are set to 2D by default for this reason).

Usually the way I get the raw performance check on the shader only is to use the image viewer core and then put fast forward on, but checks running real cores is a true test of the end result.

How much faster did you find easymode than guest-dr-venom? I’m thinking for the preset I could make both easymode since it’s quie fast and guest-dr-venom since it’s a great all around shader with lots of options.

The other thing we can do on these presets is set all the images which won’t be used to be low res (All except the tube images) This should speed up load some, I wouldn’t be surprised if the slow load is at least partially caused by large textures. At one point near the beginning of this I tried a 16-bit texture for the background and that took forever to load :wink:

The frame opacity not helping performance doesn’t surprise me because think I took out that optimization. It was when we added in the top image blending options which put the blend under the reflection. This is an optimization that I can put back in for these presets.

3 Likes

fps was the same (a flat 60.00) but it felt more responsive.

BTW, is the flat 60.00 a fps limitation setting anywhere in RA? it just seems odd that it never goes above.

What about the textures being a 320 x 240 fully transparent PNG. You could just use the same texture for any unused one. (overlay_only_dummy_320x240.png? :thinking: I guess it could even be a single transparent pixel.)

2 Likes

The framerate without fast forward is driven by the core, so since snes runs at 60, it will go max 60 fps, to see a higher framerate you need to turn on fast forward. There are some instances where it will cap at 60 because it’s trying to match the monitor framerate, but I think that may only be if you have that setting turned on in the vider/synchronization settings

So to test a shader’s base performance without any interaction with the emulation which runs on the CPU the best thing is to use the imageviewer core load an image, then turn on fast forward (spacebar)

Yeah we could make it really small and use the same one :slight_smile:

2 Likes

@Duimon You may want to try guest-sm as well. That’s super fast

3 Likes

I did made presets (Guest-DrVenom, Guest-SM & Easymode) for reflection-only with the optimizations back in and I did some performance testing. Here are the results for Guest-Sm on an RTX 2060 at 4K

  • Standard Guest SM----------------730 fps
  • Mega Bezel Guest SM------------175 fps
  • Reflection Only ----------------------190 fps
  • Reflection Only 4:3 Rati0--------240 fps

So I think the short story is that running the reflection only at 4:3 is about a 40% faster than the Mega Bezel running at 16:9 aspect.

I should be able to release these soon along with the split screen, but I’ve got an unrelated bug to fix first.

Edit:

One of the good news about these presets is that I didn’t have to take out the MDAPT, GTU or ScaleFX passes for this performance. Obviously if you turn on scalefx the performance will reduce, but I was able to keep it in there as an option.

4 Likes

@HyperspaceMadness

Awesome quick work responding to this request my friend! Fearlessly generous as usual.

Will the TopLayerImage stuff still be in there? I’ve got an idea that may allow me to do night versions of these Overlay-Hybrid graphics, without affecting performance too much.

Edit: I’m thinking the optimizations had at least something to do with the TopLayerImage so that may be a no-go. :wink:

How about doing a preset for the lcd-grid also? (I’ve got several LCD graphics on my todo list. :slightly_smiling_face:)

3 Likes

The Mega Bezel is updated to V 2020-07-11

Changes:

  • Removed Color Temperature and Saturation because there is a bug which is causing wacky colors, like a dark blue turning into bright magenta, I will bring this back later

  • Added Split-Screen Presets

    • Different treatments
      • 0 - None, Leave area in middle black (Actually the negative crop color)
      • 1 - Separate Bezels Each screen gets it’s own curvature and Bezel
      • 2 - “Reflect” in center area
      • 3 - Blend areas together
      • 4 - Blend areas together and Fade out in Middle
      • 5 - Mirrored center image, Fade into Middle
      • 6 - Mirrored center image
  • New Presets for lower power machines to be used with standard retroarch overlays

    • Guest-DrVenom
    • Guest-SM
    • Easymode
    • LCD
  • Auto aspect ratio

    • Fixed Catching Gameboy Aspect Ratio
    • Now all resolutions with height lower than 200 will use the PAR aspect ratio
  • Updated NewPixie to Hunterk’s changes

  • Presets will need to be updated (I think…)

  • Performance of Guest-Venom Preset on Nvidia RTX2060: * 3840x2160 - 160 fps

Still to Come:

  • Geom-Deluxe Version
  • Split screen with small second screen as small on right
  • Split screen fix center area between bezels with tilt
  • Fix garbage pixels in guest-sm
  • Fix issue with fake scanlines turning on/off trigger res
  • Implement Rolling scanlines & interference similar to Newpixie-Crt
  • Add some standard deconvergence which can be used with the rolling scanlines
  • Fix/Add Saturation and Color Temperature back in
  • Brightness balancing the presets so they are consistent, some are currently brighter than others
  • 3D Bezel Bottom Edge
  • Screen Scale Newpixie

Edit:

  • I just realized that choosing par for everything under 200 is probably a bad idea, I think it will mess up the master system, so I think I will be revisiting this.
4 Likes

Caught me just in time :stuck_out_tongue:

3 Likes

Just to add my part to the updates! :blush:

2 Likes

@HyperspaceMadness Thank you so much for implementing this! Testing right now, you made my day :smiley:

2 Likes

@Duimon Thank you! Downloading as well :blush:

2 Likes

Very cool, great too see this awesome shader improving even though I found it near perfect for my tastes already.

3 Likes

Awesome update! I have a question regarding the future of the split-screen feature. Do you plan on integrating it into the shaders or leaving them as a separate preset? Or would that cause a big performance hit for those that do not need it.

The only reason I ask is that I love that I can now use one preset for everything due to the auto aspect ratio feature (best feature ever). It would be neat if there was a way of automatically enabling it when using dual-screen cores.

Of course this is just a very minor thing, I am not sure if anyone else cares about this.

2 Likes

I wish I could just add it to all presets, then I would avoid adding even more presets. But right now I was thinking to keep it separate because it’s a 25% performance hit even when the feature’s not being used, but that’s the only reason I’d keep it separate.

I agree this would be a very cool option, I think it might be possible by checking if the resolution matches the known dual screen setups, and we’d need a parameter to control this auto feature. So if we did it this way you would use the split screen preset with the auto split screen option on and it would only turn on when a known dual screen console resolution is found. In this situation maybe adding super on the end of the preset name instead of split screen would be better.

Adding extra parameters should stop being a barrier with the next release of retroarch which includes my fix which bumps up max parameters to 256, max passes to 64 & max textures to 16. When this is released I’ll start using the additional parameters and users will need to update their retroarch.

1 Like

I would like to share some screenshots of the hsm-mega-bezel-crt-guest-sm preset with the flycast core. Those games with 3d assets and low res 2d assets are a pain for crt shaders, but with the recents updates of HSM we can have some good results.

1 Like

Oooh I forgot all about the limit on shader passes. Yes I can definitely see that being an issue.

Thanks for humoring the idea, this shader is already awesome. I am hoping to upgrade to a 4k screen to fully take advantage of it. I’ve been stuck using the same monitor(zr30w) for 10 years :stuck_out_tongue:

1 Like

Yeah the 4k really helps kill most of the moire that is often seen with curvature. Royal also looks substantially better in 4k.

This is sort of off-topic. I have been eyeing one of the LG 4k OLED and I am wondering if you have any experience with how CRT shaders look on an OLED tv. I would imagine scanlines would look great with true blacks.

1 Like

@c9f5fdda06 (how do you pronounce that again? ) has an oled so he should be able to give us his opinion.

This is actually my long term plan to get the 48inch lg oled for a vertical setup.