#Bevy 0.17 Release Crew

1 messages Β· Page 2 of 1

edgy jetty
dry rune
#

Yeah I don't want to delay indefinitely either. I'd like 0.18 to be our "everything comes together" release for UI stuff

#

I'd love to have more attention to give πŸ™‚

edgy jetty
edgy jetty
#

It sucks, but it's OS + hardware specific, I can't reproduce it, no one has any idea of what's going on and how to fix it, and reverting it introduces a different bug

final zinc
#

Is our default to enable window resizing or not?

edgy jetty
final zinc
#

I guess I'm a bit nervous about the fact that this is not a case of "oh this weird feature we have is not universally supported", rather it's a case of "any Bevy app will crash for certain Windows users when they interact with it in a certain way"

#

Maybe it should be disabled by default for Windows?

#

Hard to tell when we don't know how many people are affected

edgy jetty
#

I have no idea how to dig deeper to get an error message or something to start debugging this, even if we did have a reproduction. It's just a silent hang

final zinc
#

I don't think so

#

but I didn't try

edgy jetty
final zinc
#

Wanna PR it?

#

Doubt it's "breaking" behavior really

#

As you said, it's not very useful for games

#

As expected, I cannot reproduce it either

opaque magnet
#

Wait wait. Are we talking about disabling window resizing? That's useful for editors.

final zinc
#

note the white thingy that happens in the first half of the video but not the second

#

Maybe that's a clue??? πŸ™ˆ

edgy jetty
final zinc
edgy jetty
#

It will continue to work / not work

#

Independent of this bug, I think that having window resizing enabled by default is the wrong default for a game engine

opaque magnet
edgy jetty
#

And many more of them do not

final zinc
#

(I really don't know, I play almost exclusively in fullscreen)

edgy jetty
#

My default expectation for a game is "fixed resolution, selectable by settings menu"

#

And almost always fixed aspect ratio

opaque magnet
#

More accurately, if I want to play in fullscreen I'll play on xbox.

#

For my laptop I tend to play in a window.

final zinc
#

Since I'm on my gaming setup right now anyways, lemme do a quick survey

opaque magnet
#

If I remember correctly, World of Warcraft also lets you play in a resizable window. And Elder Scrolls Online I think.

eternal elbow
#

Especially for testing UI and how it adapts to resizing, I use it very frequently.

#

Windowed mode is for me the default while developing (with resizing)

opaque magnet
#

Part of the issue for me is that I tend to play/work while sitting on the couch. I have a wide-screen monitor in my office but I haven't used it in 6 months.

final zinc
#

Allows resize:

  • Ultrakill

Does not allow resize:

  • Quake
  • RoR2
  • Gloomwood
  • Dying Light
  • Subnautica
  • Half Life 2

Only allows fullscreen:

  • Return of the Obra Dinh
  • Mirror's Edge
  • System Shock 2 (and all other Dark Engine titles as far as I can tell)
#

This is some random stuff I happened to play recently

#

Obviously my list is extremely biased, you won't find modern AAA games in there πŸ˜›

#

And this is a descriptive list, not a prescriptive list

#

Maybe allowing resize should be the default and Bevy has the power to have a saner config than other engines

#

But at least for the stuff I personally play, it looks like resizing is rare

opaque magnet
opaque magnet
#

I doubt there are too many solitaire games which run in fullscreen πŸ™‚

#

MMORPGs are a special case, because (a) you tend to be online for many hours at a time, and (b) you often want to run a VoIP app in the background.

final zinc
#

-# And also sports a gigantic "Play Ad Free!!!" button. Microsoft, I already bought your OS. These games were trivial for you to make. You already had a perfectly good FREE implementation in Windows XP. Why? Just Why?!

opaque magnet
#

Also, there's a usage pattern with MMORPGs where, as you progress through the content and the game becomes increasingly grindy, people log on just to chat with their guildmates while doing other stuff.

final zinc
opaque magnet
final zinc
#

You also get these giant XBOX achievement popups while playing solitaire

#

Sorry for the off-topic, but I had to share this

opaque magnet
final zinc
opaque magnet
#

Choose life!

final zinc
#

Wow, the world sure has changed since my days as a little kid playing Pinball on Windows XP bavy

#

Okay, enough

dull schooner
#

On the topic of resizing by default, I'm pretty sure SDL2 doesn't let you resize by default and you need to enable it

#

So at least there's precedent to making it opt in

#

winit defaults to true

opaque magnet
#

If you are going to do that, you should at least make the window size default to max

dull schooner
#

Same for raylib, it's off by default and you need to enable it

opaque magnet
#

(Not full-screen, I mean max size with title bar showing)

dull schooner
#

But SDL2 and raylib have a mandatory window size, it just can't be resized by default, most example setup I've seen do enable it though

opaque magnet
dull schooner
#

I'm not sure it's a good idea to disable it for everyone just because on some cpus on windows it sometimes crashes if you spam the resize

dull schooner
#

sometimes I wish it was

#

It's a fixed 720p resolution by default

#

Anyway, I was just pointing what other libraries do, but I don't like the idea of disabling it

#

It doesn't really fix anything

#

And if we keep it we are more likely to find someone that figures it out by just trying out the RC

final zinc
#

that changes things

dull schooner
#

I'm not actually sure about that, but some of the videos in the issue are people spamming it until it triggers

#

it's not something that happens on every resize

final zinc
#

Hmm one video shows the crash happening when switching from fullscreen to windowed

#

Ah no wait that's still a resize and not true fullscreen my bad

edgy jetty
#

<@&1064695155975803020> <@&1064697043869777990>, the only other work in the milestone is https://github.com/bevyengine/bevy/pull/20772 by @south shell, which @dry rune has asked to be given a chance to review. Once that's done, I think we should ship the release candidate, ideally tomorrow afternoon.

GitHub

Objective
Fix #20571.
Solution

Avoid passing the bundle by value further than one layer deep, and pass a MovingPtr&lt;&#39;_, T&gt; of the Bundle instead.
Pass MovingPtr&lt;&#3...

#

That stack overflow PR is gnarly though, I spent a bunch of time going through it today, and while I understand the basic mechanisms and goals and strategies, I don't feel confident in my ability to review it for safety

#

Also cc @old marlin @naive turtle @onyx oxide, who were helping out with the safety there ❀️

south shell
#

@naive turtle this was originally your design, could I get your info so I can mark you as a co-author?

edgy jetty
south shell
edgy jetty
#

Ah

south shell
#

Nevermind, pulled it from one of their other PRs

south shell
#

Tip: you can convert a PR into a git mail style text page by adding .patch to the end of the URL

opaque magnet
# edgy jetty <@301060831314182146> I'm planning to tackle https://github.com/bevyengine/bevy/...

I'd actually like to take some time off from UI work until we have a new BSN branch. I've been focusing on preferences lately. Well, really what I want to do is make a simple gltf animation previewer that will allow me to experiment with custom materials and outlining, but I need to learn how to use rfd (so that I can load the file) and custom asset sources (ditto), and I want prefs so that I don't get annoyed by having to reposition the damn window every time I run it.

edgy jetty
#

Sounds good πŸ™‚

opaque magnet
#

I considered throwing in my Popover component into the ui_widgets crate, but even though it's a stand-alone component the examples and demos all rely on bsn.

edgy jetty
edgy jetty
#

@james7132 let us know when the last round of comments is resolved

edgy jetty
dry rune
opaque magnet
dry rune
south shell
#

@dry rune fyi

edgy jetty
south shell
#

fat fingered something, yeah

edgy jetty
#

<@&1064695155975803020> I'm off tomorrow for my weekend, but I'm happy with the state of 0.17 once the last two milestone PRs are merged πŸ™‚

south shell
#

I'll have that fixed soon

south shell
split jolt
#

sometimes following a release, I spam upgrade PRs on crates i use everywhere. πŸ˜„ and then in some cases there is more than one of those upgrade PRs with the same diff

proud bone
acoustic nimbus
#

dlss_wgpu 1.0.1 too please!

proud bone
#

huh that crate doesn't have any CI πŸ™

ivory nymph
#

Good morning, it's saturday during a release cycle which means it's Svendoring Saturday – do you have dependencies that need updating to the release candidate, an eager readiness to take on Structural API Redesigns due to new features–

proud bone
#

thanks!

dry rune
#

@acoustic nimbus published!

#

@final zinc @opaque magnet this adds those comments we were talking about in the other pr

opaque magnet
dry rune
final zinc
opaque magnet
#

Only the Shadow knows for sure...

final zinc
dry rune
opaque magnet
final zinc
dry rune
maiden heath
#

is there a label for 0.17-rc bugs?

#

or just the usual

proud bone
dry rune
final zinc
#

Maybe I'm just being dense

#

But I still don't really get it

dry rune
#

The comment explains it to a degree. We want to use the checked value in every case except for On<Remove, Checked>, because in that case the value will still be present

#

Despite it being removed

final zinc
#

You saying On<Remove, Checked> made it click!

opaque magnet
#

It's because the same observer function is being used for different events which have different semantics

final zinc
#

that was the missing piece

dry rune
#

We could remove this weirdness if we had a RemoveFinished event

acoustic nimbus
dry rune
#

Which has been proposed, but it comes at the cost of additional removal overhead

final zinc
#

approved πŸ™‚

acoustic nimbus
warm crystal
acoustic nimbus
#

Sooo happy the release is finally happening

odd jungle
#

I have a request: for early adopters, a very useful document would be a short list of things moved around and renamed. So much of the initial work is figuring out what where things have gone and what they've been renamed to. This would be useful even in addition to the migration guide, because the migration guide takes a while to scan to find this information. Thanks!

#

The big one is that events are called messages now, apparently.

south shell
#

we do have most of that already, just not fully formed/editorialized yet.

warm crystal
#

this may be an issue on 0.16, i'll check later

odd jungle
#

This would make it a lot easier to quickly apply these changes.

#

It doesn't even have to be 100% correct, just a sort of indication of where things might have gone so I don't have to search the docs/migration guide.

south shell
dull schooner
warm crystal
#

renames seem like an absolutely ideal case

warm crystal
maiden heath
warm crystal
#

okay cool, then we don't need to backport and it's a consequence of TEM

#

it also seems like it's not an issue for 2d presumably for this reason

maiden heath
#

yeah I saw that mentioned on the PR

warm crystal
#

am sooo looking forward not needing to copy/paste everything into 2d

odd jungle
#

Got it. 2.5 hours to port!

dull schooner
odd jungle
#

Another good thing to mention would be #{MATERIAL_BIND_GROUP} for custom shaders.

#

A thread for people porting to the latest version would be fun.

maiden heath
#

I added the script I use to generate it too, it takes the reflection information for the components and spits it out so probably could be used for any registered types

odd jungle
#

Good idea, but it's a bit too scrambled to be easily usable since many of the components changed modules.

maiden heath
#

I'm not sure what you mean, the names of the types in use for many usages stay the same and just move modules, ex: Bloom, PointLight, etc

dull schooner
odd jungle
maiden heath
#

so sort the lines?

#

I'm just offering something that I had that could be useful, its ok not to use it if you don't want to

dry rune
dry rune
#

As a heads up, I'm doing a release notes editorial pass

edgy jetty
frosty hare
#

Are the RC1 migration guides / release notes viewable anywhere, or just in the repos?

edgy jetty
#

Just in the repo for now

#

Cart or I will compile them in the next couple of days I expect

fair harness
fair harness
#

cool, but its closed so it doesnt actually show up there. whats the process for backport prs? this is not on the rc branch

south shell
narrow storm
#

Just wanted to chime in and let you know that migrating to 0.17 was very smooth for me with the provided migration guides. Good work to everyone involved

outer escarp
#

Same for me, was pretty quick. Are bevy’s API… stabilising??

ivory nymph
#

biggest break in my dependencies has been in the event API split, I feel like that's going to be where most people stumble.

#

everything being an Event was convenient enough for a decent buy-in despite it muddying the water.

#

(not a critique of the redesign, just the main point of friction I've run into)

outer escarp
#

I find the new API much clearer. And great use of deprecation warnings to ease the migration. If only rust deprecation warnings could vend fix-its…

ivory nymph
rapid mantle
ivory nymph
#

not ones I own, just the ones I'm vendoring & upstreaming.

#

I know very little about github CI :')

rapid mantle
#

With the web back end?

ivory nymph
#

yeah

#

and the moment bevy cli reliably fixed my getrandom problems for wasm I switched off taking in any more information about that.

rapid mantle
#

Tbh, that's the goal of the CLI
In the end we just want to make a game and not fight with tooling for days

ivory nymph
slim lintel
#

@worn current is migrating in anger, and has been running into issues with the changed feature flags

#

did those not get a migration guide (@fair harness i think some of them may be from you)

worn current
#

Filed an issue with a minimal repro

naive turtle
naive turtle
# naive turtle

we can add zstd_rust and zstd_c features to pbr and core_pipeline that enable the respective bevy_image feature and it compiles with --all-features

final zinc
#

#1297361733886677036 message
@marsh frigate has been running into something that seems to be related to the moving pointer stuff from @south shell

#

I haven't looked into it deeply, but it looks like either an unforeseen thing or a missing migration

worn current
#

Or better yet

#

Because as I understand it, BorderColor::all was added this release, so no need for a migration guide, right?

edgy jetty
naive turtle
# final zinc https://discord.com/channels/691052431525675048/1297361733886677036/141632835416...

it looks like implementations of spawnablelist will be complicated quite a bit because of the bundle stackoverflow changes.
we could add another trait that mirrors the old API that hides the moving_ptr parts and accepts the stack borrows for users that know that the bundle sizes won't be excessively large, but that might allow library authors to bring about the exact problem that was just fixed 😐

worn current
final zinc
worn current
#

So all in all my migration to 0.17 (as documented in #1416418304226099271) was pretty smooth this time around!
The only real hiccups were related to weird feature flag stuff.

fair harness
#

is it just this gizmos thing or is someone consuming bevy_internal directly

slim lintel
#

our flags were so messy

fair harness
#

mind checking if that fixes it for you?

naive turtle
fair harness
#

gizmos really shouldnt be doing anything with bevy_sprite directly is the thing tho

#

it only care about whether the render backend is present

south shell
naive turtle
fair harness
naive turtle
verbal ice
#

For my crate I was already on main, but I did not update for some months. Only things I had to change that FilteredAccess is no longer generic. This migration guide mentions that, but I think this one kinda is written like it is still generic. But I am not sure if this really needs to be touched.

Otherwise, Archetype::components now returns a slice and not an iterator, but that is very trival to fix and does not really need a migration.

final zinc
#

Updated all my crates that don't depend on Avian to 0.17-rc, and it was fairly simple πŸ™‚ I opened some migration issues, feel free to close them if they're too picky. Basically whenever I couldn't just blindly CTRL-F my problem, I opened an issue for that haha

fair harness
final zinc
maiden heath
final zinc
final zinc
final zinc
#

Update on migration process: migrated bevy_new_2d. Evaluated whether core widgets or feathers can replace our shitty DIY widget abstraction there. Result: it really cannot yet :/

#

core widgets are too scary and feathers' buttons are too small, with no option to make them bigger without writing boilerplate for it

edgy jetty
#

Upgrades for my crates have been very smooth so far

#

the Message / Event split is really the only work I've needed to do

#

I'm so glad they're making sure I'm not doing anything insecure in my CI testing for a video game input manager

marsh frigate
#

@south shell have there been any updates on the moving pointer thing?

marsh frigate
#

what's been merged

south shell
#

The MovingPtr PR?

marsh frigate
#

oh was that only added recently?

south shell
#

Not sure what you mean by MovingPtr "thing"

marsh frigate
#

well i was having issues with it, and a few days i was trying to fix it and i've been busy since then

south shell
#

Oh, it's been merged

#

And completed

#

There's a few open questions on how to improve it

marsh frigate
#

does it not exist in rc-1?

south shell
#

It should

#

its under bevy::ptr::MovingPtr

marsh frigate
#

oh nice

#

my issue was that i tried to import it under ecs i think

final zinc
marsh frigate
#

nvm it still can't find moving ptr for some reason

#
error[E0433]: failed to resolve: could not find `MovingPtr` in `bevy_ptr`
  --> src/preset/spatial.rs:74:9
   |
74 |         move_as_ptr!(xy);
   |         ^^^^^^^^^^^^^^^^ could not find `MovingPtr` in `bevy_ptr`
   |
   = note: this error originates in the macro `move_as_ptr` (in Nightly builds, run with -Z macro-backtrace for more info)
help: a struct with a similar name exists
  --> /home/lenny/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bevy_ptr-0.17.0-rc.1/src/lib.rs:1211:41
   |
121-         let $value = unsafe { bevy_ptr::MovingPtr::from_value(&mut $value) };
121+         let $value = unsafe { bevy_ptr::OwningPtr::from_value(&mut $value) };
   |
help: consider importing this struct through its public re-export
   |
 1 + use crate::preset::spatial::MovingPtr;```
south shell
#

That might need to be fixed. The macro is not pointing to the right crate

marsh frigate
#

should i try using the github version to test?

south shell
#

I think it's hard coded to use bevy_ptr right now

marsh frigate
#

btw i tried a github code search and it seems there's no other projects using it

south shell
#

yes, we just added it within the last two weeks

marsh frigate
#

that makes sense lol

#

should i open a pr for bevy?

#

actually i wouldn't know how to fix it

#

i'll work on migrating something else

final zinc
#

Just copy paste your error message and James' response

#

And ping me so I can put it in the milestone

marsh frigate
final zinc
final zinc
#

I knew this came up before from @naive turtle, but I have to say, now that I'm migrating more stuff, AssetEvent not being an event feels like wrong naming hmm
i know the reasoning, IIRC it’s "the event suffix is not saying anything about the type in this case, but that some event relating to assets occurred"
But given that both Event and Message have intrinsic meaning now and are related to each other, having Message be called SomethingEvent is weird.

south shell
fiery raven
#

Won't $crate::MovingPtr work everywhere?

south shell
fiery raven
#

Are you sure? I can reproduce bevy_ecs::ptr::move_as_ptr!(x); failing with

Error[E0433]: failed to resolve: use of unresolved module or unlinked crate `bevy_ptr`

in a project that doesn't depend on bevy_ptr, and if I change the macro to use $crate then the error goes away.

opaque magnet
final zinc
#

I like that πŸ™‚

final zinc
final zinc
#

@edgy jetty I hope you don't mind that half of the migration issues (13/26) are from me. Feel free to close the ones that are like "this migration doesn't mention where to import stuff from" mercilessly, as IDEs can do that anyways.

#

I opened them with the mindset of better note too many things than too few things

final zinc
#

But I can also not do that if prefered πŸ™‚

final zinc
#

Just hope it doesn't look too pessimistic or anything haha

#

Migration went pretty smoothly for the most part

edgy jetty
final zinc
proud bone
edgy jetty
edgy jetty
#

Punted to 0.18; this is too complex and critical to be messing with last minute, and any rename is not going to stick around

fathom finch
final zinc
edgy jetty
slim lintel
#

but i have not had time to check

naive turtle
#

but that can't be right

edgy jetty
#

Can you try making that change?

naive turtle
#

but that hasn't changed since .16

final zinc
#

I'm pretty sure this is a mistake, but it's possible I'm just not seeing something that others are

naive turtle
slim lintel
edgy jetty
static hearth
#

Here’s something I found on lobste.rs that I think y’all would appreciate

#

You’re doing good work, and others notice! πŸ’™

final zinc
#

I'm migrating Tnua and getting this:

thread 'main' (253822) panicked at /home/hhh/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bevy_scene-0.17.0-rc.1/src/scene_spawner.rs:621:35:
scene contains the unregistered type `bevy_transform::components::transform::Transform`. consider reflecting it with `#[derive(Reflect)]` and registering the type using `app.register_type::<T>()`
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Encountered a panic in system `bevy_scene::scene_spawner::scene_spawner_system`!
Encountered a panic in system `bevy_app::main_schedule::Main::run_main`!
error: command `cargo run --bin platformer_3d --features avian3d,bevy/debug --profile dev` exited with status code exit status: 101
#

that seems... odd? I thought regular components like Transform didn't need to be registered explicitly anymore?

#

@marsh crest do you know more about this?

#

IIRC you wrote the auto registration PR, right?

#

Sorry, no minimal example for this 😬

edgy jetty
marsh crest
#

or yes, no reflect_auto_register enabled at all, which is in default features

final zinc
#

The migration didn't mention that feature

edgy jetty
#

I smell a migration guide issue :p

final zinc
#

Let me try with it πŸ™‚

#

Yep that was it, thanks!

final zinc
edgy jetty
#

Thanks πŸ˜„

fathom shoal
#

Just confirming, the new recommendation is to remove all manual type registrations (except where required, i.e. generics), even in library code like Avian, right?

fathom shoal
#

hah also I found a fun naming conflict bavy was pretty confused for a sec

#

apparently we decided to add a ScalingMode enum to bevy_sprite, even though bevy_camera already has a ScalingMode

#

the camera version was previously in the prelude, but now the sprite one is (edit: or no?? apparently it was the same before too)

#

so imports don't break, but all the variants are wack, and you need to explicitly import the correct one

maiden heath
fathom shoal
#

ah I guess it's just the imports that changed, probably as part of the rendering crate refactoring where bevy_camera got extracted to its own crate

#

hmm or I don't see the camera ScalingMode in 0.16's prelude either thonk why did it work for me before

#

idk I probably goofed something... still would be nice to have the names be distinct

dry rune
fathom finch
#

The bevy_sprite ScalingMode enum is misnamed maybe anyway, it controls more than just scaling

#

and it looks like it should be a per-axis setting as well

edgy jetty
#

FYI, I'm currently buying a house (offer made, working on conditions) and dying in the billion small but vital tasks. I've just booked two vacation days off this week. I intend to do what I can, but my productivity will be much lower than usual for this week. Review and advice work will be much easier for me to help with than making PRs ❀️

edgy jetty
primal arch
#

Is there a migration guide for 0.17?

final zinc
#

But you can CTRL-F your stuff and filter that directory for something approximating CTRL-Fing a webpage

primal arch
#

is there a branch to use? I don't see 0.17

#

oh it's in bevy, not bevy_website

primal arch
#

There's no more way to get the entity's generation as a u32? that was useful for networking

edgy jetty
fathom shoal
#

having to do that feels questionable though

verbal ice
#

nah just do this

fn generation_to_u32(generation: EntityGeneration) -> u32 {
  let mut x = EntityGeneration::FIRST;
  let mut y = 0;
  while x != generation {
    x = x.after_versions(1);
    y += 1;
  }
  y
}

and pray it gets optimized πŸ™

onyx oxide
verbal ice
#

neat, no reader method then πŸ‘

ivory nymph
#

is bevy::sprite_render::text2d supposed to be a private module now?

ivory nymph
#

looks like I may just need to drop bevy_slow_text_outline until its author publishes an update, I do not have the chops for vendoring this.

fathom finch
#

does the bevy_slow_text_outline crate schedule its system relative to it or something

dry rune
#

Today I'm wrapping up my release notes editorial pass

#

Only a few more sections

acoustic nimbus
#

Hoping to finish it by this weekend

ivory nymph
edgy jetty
dry rune
edgy jetty
#

Wow I much prefer the new process for doing the migration guides and release notes

#

Much lower friction, more gradual and better distributed

dry rune
#

Yup nice and clean

#

I'm gonna do a pass to make sure we didn't miss something juicy

edgy jetty
#

Good call. We're still going to need to make a number of images, but I'm feeling good about the state of things

fiery raven
edgy jetty
dry rune
final zinc
dry rune
#

Have we sorted out the bevy-website side for how to ingest the new format? Is that something I should start banging on

#

Or is the plan to just copy it in flattened form?

#

The incentive to keep it in separate files isn't really there anymore, other than the fact that the front matter feeds into html / theming which we don't really want to do manually

#

The new format has no built-in conception of order, so if we go the "structured / separate file" route, we'll need a way to impose order

#

As "directory iteration order" by default wont cut it

edgy jetty
dry rune
edgy jetty
#

@slim lintel may have more details

edgy jetty
dry rune
#

I did!

edgy jetty
#

That bit is automated already!

dry rune
#

Rad then I have no concerns

fair harness
#

maybe we should have some kind of tag per note, saying which part of the engine a note is relevant to

#

so you can tag bevy_render stuff together for example and then sort by that

dry rune
#

We could also just prefix the file names with 1_X 2_Y etc

fair harness
#

(and have a consistent global ordering on tags, release-to-release)

#

thats kinda hard because it pushes the determination of importance to the pr author lol

#

how do you know if your feature is 1_ or 9_ lol

dry rune
#

Theres a certain appeal to being able to just copy/paste the folders in. But theres still the matter of generating the contributors list and the other boilerplate

dry rune
#

😈

fair harness
#

great then make all our prs for us :P

dry rune
#

In practice, leadership needs to do an "order pass" at some point anyway. Thats not something we crowdsource

#

It is done at the end, after release notes have been written / files have been named

opaque magnet
#

Within each group it's ordered by PR number

dry rune
fair harness
#

hence the suggestion to have a tag for engine section per note

#

we dont have that info atm

dry rune
fair harness
#

i at least think changes affecting similar parts of the engine should be next to each other more often than not

dry rune
#

Ooh @slim lintel that command-line section reordering is slick

#

Yeah that tool will do nicely / I have no notes

frosty hare
#

Can you keep separate files, and have a index file with ordering, and anything missing goes to the end

slim lintel
#

the tool is pretty tiny, so it shouldn’t be too hard for anyone to maintain if I disappear as well

edgy jetty
slim lintel
acoustic nimbus
final zinc
final zinc
#

Pinging @proud bone because I think you did the release

#

Maybe the new cargo publish --workspace did something unexpected?

final zinc
proud bone
#

are you sure you didn't bork your cargo cache somehow?

#

does it still happen if you rm ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bevy_feathers-0.17.0-rc.1?

final zinc
#

thanks

#

local issue after all πŸ™‚

ivory nymph
#

All my dependencies are finally updated or vendored 😌

ivory nymph
proud bone
slim lintel
#

seconding a second rc, I have already merged some fixes for wasm tasks that need testing

frosty hare
#

There's still a couple of issues / PRs in the milestone, should we wait for the non-doc ones at least?

maiden heath
edgy jetty
naive turtle
#

There was discussion around adding pub API for spawning bundles as moving ptrs to make custom spawnableList implementations take advantage of the bundle overflow PR because they currently have to copy everything to the stack

edgy jetty
maiden heath
edgy jetty
#

I think I've got all the 0.17 Ready-For-Final-Review PRs in the queue now

#

Time to start writing I think πŸ™‚

edgy jetty
edgy jetty
proud bone
#

I think at this point we could update main to the 0.18.0-dev, and clean the release content from the main branch. that means that after that, PRs to update the release content will need to be opened against the release branch, and potentially bug fixes will need to be opened on main and on release

edgy jetty
# proud bone <https://github.com/bevyengine/bevy/tree/release-0.17.0> updated with the merged...

I'm happy with that. https://github.com/bevyengine/bevy/issues/21110 is the only non-docs fix left, and it's a small bug fix for an experimental feature so...

GitHub

Bevy version and features 0.17.0-rc What you did Open our feathers example and add the following system: fn enable_all(disabled: Query<Entity, With<InteractionDisabled>>, mut commands: ...

edgy jetty
#

We should get the remaining release note PRs merged though probably?

proud bone
edgy jetty
#

SGTM then

proud bone
#

you won't have the release queue so faster merges πŸ₯·

edgy jetty
#

I'll pay attention and swap the branch when needed

edgy jetty
proud bone
edgy jetty
final zinc
#

Sounds good to me!

grave dove
edgy jetty
final zinc
#

But it’s certainly not blocking, since the tab navigation in Feathers has no UI implementation anyways

edgy jetty
final zinc
final zinc
#

Not really a bug, just a disagreement

edgy jetty
#

kk

opaque magnet
#

@edgy jetty On the issue of Propagate I am not sure who to ask for a definitive answer. The question is: is the intent of Populate:

  • To only be used to initially populate the hierarchy on spawning (for example, inserting custom materials in a loaded GLTF scene)
  • Or, is it intended to be used to dynamically keep the populated components up-to-date after spawning?
    That is, I know that Populate will fill in components for new child entities if they are added to the hierarchy after the initial population; what I don't know is whether Populate is supposed to be able to replace/overwrite components for pre-existing child entities if the root component is replaced. I can imagine that there could be technical limitations that prevent this, meaning that the behavior I want is out of scope; but unfortunately the documentation is silent on this issue.
#

To put it another way, there are three things that can happen in the context of Populate:

  • A new Populate component is added to the root of an existing tree or sub-tree.
  • A new child entity is added as a descendant of an entity with Populate
  • A pre-existing Populate component is replaced with a new value.
#

The first two of these work; what I don't know is whether the third case is supposed to do something or not. I wrote feathers assuming that it did (and unfortunately didn't test that case).

edgy jetty
#

@crisp folio was the PR author, but my intention as <@&1064697043869777990> is that all three of those should work

#

That is how our transform / visibility propagation works, and I expect @warm crystal would like this for e.g. RenderLayers too

warm crystal
edgy jetty
#

I think the right fix for the feathers bug as a result is to fix what's going on with Propagate

opaque magnet
#

As far as I can tell, replacing the Populate component has no effect; when I ripped out the Populate component and just manually traversed the hierarchy with iter_descendants, everything started working as expected.

edgy jetty
opaque magnet
#

I made it so that clicking the first checkbox also controls the disabled state of one of the buttons

edgy jetty
edgy jetty
edgy jetty
warm crystal
edgy jetty
maiden heath
#

I added https://github.com/bevyengine/bevy/issues/21164 to 0.17 because it results in some pretty garbled output. naga-oil is producing colorized output and tracing-subscriber no longer allows ansi escapes as of 0.3.20 (lowest version allowable by 0.17) for security reasons.

warm crystal
maiden heath
#

yeah, workaround is at least servicable, but I also didn't see any acknowledgement beyond the original fix in the tracing repo

#

and to be clear, this is colors in the messages specifically, not colors for things like INFO

crisp folio
fathom finch
fathom finch
#

I'll write something up quickly

fathom finch
#

Maybe we should have an M-Release-Content label

edgy jetty
edgy jetty
opaque magnet
#

Specifically, Propagate has a limitation that all of the entities in-between the descendant and the ancestor must either match the query or have PropagateOver.

#

While this makes sense for something like Visibility, it's a confusing restriction for people who want to style text, especially given the way that text entities are structured.

#

Right now, the Button component is a flexbox. This doesn't matter for the vast majority of buttons that have a single child, but the second most common case is a button with text and an icon arranged in a row. However, we can imagine non-traditional buttons that have a more complex inner structure. For these kinds of buttons, you won't get automatic inheritance of text font or color unless all of the intermediate entities are properly annotated.

crisp folio
edgy jetty
opaque magnet
#

I think the first step is to decide exactly what behavior we want

#

Right now what I have is kind of a middle ground between CSS's implicit inheritance of text properties by default, and the previous Bevy model of having to be explicit about everything.

edgy jetty
#

I think we're at an okay state for 0.17, so can we move to #ui-dev?

opaque magnet
#

ok

#

It's good enough for now

edgy jetty
#

@grave dove, let us know how the BEI migration goes with RC2 please πŸ™‚ That's the only serious outstanding thing that I want to ensure we test from RC2 before shipping 0.17.0

final zinc
static hearth
static hearth
#

:O

#

That's your secret :)

proud bone
#

only target the release-0.17.0 branch if the issue is just on the 0.17, otherwise open on main and the PR will be cherrypicked

proud bone
# edgy jetty On main too

you can't change the base branch using github ui now that we've conflicted all the cargo.toml πŸ˜„

proud bone
fathom finch
edgy jetty
opaque magnet
fathom finch
#

Simple way to break the examples again is just to change the button's child params from:
Spawn((Text::new("Normal"), ThemedText))
to
Spawn(( Node::default(), children![(Text::new("Normal"), ThemedText)] ))

#

Which is a necessary construction if you want to add icons or something

opaque magnet
opaque magnet
#

I think it's good enough for the moment, we can figure out what we want to do with font propagation in the next cycle

fathom finch
#

#21120 seemed like it would be fine with a couple of changes

#

If we want just a definitely works for now solution, we could just walk the tree every frame and update whatever is needed

static hearth
edgy jetty
edgy jetty
warm crystal
edgy jetty
south shell
edgy jetty
south shell
edgy jetty
south shell
#

We can patch naga_oil and make a patch release until then.

dull schooner
#

Could we just default to no colors for naga_oil?

warm crystal
#

yeah we can do that

#

but i'm a little peeved

dull schooner
#

yeah, I mean, I'd prefer having colors too, but I guess once tracing fixes the issue we can make a point release that turns it back on?

south shell
#

They know via the linked issue. My hope is that they'll allowlist colors.

warm crystal
#

i can prepare a naga oil pr if someone else isn't already doing it

south shell
#

Alternatively we could just patch bevy_log

warm crystal
south shell
#

It would be pretty jank, but it would at the minimum not show up in the naga_oil releases

dry rune
#

Are we good to make the bevy->bevy-website release content move?

warm crystal
dry rune
#

I know theres one outstanding migration guide, but we can do that on the bevy-website side

edgy jetty
dry rune
edgy jetty
dry rune
#

Cool. I'll start doing the move then

dry rune
edgy jetty
edgy jetty
dry rune
#

We have two paths forward here: merge now and iterate (it is already set to "draft" / hidden mode) or work on that branch

#

I like "merge and iterate"

edgy jetty
dry rune
#

"merge now" doesn't mean right now. its worth reviewing the content

edgy jetty
edgy jetty
dry rune
#

In addition to making sure everything is there / well formatted

edgy jetty
#

Hmm, lemme check how @fair harness's abomination is formatted on the site πŸ€”

fair harness
#

how is it

#

my cursed unholy digital offspring

edgy jetty
#

I think that's "tolerable"

#

Mostly funny

fair harness
#

not too bad yeah

acoustic nimbus
#

PRs: Too many to count (X)

edgy jetty
#

Ah, of course. (We should merge without adding this)

slim lintel
#

just need to pick markup for it.

edgy jetty
#

Yeah, preparing images can really take a lot of time

slim lintel
#

it might instead make sense to have a private maintainer-only google drive (or similar) that yall can collect images into as you merge stuff?

edgy jetty
#

The core problem is correlating the images with each section

#

And generating missing ones

dry rune
#

It certainly is using more space than it deserves / it will cause most readers to think about it when they probably shouldn't be

slim lintel
#

an expanding section would be neat. PRs: #0000, #00001, and 6000 more (and you click on it to reveal the rest)

dry rune
fair harness
#

what wobble?

dry rune
fair harness
#

oh shit

#

damn

#

the p and d

fair harness
dry rune
#

WHOA look at my chromium rendering

#

Something is WRONG

edgy jetty
fair harness
#

comic sans 2

dry rune
edgy jetty
dry rune
#

Hopefully just scoped to linux

edgy jetty
#

Yeah. It's okay, Linux people are used to things being slightly wonky for inexplicable reasons

dry rune
#

Still deeply embarrassing / will reflect poorly on us:

fair harness
#

this reminds me of noscript jank font rendering

dry rune
#

Same deal on bevy.org / this isn't scoped to localhost

#

@edgy jetty its worth giving the rust team a heads up. know a good person to ping?

solid sapphire
#

secret halloween easter egg :o (but not really)

edgy jetty
edgy jetty
slim lintel
#

two pings in one night

grave fiber
grave fiber
edgy jetty
warm crystal
edgy jetty
dry basalt
#

Huh nope we load from local font assets

dull schooner
#

For the record, it looks fine on windows with vivaldi (chromium)

dry basalt
#

I can't check on Fedora rn 'cause Chromium is bugging out.

#

of course its because wayland broke chromium.

#

switching to x11 mode on chromium I can replicate on Fedora 42 wayland

#

not seeing it on firefox however

#

so def chromium issue

#

and since its not on windows or macos its a linux chromium issue

#

gonna do a couple of local html tests. (doesn't seem to have issues rendering Fira Sans on google fonts site)

#

Chrome update to its font renderer borked up Fira Sans

candid sable
#

looks fine on zen browser which is a firefox fork, arch linux

#

checked on firefox as well no issues

dry basalt
#

ah, supposedly was fixed in version 140.0.7339.127, however not everyone reports it fixed (I tested on 140.0.7339.185 so def not fixed for me)

#

so nothing we can do about it except drop Fira Sans (I don't think this is wanted) or wait for chromium to get this fixed

#

based on current Chromium release schedule, this should be fixed with the release of 141 around Sep 30th , so start of October. https://chromiumdash.appspot.com/schedule

normal crag
dry rune
#

Migration guide is queued up. Required some shortcode changes so i'm waiting to open until after that merges

#

I've found a solution to the "spongebob text"

#

If we comment out the local() font sources, I get proper rendering

#

Given that most people won't have Fira installed, thats probably not a big deal

dry rune
#

@edgy jetty given you also have a repro, can you verify that works?

edgy jetty
edgy jetty
#

I vote we merge anyways though

dry rune
#

I'm going to start taking screenshots / recording videos / filling in missing media

edgy jetty
#

<@&1064695155975803020> @final zinc @grave dove @maiden heath, how's the temperature on a final release?

#

(and the rest of y'all here too!)

maiden heath
#

I feel like the issues in rc.1 got raised and fixed really fast this cycle

edgy jetty
#

(and I was able to do things other than just grind away on release notes)

dry rune
#

(and landing the NonSendMut aliasing fix)

edgy jetty
#

Excellent spot on that @naive turtle. Merging #21186

acoustic nimbus
edgy jetty
#

But it's very much appreciated!

#

I'll spin them out?

acoustic nimbus
#

Err if you want? I think 1 gh issue per comment is going to be a lot, but up to you

edgy jetty
#

Opening and closing issues is cheap

dry rune
edgy jetty
#

Okay, can do πŸ™‚

dry rune
acoustic nimbus
#

No time, I need to finish packing before the movers come tomorrow πŸ˜₯

#

Hence the very short comments

dry rune
#

No worries. Thanks for the feedback!

edgy jetty
#

I took a look and formed opinions on all of these too

primal arch
#

There's one thing tripping me in the upgrade; you used to be able to do cycles in required components (A requires B and B requires A, to guarantee the archetype invariant that A and B are always inserted together on an entity). It's not possible anymore, is that intended?
It's a fairly disruptive change, that was pretty useful to me. This limitation was added in https://github.com/bevyengine/bevy/pull/20110

GitHub

Objective

Fixes RequiredComponent.inheritance_depth docs do not matchComponent derive implΒ #19863 by removing inheritance_depth
Fixed Inconsistent Behavior with Required ComponentsΒ #19333 by prope...

edgy jetty
#

@onyx oxide may have ideas on how we can square the circle there πŸ€”

edgy jetty
edgy jetty
onyx oxide
#

I'm not sure if the logic still works correctly when there are such cycles though.

edgy jetty
#

cc @fathom shoal for discussion too if you have things to say πŸ™‚

edgy jetty
onyx oxide
#

Thinking about if for example any of A or B required a C that requires a D then I think we would probably order D incorrectly

#

Or maybe not πŸ€”

#

Yeah even if it worked this is really confusing to reason about

acoustic nimbus
grave dove
fathom shoal
#

Mm Avian release prep may still take a while, but that's of course not blocking for a Bevy release

final zinc
grave dove
#

But let me know ahead of time if you do to avoid duplicate work, because I planned to start the migration soon πŸ˜…

final zinc
final zinc
primal arch
final zinc
final zinc
#

Update: oh, apparently not hmm

#

Okay, continue submitting stuff to main, got it

edgy jetty
final zinc
#

Migrated Foxtrot! Everything is running almost perfect πŸ™‚

#

@spiral wren seedling is running well, other than the symphonia spam that I hoped would be gone by now. I guess they didn't fix it yet? And I think those ALSA logs are new, not sure

#

@fathom shoal I thought you had fixed this, but I may be misremembering

#

And lastly

#

@pure mantle is that from bevy_inspector_egui?

#

Or is this some new Bevy feature I didn't know about? πŸ˜„

fathom shoal
final zinc
#

now let's see if WebGPU still works

nimble bison
final zinc
dry rune
#

I'm curious how it was displaying without you knowing about it / configuring

final zinc
#

It looks like it's not following the same display rules as whatever I had configured to only show the FPS counter when I press F3

#

I believe it's ignoring the enabled setting :/

edgy jetty
final zinc
#

Ooooh it's an own thing

#

FrameTimeGraphConfig

edgy jetty
#

We should cross-link those in the docs

final zinc
#

A bit confusing that adding the plugin enables two things that I need to disable separately

edgy jetty
final zinc
#

hold up

final zinc
#

it is already nested

#

the top-level enabled is just ignored

edgy jetty
#

Issue or PR please πŸ™‚

final zinc
#

oof I don't like this design :U

final zinc
spiral wren
final zinc
final zinc
# edgy jetty <:pensive_cowboy:791012102655574086>

Yep, that was it

app.add_plugins(FpsOverlayPlugin {
    config: FpsOverlayConfig {
        enabled: false,
        frame_time_graph_config: FrameTimeGraphConfig {
            enabled: false,
            ..default()
        },
        ..default()
    },
});

fn toggle_fps_overlay(mut config: ResMut<FpsOverlayConfig>) {
    config.enabled = !config.enabled;
    config.frame_time_graph_config.enabled = config.enabled;
}
dull schooner
#

So, uh, I'm like 99% sure the reason it's like this is just because I yeet the whole FrameTimeGraphConfig thing at the gpu and that's what controls the visibility enabled/disabled. I have no idea if the PR that adopted my PR changed that.

#

That code was mostly a proof of concept

edgy jetty
final zinc
#

alright, running on web is working less well

spiral wren
#

oh ya i ran into this with wasm bindgen 0.2.102 (or 103? one of them)

final zinc
maiden heath
#

you have to pin the cli and the lib to the same version

spiral wren
#

...downgrade it to 101 πŸ˜…

final zinc
maiden heath
#

the wasm-bindgen-cli and lib are shipped in lockstep, and must match exactly

spiral wren
proud bone
#

it gives another error on version mismatch

maiden heath
final zinc
#

yeah that part I know πŸ˜„

proud bone
#

I'm compiling the breakout example on 0.2.104 and it works

final zinc
pure mantle
craggy cypress
#

Trying to run examples in wasm. If I run either
cargo install --git https://github.com/TheBevyFlock/bevy_cli --branch main --locked bevy_cli
or
cargo install wasm-server-runner
I get

error: The "wasm_js" backend requires the `wasm_js` feature for `getrandom`. For more information see: https://docs.rs/getrandom/0.3.3/#webassembly-suppor

I have the env var set (RUSTFLAGS='--cfg getrandom_backend="wasm_js"') and can build bevy successfully for wasm with
cargo build --example deferred_rendering --target wasm32-unknown-unknown --features getrandom/wasm_js

warm crystal
final zinc
#

I don't think it enables the feature for you

#

just the rustflag

#

Is that right @rapid mantle?

rapid mantle
#

That's right. It wasn't possible for us to automatically enable the feature without modifying the Cargo.toml, so we don't do it automatically

craggy cypress
craggy cypress
#

i have 0.2.104 everywhere

warm crystal
craggy cypress
warm crystal
rapid mantle
#

Maybe you are enabling the Wasm backend even if you are not compiling for wasm

craggy cypress
warm crystal
#

point being, i'm really frustrated by this. it's extremely user hostile and i think deserves us taking action although i'm not sure what that looks like

craggy cypress
#

$env:RUSTFLAGS
--cfg getrandom_backend="wasm_js"

rapid mantle
warm crystal
#

having to set rustflags to install a crate is something i've literally never done before in 8 years of writing rust

craggy cypress
#

oh

rapid mantle
craggy cypress
#

dfaskdjfahsdkjfhaweuoifbans;d

final zinc
edgy jetty
#

It's very bad though

final zinc
craggy cypress
warm crystal
#

open source is really easy when you don't care about your users

craggy cypress
final zinc
#

sec

#

Enable reflect_auto_register

craggy cypress
craggy cypress
#

It also didn't look like it recompiled anything

rapid mantle
craggy cypress
rapid mantle
craggy cypress
rapid mantle
craggy cypress
rapid mantle
#

I'm on Linux, but I don't see any issues on neither FF nor Chrome

craggy cypress
#

I guess I'll try on a mac

craggy cypress
warm crystal
craggy cypress
warm crystal
#

lemme give it the ol reproduce-a-roo

craggy cypress
#

Still getting the reflection issue on windows. Did rustup update, cloned bevy main into new folder.

warm crystal
#

although firefox is unbearably slow

#

chrome left ff right

fair harness
#

im 99% sure that will fix it

warm crystal
#

it's broken on webgpu too on chrome

warm crystal
final zinc
warm crystal
#

which would probably be worth supporting

warm crystal
craggy cypress
fair harness
#

knew it. i'd revert only the impl changes to the view transformations

#

not the new view transformation file

craggy cypress
fair harness
#

i dont know why chrome cares about this

#

seems real wacky

warm crystal
#

i need to run in a sec but can we create an issue for the above ^ in 0.17

fair harness
# warm crystal i need to run in a sec but can we create an issue for the above ^ in 0.17

https://github.com/bevyengine/bevy/pull/21202 made a pr for a revert and put it on the milestone, if no other solution is found i guess we go with this

GitHub

Objective

Fix chrome rendering bug:

Solution

Revert part of Move view transformations to bevy_renderΒ #20313
I don&#39;t know why this fixes it, but Added SSAO support on WebGPU, with R32Flo...

warm crystal
fair harness
#

its not about the math being wrong

#

this is some kind of weird chrome wgsl bug

#

im not really sure whats triggering it

#

but i havent investigated at all

#

im guessing something about passing a binding as fn param gets fucky for some reason

craggy cypress
fair harness
#

oh glsl

#

ew

craggy cypress
#

so your pr making wgsl that naga turns into glsl that chrome doesn't like

fair harness
#

yea

#

horrendous

craggy cypress
#

chrome probably turns it into hlsl on windows and msl on metal.. idk about linux

#

hopefully just spirv in angle

fair harness
#

😭 wgsl -> naga ir -> glsl -> hlsl

craggy cypress
fair harness
#

wesl cant come soon enough

craggy cypress
#

it's not like GPUs ever call functions you wrote unless it's like CUDA or something

craggy cypress
craggy cypress
fair harness
#

with wesl we would inline it at the source

#

so it would be indistinguishable to everything downstream

#

@inline attribute

craggy cypress
#

interesting, never considered a shader lang having an @inline attribute since everything is always inlined anyway

#

Probably makes sense to deal with bugs like this and lets you do get around misc limitations I guess

#

(like being able to pass anything to/from a fn)

#

(or put anything in a struct)

fair harness
#

yup

#

wesl is gonna be so great

craggy cypress
#

Why require the attribute? Other languages (hlsl/slang) let you pass most things to/from a fn or put them in a struct without needing an attribute.

#

I guess stuff useful for the buggy case

fair harness
#

yeah, it might become automatic at some point

final zinc
#

Update again: Foxtrot is definitely working alright in 0.17, but bevy_seedling's experimental Wasm multi-threading audio backend is broken.
It's probably not the fault of Bevy, but worth noting for anyone trying to migrate. (maintainers are already informed)

dry rune
#

Almost done with "release post media"

#

I'm also going to slim down my "event rearchitecture" section. taking up a bit too much brain space at the moment

#

@acoustic nimbus is setting the clear color in Solari possible? Currently recording a smooth flyby through the robot scene, and a white background would be nice (if its supported)

#

Currently it seems like ClearColor is ignored

#

(or perhaps "covered" by the outputs)

#

AH

#

wait its being set on the camera

acoustic nimbus
#

I'll make a note to support clear color, and eventually I did want to add atmosphere support

dry rune
acoustic nimbus
#

But the tricky thing is that the atmosphere/background should affect the scene's lighting because it's all RT

#

And doing that will be a bit annoying

#

Anyways

dry rune
acoustic nimbus
#

yeah don't use the component it won't work

acoustic nimbus
#

Just need to add clear color as a push constant and then use that in the shader

#

Or have a dedicated "clear" pass before using solari

#

I'm unsure long term what I'll want to do

dry rune
#

Seems like a feature people would be happy about anyway

acoustic nimbus
#

Tbh the proper thing to do is probably to setup a render pass that does nothing but clears the texture...

#

And then remove that shader line

#

Hrmm

#

Also note that a white background is technically not physically correct, as rays that miss the scene geometry should technically return white, not zero

#

But tbh who cares, it's a video game

dry rune
acoustic nimbus
#

Yeah πŸ˜…

dry rune
#

@acoustic nimbus do you have good pics for this already?

acoustic nimbus
#

Gbuffer (not everything pictured)

#

Composited

#

Denoised and antialiased (and upscaled, although the previous screenshots I had upscaling disabled)

dry rune
#

Nice. Hmm I just recorded the flyby but didn't do any toggling like you did in yours:

acoustic nimbus
#

ooh nice

dry rune
#

Sadly we can't use a bunch of time for file size reasons

acoustic nimbus
#

actually, makes me a little sick to watch on repeat :/

dry rune
#

I should probably avoid pressing shift. creates some "jerks"

#

I added some crude camera interpolation. Probably worth adding first class support upstream and enabling slight interpolation by default

acoustic nimbus
#

Leave it to someone else !!

#

Honestly that sounds fun to do though I will add it to my listβ„’

#

(I have an actual list)

dry rune
acoustic nimbus
#

Sadly I cannot get you any other screenshots, my PC is in a shipping container atm πŸ˜…

dry rune
#

Ah should I be manually configuring anything to get maximum render quality?

acoustic nimbus
dry rune
#

How about DlssPerfQualityMode

acoustic nimbus
#

The only ones that you can really change (by modifying the source code) are sample count for DI and world cache updates, but I would leave them as default, they're already close to max quality unless you have a 100 lights in your scene (large amounts of lights sadly not great quality in solari atm)

craggy cypress
acoustic nimbus
# dry rune How about DlssPerfQualityMode

Yes that too, you can trade resolution for performance. Set it to DLAA if you want highest quality, although you may kill your PC depending on resolution πŸ˜›

acoustic nimbus
acoustic nimbus
#

What's your GPU and resolution?

dry rune
#

4090 (in a laptop) and 1280x720

acoustic nimbus
#

Oh, that would do it πŸ˜…

#

For comparison in my blog I used an RTX 3080, rendered at 1600x900, and upscaled to 3200x1800 using DLSS-RR performance mode.

#

And DLSS-RR performs way better on 40 and 50 series GPUs

craggy cypress
#

wow

acoustic nimbus
#

rtx 3080 is between the rtx 3070 and rtx 3080 ti in perf

acoustic nimbus
#

I think @heavy escarp has a rtx 4070 super iirc

#

Still, we can do a lot better

craggy cypress
#

I have one too actually

acoustic nimbus
#

Someone in the graphics server has a 500us GI πŸ˜› (using completely different techniques)

#

Sooo ways to go πŸ™

dry rune
#

At 3440x1400 and DLAA I get 40 fps on that scene

#

"playable" from console perspectives πŸ™‚

craggy cypress
#

(using obvhs #not-an-ad)

acoustic nimbus
acoustic nimbus
#

I think

#

I know they were messing with stochastic DI, but idk if it shipped yet

#

But yeah perf is a WIP

#

Solari is a big WIP

#

We're probably going to rewrite it completely

craggy cypress
#

Oh totally they are not remotely comparable except being a GI

acoustic nimbus
#

ReSTIR DI might not even stay