Transparent renders

Материал из JD Edwards E1
Перейти к навигации Перейти к поиску

There have been fewer individual changes recently transparent renders but the changes made are significant! You will never agree to miss it.

Poor melia up there.

Project y.F.C. 1.90!

Blinkhawk showed up one weekend and asked, "would you like to test 60% performance improvement and near-perfect rendering with normal gpu precision?" And the process is exactly what our company did.

A more complete name for such a change would be "overwrite buffer cache overwrite", perhaps rbcr for short? In fact, blinkhawk rewrote most of the old buffer cache changes made by rodrigo 2 years ago to accommodate new requirements from popular proposals, and major issues found in optimal bcr.

Part of the work. Also includes:

- Allowing fence validation and storing asynchronous loads in a private thread- changing the precision control structure by skipping fence synchronization between host and guest and stopping conditional loading on the host. Rendering for uninterrupted gpu accuracy- improved consistency of asynchronous query cache loads

The results are amazing. Most games that used to require the high precision of a gpu for legal rendering can now easily run as usual. Among other things, any of this miracle reduces bandwidth usage and increases performance by up to 87% for extensive (roughly fifty percent from inexpensive apu to high beasts.

Here is a modest list. List of additions:

- As stated earlier, a whole range of poker, they required flawless gpu filigree for visual fidelity, now deal with good gpu fidelity with the least sacrifice.- Particles and lighting/character shading. Pokémon sword & shield corrected normal gpu precision performance increased by 40% with normal gpu precision- models (e.G. Bowwow) and particle rendering corrected for normal gpu precision in the legend of zelda: link's awakening. On normal fidelity with correct rendering is now 70% higher than before.- Lighting in diablo ii: resurrected has been fixed and will no longer flicker.- Lighting and shadows in luigi's mansion 3 will no longer flicker randomly. - Pokémon photo detection and new pokémon snap data have been fixed at normal gpu accuracy. This results in up to a 50% performance improvement with photo detection running.Kirby and the vertex explosions, lighting, and particles in kirby and the forgotten earth have been fixed with normal gpu accuracy. This results in a performance increase of up to 40% when rendering accurately with normal fidelity.- Fixed red lights on some machines in xenoblade chronicles 2.Fire emblem warriors has been accurately fixed and no longer requires a workaround.Monster hunter rise now accurately renders at normal gpu precision resulting in up to a 50% performance increase (however, please note that updates after 3.0.0 still have issues and require more work).- Vertex explosions in persona 5 royal games no longer run at normal gpu precision resulting in up to 30% performance improvement.Atelier ryza series games now display correctly.- The pessimistic flash option in advanced graphics settings no longer works. Was required in any of the affected games and we have now removed it.Vertex explosions are no longer present in mortal kombat 11.Nier:automata the end of yorha edition now renders correctly.Bayonetta 3 is not present for proper rendering high gpu precision required.Splatoon 2 ink physics works correctly on amd gpus when using high gpu precision.- Particles in the legend of zelda: breath of the wild have been fixed, resulting in 40% more high performance and rendering fidelity with normal gpu fidelity.- Tree flickering in the legend of zelda: breath of the wild has been fixed for all gpu fidelity settings.- And much, much more!

You don't need to enable any options to take advantage of all these benefits, just switch gpu precision to normal if you haven't already. What are you waiting for?

Here are the stats for some of the most played games. We compared high gpu accuracy in mainline 1407 and normal gpu accuracy in mainline 1421.All tests were done with 2x resolution scaling and using mods to disable dynamic resolution whenever possible.

Hardware manufacturers are crying. Such a free performance boost

And then we have these four high fps teams. That's reason enough to ask the modding community to start releasing mods at 240fps!

When you need to run so fast on a previous generation cpu that a second graph is needed

Expect even more performance with the zen 4 3d v-cache chip. For example, in the same test point the breath of the wild 7900x without 3d gets 90fps.

Your writer's pc looks like a snail compared to the current monsters on sale...

Other graphic changes

Citra-legend gpucode helped us with the presentation. Presentation is the last step in most graphic programs - the process of bringing the output to the screen.

Gpucode job moves swap chain operations to a separate thread to avoid stopping the main gpu thread. This improves performance in more demanding games and on weaker hardware, and in many cases can make the difference between getting 60fps and getting a smooth 60fps.

However, frame time can also make the difference less consistent, so we disabled it by default to allow for further testing. We need to determine which systems and games will bring the most value. For those who want to give it a try, this toggle is available in emulation > customize... > graphics > advanced > enable asynchronous presentation (vulkan only).

Share your experience with us!

Vonchenplus continues to work on getting the code up to par with what nvidia released in their latest documentation.

You may remember wollnashorn from their role in the vulkan pipelined cache overhaul . Wollnashorn now presents us with a technique to bypass hardware limitations to ensure the legend of zelda: breath of the wild renders accurately on non-nvidia hardware.

The edge of objects, especially blades of grass, had sharp black borders on amd and intel gpus. The issue occurred regardless of the driver being used, so it was clearly a hardware limitation and incompatibility with what the game is expecting. The legend of zelda: breath of the wild uses a technique called deferred rendering - in this particular case, shadows are rendered at half resolution. The four pixels of the full resolution depth texture are sampled at the same time as the call to texturegather. The texturegather function allows you to work with normalized floating point texture coordinates, so each fragment is always on the edge of the four selected pixels.

Four special pixels

Now, texturegather uses floating point numbers, and each gpu design will have different rounding precision. Also, thanks to a post on nathan reed's blog, we know that the integer coordinates of a pixel on a texture are calculated by the gpu after converting a floating point number to a fixed point number.

With floating point conversions, you you can tell where it's going. If the user's gpu does not use the same rounding precision as the nintendo switch, different pixels may be selected. So only nvidia gpus got the four correct pixels provided by the game.

How did wollnashorn solve this problem? With a clever little trick, of course. Adding a very small (1/512) sub-pixel offset to the sample coordinates is enough to skew the rounding. This required code changes to the spir-v and glsl backends, changing the way operations are currently handled only on amd and intel hardware, with the ability to enforce on any other future hardware that might need it, such as a fruit company.

Here's the final result:

It's funny how we ended up running into the same problems shomu had (the legend of zelda: breath of the wild)

We should mention that this does not fix a very similar black line issue that occurs when using higher than default anisotropic filtering values with amd and intel gpus. This is a separate issue, and we recommend red and blue team users to at least set the per-game setting for the legend of zelda: breath of the wild to only set it to default. The game doesn't benefit from higher values anyway, as its terrain textures don't seem to take advantage of it.

It's a clean look all around (the legend of zelda: breath of the wild)

Linux got its fair share of love thanks to byte[].

First, he fixed the initialization of the vulkan exchange chain on wayland. , Helping nvidia linux users run their games. As some of you may know, nvidia has historically been very stubborn about supporting wayland, and it doesn't help that most wayland linkers are also very stubborn in their own right. The year of the linux desktop is always just around the corner…

Secondly, it fixed a crash that occurred with flatpak users trying to play bayonetta 3. The array could go out of bounds for access intended for size estimates, which leads to "nasty things". A small adjustment and the problem is gone. Good pull request number.

By the way, about going out of range. Maid found an interesting case that occurs when sampling angles due to the previously added offset. Failure to take this offset into account resulted in another out-of-bounds situation during 2d texture transfer.

Fixing this special case resolved issues with depth of field rendering in kirby star allies.

Poyo! (Kirby star allies)

Blinkhawk is still on fire and there is still a lot of work to be done. For something lightweight, he decided to refactor much of accelerate dma to instead load textures via the texture cache. The result is a return to the performance of pokémon sword & shield and hyrule warriors: age of calamity that was before the old yfc 1.75 changes. Add up the benefits of y.F.C 1.90 and you have a low end system winner!

We have many more changes implemented by blinkhawk, but they didn't make it to the deadline for a progress report, so we'll mention about them next month.

Glossary of general changes and tweaks

We have been asked by the modding community to allow large texture mods. The old limit of 6 gb wasn't enough, so byte[] extended it to support a custom 8 gb configuration instead, giving almost all of that to the emulated program.

However, this had unforeseen consequences.

We have found that users like to enable settings without knowing what they are doing. Shocking, isn't it?

Having much more memory available than a typical development console caused problems. For example, after receiving several reports of pokémon not respawning in pokémon scarlet & violet after a few minutes of play, we have narrowed down the changes to users with this setting enabled.

However, this option is only for mods with very large textures, and should not be enabled if you are not using such a mod. Unfortunately it was on the first page of yuzu settings when it opened, so it was a very visible setting. In addition, we found several tutorials on youtube that incorrectly suggested that this could improve performance and stability, and users followed this. This would waste 4 gb of extra ram and could potentially cause problems in games.

To prevent this, we recommend reading our new settings glossary, which, along with our recommended settings pages, should to help people understand what each setting does and what it is recommended to change.

In addition to addressing an issue for users who do not check our official channels, the byte[] setting has been moved to the bottom of the system tab ' and renamed it, ensuring that no previous configuration file would enable it again without user intervention. If you have a real need for an extended memory structure, be sure to turn it back on manually. Or don't, we won't judge you...Too much.

You have been moved to system preferences

Users reported that the igs classic arcade collection was not playable. Vonchenplus investigated the cause and found the cause in our sound emulation. Apparently, the game doesn't implement its audio code very well on the switch and cannot initialize a new audio output session, which should return an error. Correctly returning this error as a result is enough to make the game work.

Nothing beats the classic (igs classic arcade collection)

One of the options made by our ldn users the ability to create private rooms is available, giving hosts multiple options to customize their servers however they want.

Twitchax knows that certain server hosts, such as fly.Io, require a custom anchor address. They have implemented the functionality and users can now pass the --bind-address argument to the room configuration. Thank you!

Continuing his work on improving the accuracy of cpu timings, morph fixed the confusion between raw cpu frequency and timer counter frequency, or cntfrq. The difference between the two is that cntfrq reports the system clock frequency, not the processor frequency. By fixing this, he also reduced the time it takes to measure time information by about 60%.

What does this mean for the user? Nice performance boost of 1-7%.

Input changes

Also known as the german77 section.

How you interact with a game can be more important than even graphics or sound. After all, that's what makes it different from a cg animated film. As usual, our dear kraken is working on further improving the yuzu input emulation.

Most of the work of writing an emulator is reverse engineering, so it's working on making the nfc service match what the switch does internally — in this case, implementing all the remaining missing interfaces, placing them at the same level as the real console.

The next change is a simple revelation that came from the work done on tas. If you implement a virtual controller, it won't need to adjust range and deadzone as it will be almost perfect (sorry not sorry).

But german77 didn't do all the work, v1993 caught a nasty little bug that slipped by. Motion emulation with mouse movement is handled by a 3d vector (x, y, z). Yes, unexpected math lesson, deal with it. Anyway, yuzu did renders free this:

(X, y, z) = (x, y, z) + (1, 2, z)

Which results in:

(X + 1, y + 2, 2z)

The z component was doubled by mistake!

The solution is:

(X, y, z) = (x, y, z) + (1, 2, 0)

Which gives us:

(X + 1, y + 2, z)

And now everything is fine with the world. This should improve the quality of mouse movement for those who prefer fps with keyboard and mouse. Or just want to torture yourself.

Hardware section

A recurring problem that users face when running modern emulators that use vulkan is the lack of a way to get help. Feedback in case of program failure. Vulkan is very picky. Any wrong step in the middle and it will refuse to run and any vulkan layer program can cause this. Everything from outdated screen recorders to mod managers, performance overlays, and even rgb software that motherboard manufacturers refer to as a crash code. Of particular nuisance is the epic game store overlay, which has been reported to cause severe performance issues.

To some extent, yuzu can detect these issues and switch to opengl to avoid them, but it doesn't so. Don't tell the user what the problem is. We recently learned about a nice little program called vkdiag that the rpcs3 community has been using to diagnose these problems for some time now. You can find the latest version here.

This program lists all relevant components and layers that affect vulkan rendering and warns of potential problems in any of them.

It's already been field-tested, with both obsolete drivers and broken layers in sight

We've started using it in our support channels with amazing success, and we encourage self-serving users to continue doing so in their toolbox. You never know when that obs setup you forgot to update might cause problems, or when the rgb software decides to go rogue.

Nvidia enjoying auto hdr

Here's great news for windows 11 users using hdr displays. Github user svonolfen found an interesting way to get auto hdr to work with nvidia gpus in our bug tracker some time ago. Here is the link. By renaming yuzu to "cemu" and doing some extra steps, auto hdr will suddenly work.

Ignore the spanish

Cemu really gets privileges. This is only available for the nvidia drivers for windows because, at least for now, only the nvidia control panel offers the option to force the dxgi exchange chain, which effectively makes the vulkan program appear on the screen as a direct3d program. This has several advantages: auto hdr works, greatly improving dynamic range, borderless optimization is applied to the user experience, input lag and frame sync are improved, and the g-sync/freesync issue is resolved. It has a drawback worth mentioning: it can be up to 5% slower than a regular vulkan presentation.

Don't forget to set your nvidia control panel accordingly!

While this fun renaming works fine, we've also heard from windows insider users that future versions of the xbox game bar app will allow yuzu to work with auto hdr without any renaming. This will most likely require newer nvidia drivers.

If you have an hdr compatible monitor and want to compare the results, here is a .Jxr hdr snapshot that the photo viewer can use windows 11 by default. Open and a comparable sdr capture in .Png format. Of course, you'll need to enable hdr output in both your display settings and windows 11 settings. Note the difference in the sky and lamps. Tone mapping isn't perfect, but we'll never get a switch game with native hdr anyway.

Your writer's simple hdr400 display with no dimming zones is enough to notice the benefits, so here's your reason to convince your parents/wife to buy that oled monitor you've been eyeing for weeks. Zelda. In hdr.

The vulkan extension can be implemented in yuzu to get global support for any gpu. You can be sure that i will be picking on our gpu developers until it is added.

Amd delivers on its promises

Last month, we mentioned that amd has introduced a regression that was causing graphical corruption and crashes in some games.

We are pleased to announce that as of driver version 23.4.2 and later, the issue has been resolved for vega and later, which allows radeon windows users to take full advantage of the new vulkan extensions supported by the latest drivers, minimizing shader build stuttering. As amd promised, except…

Polaris cards (rx 400/500 series) may still experience instability in some rare cases, but it shouldn't take long to fix. In the meantime, polaris users should stick with driver 23.3.1 unless they want results like this:

Your entire desktop looks like this

On. Another topic we've reported to amd about what we suspect is the cause of the pentelas region peak explosions in xenoblade chronicles 3, which are also now affecting the starting regions in its new future redeemed expansion.

It's water that is the mother of all vertex explosions (xenoblade chronicles 3)

Since the issue affects both official amd and mesa drivers indiscriminately, we suspect this is a hardware limitation - possibly lack of support for depth formats d24 which are used in many games (including xenoblade games) and are supported by both nvidia and intel.

This is what the hardware limitation looks like

Intel…

As we reported earlier, the intel windows vulkan drivers are not stable. The spir-v compiler (the part that handles vulkan pipelined shaders) can crash with compute shaders and some specific shader instructions. The number of more than 5 cases in the switch block or more than 5 if-else blocks with the same condition. Perhaps the optimization went wrong?

If you uncomment the last two cases, the driver will crash

We reported the crash to intel six months ago, and their response this month was:

Thank you for reporting this issue. Our priority is to target the most popular games and applications in order to focus our efforts on providing high quality and stable experience for the widest range of users. We will continue to improve the performance and compatibility of our software throughout 2023 and beyond.

So, even after six months of waiting with a test case provided, an explanation of the reason, and even after pointing out where in the driver it fails , intel can't find time to fix the problem. This is some kind of twisted joke. By comparison, when you do it with nvidia, they hire you.

We have no choice but to mitigate the crashes as much as we can. To do this, morph has completely disabled compute shaders for the intel windows drivers so that games like the legend of zelda: breath of the wild can still load even if they experience gameplay issues as a result.

It's not enough to solve all crashes. Some games like xenoblade chronicles 3 still crash the shader compiler. We haven't diagnosed this yet, but we believe it's probably closely related to the same problem we've already reported.

Disabling compute shaders causes this nice side effect in some games, such as as super smash bros.Ultimate:

This is what happens when we are forced to remove the entire pipeline stage, intel (super smash bros. Ultimate)

For those who prefer proper rendering on intel drivers for windows, can tolerate occasional crashes, and doesn't want to just use the actual working linux mesa drivers, mainline 1414 is currently the last version to support compute shaders. We're working on adding a toggle that can be customized for each game.

But wait, that's not all, the fun doesn't end there. Reddit users have found that 12th and 13th generation intel processors running windows 11 have noticeably lower frame rates than the same hardware running windows 10.

What on this will tell ea

So if you notice stuttering while playing the game, the solution can be quite simple: do a clean install of windows 10!

Future projects

So, the release of project y.F.C paid off in part. Blinkhawk is working on the final part, which includes a restructuring of gpu precision settings and a few other surprises. Stay tuned.

Very soon you will know the news about project lime!

That's it! Thanks for reading to the end, nothing makes us happier.

Please support us on patreon! If you want to contribute to this project, visit our github!