Kronos very poor compatibility and peformance

I took some (poor) closeups of Mega Man X4 with various settings (blended mesh OFF).

240p unshaded:

240noshad

240p with my personal shader preset (GTU blur + themaister’s svideo): 240shad

480p downscaled no shader:

480noshad

480p downscaled personal shader preset: 480shad

Please excuse any reflections. I think I can see what you’re talking about, although IRL I didn’t really notice and I can’t properly account for the distance of the camera to the screen. In any case I much prefer the shaded 480p version. I must say I didn’t expect the resolution change to affect the spotlights in that manner!

I don’t think many other systems used that kind of fake transparency. Anyway, yeah, it’s highly sensitive to resolution, and i wouldn’t recommend running the core without integer scaling either

The raw rendering actually looks like this : Mega Man X4 (USA)-200430-173435

@papermanzero i don’t know when it’ll hit the buildbot, but the issue plaguing performances on your computer has probably been fixed : a regression in the threading code performance on windows had been introduced around 2 weeks ago, it should help @jakebot too.

2 Likes

Will check with newest build

There’s something strange in kronos, using cgwg’s crt-geom corner function it draws am horizontal black stripe in the middle. It fixes with a coord.y *= global.OriginalSize.y / global.SourceSize.y - 1.; but it only happens in this core so something might be off. It also renders my glass shader reflection inverted vertically.

@dogway I don’t know much about retroarch shaders, what is the exact shader you are using ? I tried loading the “crt-geom.slangp” preset and didn’t encounter that issue. Also, is that happening on any game and what are your settings exactly ?

Must be something I’m not doing right, I will try to present it in a more graphic way with screenshots since it also happens in parallel.

So I nailed it down to the most basic. Adding the next code to stock.slang, it renders a greyscale gradient in one direction in all cores, but in inverted direction in Kronos, so it looks like texture coordinates are inverted. Now crt-geom and others work right, so I don’t know if I’m missing something and @hunterk can point me in the right direction.

vec2 vpos = vTexCoord * (params.OriginalSize.xy / params.SourceSize.xy);
FragColor = vec4(vec3(vpos.y), 1.0);

I’ve been putting off bringing up this issue for a long time for some reason, but here goes:

A while back a (for me) long-awaited feature was added to the Kronos core, namely downsampling to the original resolution when playing at increased internal resolutions. My hope was that this feature would allow me to let Switchres handle resolution switching at 15khz rates while enjoying clean anti-alias on 3D assets. Unfortunately, it seems Switchres doesn’t recognize the resolutions at all. Any idea what’s up?

For information, I had bad performance using bin/cue with Nvidia on Linux. I switch to chd and now no more stuttering.

Maybe, I had a bad dump.