Perfect! I grabbed one of your overlays, removed the inner bezel part, followed your instructions and done. 60 fps. @HyperspaceMadness Is this 4:3 changing the speed due to the rendering of the background picture? Can it be disabled completely?
Are you just wanting black space and a bezel?
I want reflections basically and all the shaders chain and the background and it’s shadow effects coming from an overlay picture as Duimon showed above in the Rayman screenshot. And if it makes everything faster, being able to disable the background picture rendering.
I don’t think it has anything to do with the background image. It is the size of the viewport that matters. Less screen area to render = better performance.
Keep in mind that doing this method makes most of the advanced features of the shader unusable. i.e. you can’t scale anything, do any overscan cropping, or even adjust the screen edge sharpness. You are stuck with the screen placement and size. Any adjustments will have to be done with the image and image source before adjusting the viewport position or screen size. (Scaling is one of the core features.)
These features are the “Mega” in the Mega Bezel shader. But, if you want to use it on lower powered hardware you take what you can get. Personally I just wasn’t planning on using it on anything not high-end but we’ll see how performance goes.
Essentially HSMs shader was intended to take this hard work away from us and make things easy, and it does. For the most part I would say there is a minimum hardware requirement and just live with it. There are systems my HTPC can’t emulate well because of it’s age, I can live with that for now. (On my Android devices I can use overlays but not even a simple crt shader.)
On a side note. I think it is likely that as the shader matures the hardware requirements will only get greater. Along with the shader itself.
I get that and I think it’s awesome to have all those options. However, if the picture I want as a background will remain static and I don’t have the intention to keep changing it, I think just using an overlay does the trick. My notebook has an i7 CPU, more than capable of running practically all systems, but it seems the Nvidia card is getting outdated (GTX 1060, running stuff in 4k) and I lose a frame or two in 16:9 occasionally. I prefer to also have the option to make things move faster while keeping the other stuff the GPU has enough power to deal with.
If this is something that could be used a lot I could make a new “overlay only” preset and make sure it runs as fast as possible.
Also a note, if you use non-integer scale you can use the Overscan cropping stuff and it won’t change the screen size. If you use integer scale the cropping will change the screen size.
It’s almost all because of the smaller viewport and fewer pixels.
Also in general I’ve tried to turn off computation for items as their opacity is 0. But there might be some things which are still being calculated when it seems that they shouldn’t
I guessed you would feel that way. From my experience there seems to be quite a performance drop from even a GTX 1070 to a 1060. Maybe this is something that would be used.
I have yet to try it on an underpowered system
Hi, I was stepping through this thread and noticed your issue @lordmonkus this issue is now fixed, the Stella core resolution is caught and presented in the proper orientation. In addition the auto aspect ratio catches most aspect ratios which should be used.
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. Simply changing the aspect to 4x3 got it up to 55fps!
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)
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 , 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
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.
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? I guess it could even be a single transparent pixel.)
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
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.
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.
How about doing a preset for the lcd-grid also? (I’ve got several LCD graphics on my todo list. )
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
- Different treatments
-
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.
Just to add my part to the updates!
@HyperspaceMadness Thank you so much for implementing this! Testing right now, you made my day