#archived-dots

1 messages Β· Page 50 of 1

viral sonnet
#

hm, i'm not too familiar. is the whole mesh data serialized or smth?

rotund token
#

MeshRendererBaker

#

has to setup LODs

#

so each render is anywhere from 1-3 actual renderers

#

has to find the components

#

has to grab the meshfilter to get the mesh

#

has to get all them materials, if its a multi material split into sub entities

#

has to get the baked light data

#

and do this 30,000 times on gameobjects

#

then do like 8 add[shared]components per entity

#

i had a look at this yesterday, i saw no obvious way of speeding this up except potentially caching it per unmodified prefab instance

#

so I had a bit of an experiment and wrote a proof of concept that instead of storing the GO in the world, stores reference of prefab then instantiates them in system

#

(apart from known pains of instantiation during baking) the main issue completely breaks actually building scene workflow, you can only visualize it using baked data not authoring

#

so i don't think it's really a viable solution unless you wrote full entity scene tooling

delicate swan
#

Big oof, yeah thats rough, looked* it up and there is only post-baking processing for like, combining entities, not batching them like I thought

rotund token
#

I believe unity were working or wanting to work on a large open world demo so I'm hoping they're running into similar issues to investigate

#

or at least can provide me some guidelines on best practices around this workflow

delicate swan
#

Hmm, this is a very assumptious, high level toss out, but is there any way to replicate your runtime "local loaded subscenes" runtime logic, but based on the editors camera position instead of a theroretical player, while in the editor?

rotund token
#

my implementation of it?

#

i considered doing camera but it's problematic

#

for example in first person, players can spin their camera

#

and scenes won't load in time

#

it's not hard to make it frustum plane based

delicate swan
#

I meant for specifically for the editor, only loading the "local" sub-scenes from the editor scene window camera position, or at least activating/rendering the authors

viral sonnet
#

all the data should be already indexed in the asset database

delicate swan
#

Yeah, reading through the baker docs, as long as all the per-gameobject-component asset dependencies are properly hooked up, it shouldn't be rebaking unchanged assets, it even calls it "Incremental Baking"

rotund token
#

i think it's incremental to changes you make after the whole thing has baked

#

because i can tell that's not true atm after reloads

#

i have an editor assembly with nothing but a single [CustomEditor] and no other assemblies referencing this

#

any changes to this will trigger all subscenes to rebake

#

there's no possible way they could have a dependency on this

rustic rain
#

are you recreating class inheritance in ECS? πŸ˜…

viral sonnet
#

i'm taking a look at it now myself πŸ˜„ i have the azure nature pack. that was the one you were testing with, right?

rotund token
#

for the most part yeah just baking their sample scene

#

but i have other scenes ive tested on previously

#

POLYGON Fantasy Kingdom & POLYGON Apocalypse

#

for example

viral sonnet
#

i'm pretty sure i had their sample scene at one point in my netcode demo as subscene.

#

and baking was nearly instant

rotund token
#

baking or conversion?

viral sonnet
#

but maybe i'm misremembering and it was just a normal scene

#

oh that was conversion

rotund token
#

pretty sure my scenes cached with conversion

viral sonnet
#

reimporting the whole package doesn't even take me more than 30 seconds πŸ˜„

#

only urp... argh

rotund token
#

oh its shaders dont support dots either

#

you need to update them

viral sonnet
#

are they in shadergraph? doesn't seem so

rotund token
#

amplify

#

i rewrote them in shadergraph

#

i was testing this pack in hdrp originally

viral sonnet
#

can you send me the shaders? πŸ™‚

#

that's why i usually don't buy anything. support the default stuff damn it!

rotund token
#

you have to manually go through everything and apply them

#

if you wan to to this fast probably easier to just add dots instancing to the amplify shaders

viral sonnet
#

i don't have amplify :/

#

oh i don't need it, right?

rotund token
#

i think you can just edit the output shaders that come with pack

viral sonnet
#

buggy AF - import azure pack, crash. move environment GOs into subscene, crash.

#

0.51 was more production ready than 1.0 now - i seriously hope unity is able to fix this stuff before the end of the year.

rotund token
#

read PM ^^

delicate swan
# rustic rain are you recreating class inheritance in ECS? πŸ˜…

Ha! No, just arbitrary data loading into ECS components from text serialization with jobs support (after loading), I just tried to get some help in the advanced-code channel for what appears to be a bug in C# source generator support, but it devolved into somebody being convinced I was X/Y problem-ing

#

There's no inheritance or anything, its basically just mapping data with a string identifier to the right static function for that identifier that creates ECS components with that data in the right way, each "Component" in the xml is given its own set of static creation methods that are jobs compatible based on an attribute that registers it for the given common ID, essentially mapping externally loaded data directly into one or more ECS components, great for network transfers and whatnot

#

Problem is, I hate having to add each new bundle of static methods to some global thing by hand, its just ripe for typos and whatnot, especially dealing with lots of similar types, so I figured I would use a source generator to spit out a switch that just takes the string identifier and runs the proper static methods, but apparently thats just a bad idea, not sure how else to achieve it while keeping jobs compatible

robust scaffold
robust scaffold
delicate swan
robust scaffold
#

Also, discord's font is different. Hrm

viral sonnet
#

has the asset database bug been fixed in new 2022.2 versions?

rotund token
#

I look forward to reading 80% of questions that have already been answered or could be answered by the community πŸ˜…
That sweet 20% though

rotund token
#

there are too many

viral sonnet
#

the newest one 😁

rotund token
#

i mean which bug

viral sonnet
#

there are more?? haha ok

rotund token
#

It's hard to find a version of unity where the patch notes don't include an asset database bug fix

#

there's usually 2-3 per patch

#

Are you talking about the major issue that i can't remember exactly what it was but it plagued 1.0 launch in b6?

viral sonnet
#

yep

delicate swan
#

what was the problem?

robust scaffold
viral sonnet
#

so tertle, the scene you sent me. does this take 30sec for you when you click reimport?

viral sonnet
robust scaffold
viral sonnet
#

i'm confused. wasn't there a 2022.2f1?

#

i had this problem not seeing new versions in unityhub2 but now i have 3

#

newest is 2022.2.0b16 for me

#

@rotund token the subscene takes 10sec to reimport for me. what's weird if i profile the editor. hardly anything is happening. tbh, i can't even find stuff related to reimport. idle the scene takes 6ms, with reimport it's 13ms per frame

rotund token
#

or announced

#

you need to use the hub url to get it

viral sonnet
#

5900x

rotund token
#

ah yeah

#

step up from my 3900X

#

profile then click Open to see the live baking costs

#

it should take just about as long to open as to import originally

#

i should point out i don't even consider this to be a detailed scene, there's no elevation or detailed buildings/cities

viral sonnet
#

yeah, that's what's so concerning. this is just a very small fragment of an open world

rotund token
#

to me the time to bake it is within acceptable range

#

the issue is it that they just all get rebaked continuously on any change regardless of relevance/dependency

#

i'm hoping this is just a bug

viral sonnet
rotund token
#

is this in a m2 drive?

#

this library is on an older ssd for me

#

i should probably compare moving to my m2

#

but apart from that, i have a 3900x and 32GB of ram. i shouldn't really be processor starved here.

viral sonnet
#

older ssd, sadly i don't have a m2 drive πŸ˜„

rotund token
#

going to be costly if we need to buy brand new 5k+ computers for everyone at work on next project just to load a subscene ^_^'

rotund token
#

i guess the single thread performance of the 5900x just helps that much

viral sonnet
#

i was only looking at the conversion. this is the full one

#

overall 8.3s

rotund token
#

yeah but the actual time is 8s due to other costs entering

#

is the other 3s like the hierarchy?

#

my conversion was like 7s on that step

#

but that included all my own libraries

#

let me test in this standalone project i sent you

viral sonnet
rotund token
#

ok so thats just loading scene from disk

#

that's fair enough - still a pain for workflow

viral sonnet
#

i don't get it. when you drag&drop the scene alone in the editor it's instantly open

#

no idea what MergePrefabs does

rotund token
#

i am much slower

#

i don't know why, this is project i sent you right?

#

second time is a tad faster but still much slower

rotund token
viral sonnet
#

huge disparities

#

our processors aren't that much difference.

delicate swan
#

You guys on the same version of unity?

rotund token
#

nope

#

i am slightly more up to date

#

but i'd be surprised if that mattered because i had similar experience on his version

#

previously

viral sonnet
#

have you found the code for MeshRendererBaker? I can't find any πŸ˜„

rotund token
#

yes

#

i already put profile tags into it

#

to profile each part

viral sonnet
#

it eludes me! πŸ˜„

rotund token
#

it's called MeshRendererBaker ^_^'

#

rider finds it instantly

viral sonnet
#

wth, no hit in rider or my find in files tool

#

ok, sorry, which directory is this?

rotund token
#

com.unity.entities.graphics@1.0.0-pre.15\Unity.Entities.Graphics\MeshRendererBaking.cs

viral sonnet
#

haha, ok no wonder i wasn't able to find it.

#

main project has no entities.graphics πŸ€¦β€β™‚οΈ

rotund token
#

a picture is starting to form why this was so much faster for you

#

oh wait

#

no it must have been in project i sent you

#

you're just searching in wrong one

#

gotcha

viral sonnet
#

all good, your project hsa it ^^

#

looking at code now. so are we at a point where we have bakers which don't scale?

#

lots of individual GetComponent calls. single threaded systems. what is this?

robust scaffold
#

See, once an hour

#

It seems to originate from the SceneTracker. And my entity list specifically avoids checking scenes. It just pulls a universal query from all entity managers.

pliant pike
#

I don't suppose anyone can tell what I'm doing wrong with this job

#
public partial class DestroyEntitysatDest : SystemBase 
{
    public EndSimulationEntityCommandBufferSystem endcommbuff;
    EntityQuery ExitTargetQuery;

    protected override void OnCreate()
    {        
        endcommbuff = World.GetOrCreateSystem<EndSimulationEntityCommandBufferSystem>();        
        ExitTargetQuery = GetEntityQuery(ComponentType.ReadOnly<EnemyTargetTag>(), ComponentType.ReadWrite<Translation>())
    }

    protected override void OnUpdate()
    {
        var GetCellindpos = new GetCellIndexFromWorldPos();

        var ecb = endcommbuff.CreateCommandBuffer().AsParallelWriter();

        var PaidExitTarget = ExitTargetQuery.GetSingleton<Translation>();

        Entities.
            WithAll<EnemyDudeTag>().
            ForEach((Entity entity, int entityInQueryIndex, in Translation currentpos) =>        
            {          
           
            if (math.distance(currentpos.Value, PaidExitTarget.Value) < 2)
            {               
                ecb.DestroyEntity(entityInQueryIndex, entity);
            }          

        }).ScheduleParallel(this.Dependency);
        Dependency.Complete();        endcommbuff.AddJobHandleForProducer(this.Dependency);
    }
}```
#

I keep getting this error all of a sudden which I never had before and I haven't changed this code at all The previously scheduled job DestroyEntitysatDest:DestroyEntitysatDest_LambdaJob_0_Job reads from the Unity.Entities.EntityTypeHandle DestroyEntitysatDest_LambdaJob_0_Job.JobData.__entityTypeHandle. You must call JobHandle.Complete() on the job DestroyEntitysatDest:DestroyEntitysatDest_LambdaJob_0_Job, before you can deallocate the Unity.Entities.EntityTypeHandle safely.

#

its like a completely separate job has somehow broke this job

delicate swan
#

Wait, do you call complete on jobs when you hand them to command buffers?

robust scaffold
delicate swan
#

It should do that automagically unless your doing something complex I thought

robust scaffold
#

Also, if you're completing it right after, just use .Run()

pliant pike
#

I only put the Dependency.Complete() because I thought that might fix it

pliant pike
viral sonnet
#

he meant Dependency = Entities.ForEach().ScheduleParallel(Dependency);

robust scaffold
pliant pike
#

oh I see now

robust scaffold
delicate swan
#

Unless its changed, from what I remember the Dependency chain is supposed to be somewhat automatic unless you have a more complex chained series of jobs

pliant pike
#

yeah and I guess I fell into the trap of not making it automagic

viral sonnet
#

yeah, or that. though i prefer explicit statements

robust scaffold
robust scaffold
pliant pike
#

yeah I'll go for full lazy thanks

delicate swan
#

I wish I had a use case that needed large chains of jobs, the whole scheduling system is pretty neat

pliant pike
#

yeah its way better than it used to be

viral sonnet
#

and yeah, the job system is really robust and fun to use

#

all this was much worse beforehand and on the rewrite i was pretty stunned how well the job system figures out when to start jobs

#

finding bugs though can be quite tedious. one stupid mistake and all comes crashing down πŸ˜„

robust scaffold
#

Finally got it in one image. Big old stack.

#

I've gotta say, making jobs out of structs is really beautiful for a big scheduling method. Especially if all the names are aligned vertically.

safe lintel
#

There was a forum post about the q&a going out, confirmed what we expected that 1.0 is releasing with the tech release. I’m still thinking even tho it’s improving there are a lot of issues bugs and pain points to get through in maybe not a lot of time left?

robust scaffold
#

Definitely not full "release" release but I expect a public "pre.2" build by the time 2022LTS is announced.

delicate swan
#

I will consider it production ready when they get non-gameobject entity selection in scene view working, lol

robust scaffold
#

Ha. Nothing is rendering for me in scene view anyways

#

I'm using sprite renderer and unity has been pretty up in the air on the future of hybrid components.

delicate swan
#

Yeah, that and the opposite direction, haven't seen much news about the pure ecs runtime

robust scaffold
#

For now, they're bare minimum functioning but definitely not in a good place. That's 1 question I really want answered definitively on the 8th

robust scaffold
#

And probably for the next 2 years at least. So dont hold out hope for that.

delicate swan
#

I already have the .net transition as my distant pie in the sky

robust scaffold
#

The entire team was dissolved and either redistributed or laid off entirely according to the last direct mention of that team.

delicate swan
#

I do recall that, wish Microsoft would hurry up and just buy Unity already

robust scaffold
#

Then again, it was only 4 guys so that isnt much.

#

Ehhhhhh. Eh. Microsoft buying Unity would be great for .net integration but it'll probably take years to bring the engine to that point.

#

Years unity is attempting to do anyways, without Bill Gates breathing down their necks.

rotund token
#

haha there's a system at work that's over 5,000 lines long

#

πŸ˜„

#

'best practices'

#

one of those things that started smaller, and just having stuff tacked on and was left too late to refactor and no one wants to touch it

#

good times

robust scaffold
delicate swan
# robust scaffold Years unity is attempting to do anyways, without Bill Gates breathing down their...

Here's a talk that came out like 2 weeks about about just this (timestamepd to the .net future part): https://youtu.be/T6HhePbyAsg?t=1460

Join us as we explore how Unity uses .NET technology to empower creators to deliver incredible real time 3D experiences. We will explore the past, present, and future of .NET at Unity, featuring high-level strategy, technical deep dives, and live coding!

https://www.dotnetconf.net
#DotNet #dotnetconf #dotnet7

πŸ™‹β€β™€οΈπŸ™‹β€β™‚οΈ Get your questions answer...

β–Ά Play video
robust scaffold
rotund token
#

yeah this is a huge task for them

#

must have been working on it for a while

#

probably still a bit off

delicate swan
#

Yeah, that vids pretty much just a good overview of the work to be done and the plan as it stands still, with all the "weight shedding", its nice they still seem committed to it

robust scaffold
#

I honestly think we'll get DOTS production release before we see that.

rotund token
#

be so nice when we get onto core though

delicate swan
#

Part of the point of moving to core is getting inline with Microsofts future plans, iirc they were planning on merging .net core and mono runtimes

viral sonnet
#

anyway, i'm not supporting MS buying anything. they are big enough already πŸ˜„

delicate swan
# viral sonnet what would that solve?

MS is actually pretty good about buying to fund, they just like owning things they consider assets, and they def consider unity an asset as its one of most well known users of C#, and its also useful for internal prototyping and used for way too much

viral sonnet
#

what i pretty much don't get is why unity doesn't have a store with a 15% cut

robust scaffold
delicate swan
#

Same reason Microsoft Store sucks, turns out its actually pretty difficult to cultivate a good store, even when you have a direct line to developers

viral sonnet
#

EGS seems to be doing fine

rotund token
#

isn't it losing a huge amount of money/year?

delicate swan
#

And they had to take a huge cut vs competitors to attract that attention, and they still have contention when something is exclusive to it vs steam exclusive

robust scaffold
viral sonnet
#

so? better than anything involving gamepass

delicate swan
#

Gamespass is actually pretty sick if you have an xbox, can't really speak to pc games pass as I use steam

rotund token
#

i had a colleague who swore by the game streaming on PC

#

loved it

#

just played a different game every day

viral sonnet
#

yeah, great for consumers.

delicate swan
#

Epic's also not really worried about losing money on the store, they have a much bigger multibillion dollar product that generates enormous profit

rotund token
#

but yeah EGS has lost over $500mill and their own projections is losing money for at least another 5 years

#

that doesn't sound like something a public company strapped for cash wants to go into ^_^'

robust scaffold
rotund token
#

yeah i believe he was mostly a SP gamer

#

was surprised the service even existed in aus

#

most of these services just dont come here

delicate swan
#

Oh yeah, I haven't even messed with the streaming stuff really, that said, I remember OnLive! That was game changing when it was new

robust scaffold
#

Nvidia's GeForce Now was really good back when I used it when I had a shit comp but good internet. But when I had some spare change to throw down on an actual comp, there was no need.

delicate swan
#

Yeah, its a good intermediate, wish Valve would do something similar just because I'd be more inclined to use something like that if it was in addition instead of a whole separate deal

robust scaffold
#

It's a fuck load of money and bandwidth for very small margins. And the legal headaches of trying to get all those licenses to host the games.

#

Nvidia was big enough to go "skip asking for permission, ask for forgiveness later" path and gain a huge market share because of it. Steam, despite their importance in game distribution, isnt as untouchable.

#

And now that Nvidia burned that bridge, valve doesnt really have a path forward in that field.

delicate swan
#

I'd be surprised if there were seperate legal ramifications to the way Nvidia is doing things

robust scaffold
#

Oh no doubt. But Nvidia has enough lawyers and fuck you no DirectX integration power to smooth over any problems.

delicate swan
#

What legal difference does it make where you run end software on a private end-to-end stream? Like, am I violating some anti-streaming clause by playing games over steam link?

robust scaffold
#

You? Standard IANAL but the T&S probably has something about that.

#

is it enforceable towards the random streaming it? Probably not so it's safe enough.

delicate swan
#

I guess my point is, especially with Nvidia's method, what sort of copyright/ip violation/legal threshold would they be committing by letting you download your own games via the authorized software onto a computer you were authorized access too?
Isn't that exactly the same concept as locally? I think its probably a concern in the questioning sense, but its not even kinda shady or bypass-y, I'd be curious what, if any, the legal complaints have been

#

Oh, ok, the complaints against Geforce Now I'm finding aren't that you can do it in general, its specifically that they had a subscription service that let you access games you didn't own outside their paid subscription, but didn't have the license to distribute those games to people who otherwise didn't buy them off of another storefront, I was very confused why people cared about the location of the hardware a paid and legally access game was run on

robust scaffold
#

That's outta my ballpark. Im sure google can probably answer that, if it's not locked down tight under NDA as these legal things are.

#

Progress has been excruciatingly slow as I attempt to figure out how to do this.

#

I dont know if I should keep the icon but I had a bunch of white space and well, nothing else to stick there.

viral sonnet
#

i'd prefer an entity reference that doesn't care about the version. saves 1 int

rotund token
#

sadly that would cause a lot of bugs

viral sonnet
#

yeah, i know. :/

#

i just wish the option was there. for example, any child doesn't need a version. same goes for parent.

#

or you reference some database entity that will always exist

#

maybe i'll try this out at some point and just hardcode version 0 or 1 (wherever it starts, i actually don't know ^^)

rotund token
#

but anything targeting the child does

#

so i'm not super sure of the advantage here

viral sonnet
#

well, the advantage is really just micro optimising 2 ints to 1. i know it's not great for the can of worms it opens

robust scaffold
#

Now for the hardest part, how am I gonna do the graphic. 128 visual elements?

viral sonnet
#

which graphic do you mean? the chunk visualisation?

safe lintel
#

ugh why is only one terrain collider getting baked. i wish they didnt make havok pro only because unity physics debug views still look like garbage

robust scaffold
rotund token
#

ah this bloody issue

#

it's got me before

#
                    {
                        state->PreviouslyEnabled = true;
                        OnStartRunning();
                    }

                    state->BeforeOnUpdate();
                    // ...
                    OnUpdate();
#

OnStartRunning updating before BeforeOnUpdate

#

so OnStartRunning doesn't have updated dependency which is triggered in BeforeOnUpdate

#

and if you try do so an operation you get
InvalidOperationException: The previously scheduled job StateFlagSystemImpl:StateJob writes to the ComponentTypeHandle<BovineLabs.Game.UI.UIState> StateJob.JobData.StateType. You must call JobHandle.Complete() on the job StateFlagSystemImpl:StateJob, before you can write to the ComponentTypeHandle<BovineLabs.Game.UI.UIState> safely.
and it seems I have to do something stupid like this

        {
            SystemAPI.QueryBuilder().WithAll<UIState>().Build().CompleteDependency();
            SystemAPI.SetSingleton(default(UIState));```
#

Dependency.Complete()
or
SystemAPI.GetSingletonRW<UIState>().ValueRW.Value = default;
do not work

#

Legitimately everything

  1. I deleted a material only used in a urp full screen effect, everything rebake
  2. any script reimport, even if it's in an assembly with only 1 script that is a CustomEditor with no other dependencies referencing it
  3. restarting unity
#

the incremental works for me

#

i don't get full rebakes

#

that is part is fine

#

the 1. is a bit odd

#

it was a material referenced only by

#

Universal Renderer Data

#

which is only referenced by project settings

#

it was just a very unexpected case because i saw on reason it should trigger it so it surprised me

#

i can't repo it though

#

my guess would probably be along the lines for this case is i had script changes not-refreshed (i manually refresh assets in unity) and deleting this asset simply triggered a refresh

#

i lied

#

i may have triggered it again

#

i have no code in this project

#

not a single script

#

(outside of unity libraries)

#

i'm still not certain there's an issue there and i just haven't accidentally refreshed assets by making a deletion and triggered a domain reload another way

#

(sorry if I appear negative I'm not trying to be. I actually like baking I'm just a bit stressed as today was our semi content lock for our launch)

#

something I am finding though is i randomly get really big spikes in GameObjectChangeTracker:MergeEventsJob

#

this is 5 sequential profiles of Open subscene in the same domain

#

(sorry scale is off will have to look at numbers)

#

7000ms, 20500ms, 7800, 20300ms, 37000ms

#

i have both hierarchies open, but the old one focused

#

and the mode is automatic (authoring)

#

i literally just hit open

#

and sit watching the bar

#

cpu usage is 4%

#

yeah, these profiles are hitting the Open button the the SubScene script

#

i was profiling that specifically

#

if you want i can send you the scene, i split this off into a small standalone project so i could compare with Enzi

#

37seconds was the last

#

but that was an anomaly

#

sure

#

noticed there was a performance test for this so i was curious and ran them

misty wedge
#

Are the backing fields of auto properties guaranteed to be sequentially layed out inside a struct at the position the auto property is defined?

viral sonnet
#

are you talking about StructLayout.Auto?

misty wedge
#

I'm talking about the default behavior, so no attributes on the struct

pliant pike
#

I have a slight error I made the waypoints move instead of something too them πŸ˜†

devout prairie
#

is there an issue with adding a buffer using a parallel ecb, like this:

#

interestingly, i've only ever added buffers elsewhere using EntityManager or single thread ecb

#

But i'm getting an error with this

misty wedge
#

What's the error?

devout prairie
#

the buffer line is the only thing i've added to make the difference in the Spawner system ( where the error is saying the ecb was written )

misty wedge
#

That's coming from SetComponent, not AddBuffer

devout prairie
#

i haven't added any other stuff that i'm aware of except the buffer line

misty wedge
#

What does the buffer component look like

devout prairie
#

need to just double check that i think

devout prairie
#

nothing unusual

misty wedge
#

I'd turn off burst and look at the actual exception proper

devout prairie
#

it doesn't throw an exception with burst off 🀷

misty wedge
#

Then your burst cache broke

#

What burst version are you on

#

I'd restart the editor if you haven't done that yet

devout prairie
#

i'll try that

#

dots 0.51 on 2021.3

misty wedge
#

burst version, not dots

devout prairie
#

burst 1.7.3

misty wedge
#

I think that didn't have any caching issues, not 100% sure though. tertle reported the issue

#

Have you tried restarting?

devout prairie
#

just trying restart now

misty wedge
#

Also any reason why the unit you are spawning isn't already spawned with the buffer instead of adding it via an ECB?

devout prairie
#

i have had some occasional odd issues with 2021.3 for sure, compared to 2020.3

devout prairie
misty wedge
#

I recommend you use prefabs, since runtime conversion is gone in 1.0 afaik

devout prairie
#

it is prefabs already yeah, just not using subscene conversion at all

#

keeping authoring to a minimum while i develop the project, as it's easier to just add/remove/change what components i want on things in code than clicking around on prefabs etc

#

yeah restarting fixed it

#

weird

#

thanks!

devout prairie
#

( besides the wider architectural improvements that 1.0 brings )

pliant pike
#

it sounds like the array doesn't exist when its being called or set

misty wedge
#

all of the other stuff is definitely worth the upgrade imo

#

I have the strangest issue, and I don't know if it's me messing something up or if it's a known bug.

Everything works fine, but for some reason as soon as I do some actions in the editor, it breaks my collider blob assets. For example, clicking an entity in the entity inspector during runtime seems to mess the collider up for some reason. Anyone have an idea?

#

The error throws in BroadPhase.cs, since the pointer is not valid:

#

I also checked, BlobAssetReference.IsCreated is false

#

I'm not even doing anything special with the collider, it's just automatically created during baking by the PhysicsShapeAuthoring

#

It also only seems to break on the client, not on the server, which makes it even more strange

robust scaffold
#

ya know, coding in OOS and reference types everywhere makes life so much easier. Change one value and everything referencing it also changes magically. I can see why people like OOS.

rotund token
safe lintel
#

I havent had that blobasset breaking with 1.0.0.pre.15 and 2022.2.0.f1 editor

rotund token
#

anyone noticed that if you turn off burst compilation

#

function pointers still seem to run bursted if you had already run them bursted once

misty wedge
#

Really strange

delicate swan
misty wedge
#

What do you mean?

#

Oh you mean a other pc

delicate swan
#

Yeah, my bad, should have been more clear

misty wedge
#

No, but I don't see how that can be the issue

delicate swan
#

Just to rule out potentially obscure hardware issues

misty wedge
#

I'll check when I'm home πŸ‘

delicate swan
#

I only bring it up because I've had a mind-numbing experience once where a photo I was editing kept getting noise over time / edits, and a few games would crash with super obscure not-even-on-google errors, turns out I had some bad/funky ram that was flipping just enough bits to cause issues, but not enough near protected space it was causing a bluescreen

#

Ever since then, if something is randomly corrupting over use, my goto is to check it against another working machine, just rules out the vague and unlikely

misty wedge
#

I doubt this is it since it's very reproducible, also the PC is very new but I'll check regardless πŸ‘

misty wedge
#

I don't think it matters what I click to inspect

#

But I'll check once I get home

#

I don't understand why it only breaks on the client

rotund token
#

i'm unable to repo it

#

i have a subscene loaded both on client/server

#

and clicking in hierarchy or scene view causes no issues

#

but i don't have ghosts setup hence the asking

misty wedge
#

Even wieder, I have a graph system that uses Odin for serialization, if I change a value there, the same error occurs. Really weird

rotund token
#

maybe try remove odin?

misty wedge
#

I don't even save the graph

rotund token
#

(that said i have odin in this project as well, but it's not being used anywhere)

misty wedge
#

I can't really, I use it for a lot of serialization

rotund token
#

rip

misty wedge
#

It's not a debilitating issue either, just really weird and annoying

rotund token
#

wondering if their custom inspectors have issues

#

what version?

misty wedge
#

Odin?

rotund token
#

yeah

misty wedge
#

Not sure, I'd have to check. 3.something

#

But afaik their editors don't interact with the entity inspector

rotund token
#

ecs support was on their roadmap but yeah turns out mines a bit out of date

#

just curious

misty wedge
#

Is there a way to debug what is invalidating the reference? I can't set a watch on the PhysicsCollider.Collider blob asset

#

Something has to be changing the value somehow

rotund token
#

it's a bit weird if the subscene is closed

misty wedge
#

I don't get why it's only on the client

#

That's what's really confusing me

#

I guess I could locally copy the entities package, change the field to a proprty and break on the setter

robust scaffold
#

And they (i.e. nobody) said the graphic could not be done.

#

Actually surprisingly easy. Just draw a line for every column.

rotund token
#

ha thought you were doing the green background colour

#

but it's the lines!

#

that makes sense

#

cool

robust scaffold
#

Yea, lots of time wasted trying various things and seeing if they work.

rotund token
#

you ever notice on days when entities is playing nicely and not crashing

robust scaffold
rotund token
#

something else steps up instead

      at UnityEngine.Rendering.ScriptableRenderContext:Submit_Internal_Injected <0x000e0>
      at UnityEngine.Rendering.ScriptableRenderContext:Submit_Internal <0x00072>
      at UnityEngine.Rendering.ScriptableRenderContext:Submit <0x000d2>
      at UnityEngine.Rendering.Universal.UniversalRenderPipeline:RenderSingleCamera <0x01892>```
common URP i don't want to deal with you
robust scaffold
#

huh, that aint good.

#

@viral sonnet 1 week of nonstop coding and I (almost) finally brought the Entity Debugger to the modern age.

robust scaffold
#

I definitely had GPU stalls for over utilization but that's Windows killing Unity, not my code.

rotund token
#

oh most of my crashes atm are from SRP

#

i have very few entity crashes atm

robust scaffold
#

Hybrid?

rotund token
#

entities graphics or whatever it's called now

#

but all the errors are from the srp but yeah it could be at fault

robust scaffold
#

Yea, always gonna call it hybrid. Entities is core dots.

rotund token
#

i want to confirm if chunk components still cause bad fragmentation

robust scaffold
#

Maybe.

rotund token
#

thats basically what those lines show!

robust scaffold
#

I can post a zip of the current source but none of the selection work (other than inspector view) and none of the search bars are implemented.

#

If ya want it now or wait a day or three for me to finish this up

rotund token
#

it's down on my list of things to look at atm

#

but it's something i wnat to check out

#

i believe previously, and based off graphics source it might still be the case

#

but when you add a chunk component new entities will no longer be added to that chunk

#

i need to confirm this

robust scaffold
#

Give me a sec

robust scaffold
rotund token
#

what do you mean?

robust scaffold
#

Tiny has the DOTS_RUNTIME define. The I want to gate a small section of code to run only if netcode package exists

#

or else this debugger will require netcode as a dependency

#

It's just these 3 lines

rotund token
#

they are defined on the asmdef

#

usually unity uses UNITY_NETCODE

#

but you need to set this up on your asmdef

#

this kind of thing

#

but for netcode

robust scaffold
#

Like this?

rotund token
#

Yes

#

You can leave out expression though if you don't care about version

robust scaffold
#

Alright, here's the asmref:

#

yep, plenty of bugs

balmy thistle
#

Wow

rotund token
#

KornFlaks is a man of focus, commitment and sheer fucking will

#

I'm curious how this graph drawing scales to high chunk counts

robust scaffold
#

Shouldn't matter. At most with an extremely fragmented chunk distribution, it's only 128 nodes. It's the backend data gathering that might choke. It's all OOS UIElement coding. No jobs or high performance coding found in the current various DOTS inspectors.

#

It runs on a structural change filter at least. So if you're doing structural changes every update, it might be pretty bad.

rotund token
#

You know I might take your implementation and just inject it into the existing archetype window

#

(just the graph)

robust scaffold
#

Eh. The problem with mine is that I frankensteined it together using a tree view. Every line is a different item. Which is why selection is disabled.

rotund token
#

Hmm I'd have to look

robust scaffold
#

But the graph will probably work with an injection of "ChunkGraph" found under EntityElements

rotund token
#

One of things I really like about ui toolkit is how easy it is to inject ui onto existing ui

robust scaffold
#

You'll need to connect up the ArchCounts which unity doesnt calculate for their archetypes.

rotund token
#

Like the filter I added to hierarchy

robust scaffold
#

Yea, and the ability to see what's actually going on by hovering over an element of the UI is very helpful

#

The graph itself is hardcoded pixel offsets so you'll need to pixel shift using CSS for that

urban ore
#

Would anyone happen to know why NativeList.Add has an in parameter, but the other types of native collections, like NativeQueue.Enqueue don't seem to use in params? From looking at the burst inspector, it seems like adding the in param to my native collection does dodge an extra copy of the struct? Is this maybe just a compilation level thing where I'm not seeing the fully optimized code?

#

Or maybe I'm totally missing some important point about in params in these use-cases?

robust scaffold
#

Ya know, as educational as this journey was. I spent wayyyy to long on this. I'm gonna leave it unfinished for now until I have an overwhelming urge to complete the search and filter functions. Im gonna go back to my sim coding.

pliant pike
#

stupid question but is there some trick to get a bunch of the game objects converted in a consistent same order so that in a nativearray they are all in the same order

#

at first it was converted in reverse order no on second boot its just random πŸ˜•

robust scaffold
#

Alternatively, assign an integer to each one using a monobehavior

pliant pike
#

I can't even use subscenes to be honest they don't seem to be converted into the main scene for some reason when its closed πŸ€·β€β™‚οΈ

robust scaffold
#

?

pliant pike
#

yeah I don't know either I think its some bug with my version/project

pliant pike
#

I guess I'm going to have to do the add the integer thing every new boot the order is completely different, I've never come across this before

robust scaffold
#

With incremental baking, I doubt entity baking is deterministic.

pliant pike
#

well that sucks

pliant pike
#

ok I think I found a way to convert the gameobjects in the same order I just place them all in an empty gameobject and convert that and it seems to work

pliant pike
robust scaffold
#

You on 0.17?

pliant pike
#

no 0.51

#

if I have convert to entity on them all individually then its just random, but if I do it like the above the its in the correct order

robust scaffold
#

Huh

pliant pike
#

I'm sorry I'm not sure what the confusion is

robust scaffold
#

There were a lot of quirks with C2E which is why Unity dropped it with 1.0. I guess that was one of them.

#

Make sure to unparent these entities or else you'll be eating massive transform costs for parenting.

pliant pike
#

oh really, interesting I did not know that, I only have one entity navigating through them so should be fine for now though

robust scaffold
#

Thats if you change the transforms of any of these. If they're all static, then a change filter will skip them.

#

The ParentToLocal 4x4 matrix might be wasting chunk capacity though if not used.

pliant pike
#

ok that's something to be aware of in the future

#

to be honest I would just generally convert them straight to blobassets if I was going to do things completely properly

robust scaffold
#

I just thought of something, wouldnt it be nice to see the hierarchy broken into chunks?

#

And yes, I did get filtering by archetype working

robust scaffold
# viral sonnet that's neat!

And you can click on the chunk headers to highlight the archetype it's a part of. No more hunting down the components list to find the specific archetype on a list that's 50 items long and foldered. Downside is no scrolling to the chunk info though due to how the list is constructed.

#

And yes, this will show all of the world entities with matching archetypes if player loop is selected (only useful for netcode tbf).

worn umbra
#

Any pros/cons of passing direct instance vs RefRW/RefRO instances to JobEntity's constructor?
I think using RefR/(OW) is better due accessibility check during job execution, but more performant would be using direct instance because two jobs cannot edit the same data. Do you agree with my theory?

rustic rain
#

what are you doing?

#

RefRW and RefRO are only used for aspects

worn umbra
#

I think you are not right. For example GetSingletonRW.

#

How do you want to modify a singleton without RW variant if RefRW is supposed to be for aspects only?

what constructor?
For a class that is implementing IJobEntity

rustic rain
#

it can only be struct

#

it's way easier than that

#

you just use ref modifier on parameters in void Execute

#

codegen will generate job for you

#

ref for modifying ofc

#

in for Read only

worn umbra
#

My bad. I should use better wording. I meant structs, not classes. Anyway, I simplified it here to get quickly to the right point, and with the following messages, I made it quite too simple as it lost its sense. What I meant is IJobChunk, where you need to pass handles for component types and so on, but in some scenarios, you want to get there a singleton that you want to modify. This singleton is passed to other jobs in the same system. So you have to pass your singleton into the job's constructor, and my question was if it is better to pass the Value of RefRW or the RefRW wrapper. I imagine calling the ValueRW will run some locking mechanism; therefore, if I pass it there without the RefRW wrapper, it can be locked for other jobs modifying the same Singleton but different data. They are always touching different data.

grizzled nexus
rustic rain
#

oh

#

I see

#

it's optional though

#

and probably only useful in very large jobs (codewise)

#

with many nested helper methods

#

which get rekt by ref and in parameters

rustic rain
worn umbra
# rustic rain mind showing code of what you are trying to do?

Sorry, it is not about code. It is a knowledge question to check if my theory is correct. When designing these systems in depth, I will need to use the right approach. So I need to understand how it works. I can give you an example:

Let's say you have a singleton. Where do you have stored float3. You will update this float3 with three jobs, where each job is editing one value of float3. You will need to disable some restrictions and do a workaround to be able to do this. Each job will require a set of types that are partially shared between the three jobs. So the right approach is to use IJobChunk here and mark the types as ReadOnly. Each job needs write access to the singleton.

public void OnUpdate(ref SystemState state) {
  var singleton = state.GetSingletonRW<Something>(); // Returns RefRW<Something>

  // apporach 1 - which I think is locking the edit access for all jobs:
  var unwrapped = singleton.ValueRW;
  new Job1{ singleton: unwrapped }
  new Job2{ singleton: unwrapped }
  new Job3{ singleton: unwrapped }

  // approach 2 - you will need to call singleton.ValueRW in the job. 
  // That means each job will try to lock the 'singleton' for itself and it will pontentially throw an error?
  // If they manage to write into the singleton at the same time 
  new Job1{ singleton: singleton }
  new Job2{ singleton: singleton }
  new Job3{ singleton: singleton }
}

The Jobs in approach1 hold a reference to Something, and the jobs in approach2 hold a pointer to Something with some write-validation on dereferencing. In one scenario, you are exchanging safety for performance, and in another, vice versa. That is the logical outcome for me.

rustic rain
#

RW can get invalidated before job is actually executed

worn umbra
#

ahh

rustic rain
#

you need to either store entity value instead and pass lookup to collect data during job

#

or just pass copy

worn umbra
#

So the RefRW is WeakRefRW.

rustic rain
#

it's just pointer to actual data

#

but as soon as structural change happens - it can be invalidated

#

and safety system will not pass it

#

you might want to store true singleton data somewhere else outside of entities if you just want to pass pointer to it around

worn umbra
#

Thank you, where did you find this information? I was going through Entities docs and have yet to find an answer.

rustic rain
#

I'v been in this channel for almost a year now πŸ˜…

#

above you can see my implementation of singleton struct concept

#

it's persistent and never gets moved around like entity data

#

one struct type per world design

worn umbra
#

Thank you very much, I understand what is going on now. πŸ™‚

gusty comet
#

Are we able to set an Enableable component as initially disabled from a Baker now?

misty wedge
#

Is there a way to get a ref to a part of a NativeArray<byte> as a specific type beginning at a specific offset?

#

There's SliceConvert, but I can't find anything to get a ref to an element of the slice

robust scaffold
misty wedge
#

Yeah that's basically what I ended up with

#

And there are no alignment issues with this? Since the data will not be memory aligned

#

I've never tried this so just making sure it's fine

oblique cosmos
#

Anyone know if this error is actually a real thing or just something that got messed up? Because Google results are borderline non-existent but suggest it's something messed up, perhaps?

structs cannot be passed to or returned from external functions in burst. To fix this issue, use a reference or pointer.

oblique cosmos
#

So ... your link sounds like it is a real thing, then?

robust scaffold
#

Ah, no. That return float3 will not work

#

use (float3 vector, float3 planeNormal, out float3 result)

#

then assign result. Burst compiled methods must return void.

oblique cosmos
#

I see. Good to know, thanks!

#

I imagine your link will describe everything well enough to figure it out!

misty wedge
oblique cosmos
#

Gotcha, thanks!

robust scaffold
robust scaffold
#

Ah, buried in there. I remember seeing it in 1.6 or something. A while ago and lost it.

misty wedge
#

Yeah it's somewhat hidden in the docs

gusty comet
misty wedge
#

I don't know if there's a function that doesn't need the entity passed, but this also works

robust scaffold
# misty wedge

GetEntity without any properties sent in returns the primary entity currently modified by the baker I believe.

misty wedge
#

I just found it weird there isn't an overload that gets passed nothing similar to the AddComponent method

misty wedge
#

I meant the SetComponentEnabled method

#

Since you don't need to pass any entity to AddComponent

robust scaffold
#

Ah, hrm. No clue

misty wedge
#

Still good to know, thanks πŸ‘

robust scaffold
#

Ya can probably write an extension as well. Just this:```csharp
public void SetComponentEnabled<T>(bool enabled) where T : struct, IEnableableComponent
{
CheckComponentHasBeenAddedByThisBaker(_State.PrimaryEntity, TypeManager.GetTypeIndex<T>());

_State.Ecb.SetComponentEnabled<T>(_State.PrimaryEntity, enabled);

}```

gusty comet
misty wedge
#

Any idea why I can't use the authoring components for physics if I locally import the package?

#

(I have no compile errors)

rotund token
#

Reimport physics

#

I've had this issue a few times with a lot of different packages

#

Where it didn't import properly

robust scaffold
#

Find the package folder in the directory view in Unity and just reimport the entire folder.

rotund token
#

^ good advice because there are likely other issues

robust scaffold
#

Tertle, have you seen the new jetbrains fleet? Looks like a VSCode knockoff

rotund token
#

Yes

#

Looked at it a week or so ago

#

Was interested in the collab features

#

I don't think code with me works with rider still

#

They hit a snag or something

robust scaffold
#

It looks interesting. Using VS code now for generic text editing. Worth moving over?

misty wedge
#

Atleast a month ago when I tested it

robust scaffold
misty wedge
#

Well, the point of fleet is that it gives the same experience. From what I understood initially, fleet uses their other IDE "engines" in the backend for language specific features if you activate smart mode

#

And that isn't the case yet afaik

#

Not sure what the issue specifically is

robust scaffold
#

Huh, ehhhh. Guess I'll just stick with VSC then. If I wanted a code editor, I'll boot up one of the mainline ones.

misty wedge
#

The idea is very intriguing at least, I just worry that their monetization model will completely fail to compete with VSC

misty wedge
#

(since that's free, and fleet isn't)

rotund token
#

You could say the about rider though vs VS

misty wedge
#

Rider has been a lot better than VS for me

#

granted, I'm using rider for free atm πŸ˜…

robust scaffold
misty wedge
#

Although I do commend jetbrains for their licensing model. It's sad that so few companies reduce the subscription fee for long time customers

robust scaffold
#

yea, unless it's cheap enough from the start. I draw the line at 10 bucks a month.

warped fog
#

I’m an atom guy for non C# work, but they’re sunsetting it this month. There’s other editors (is sublime still a thing?), but generally speaking I don’t like all the telemetry vscode sends back. Would love to find a new editor that isn’t a full IDE (I work in nodejs and golang too)

robust scaffold
misty wedge
#

I use VSCode for stuff at work exclusively, which is mainly python and some JS. For those languages it has very good support imo

warped fog
safe lintel
rotund token
#

oh that's huge

misty wedge
#

literally

rotund token
#

huge πŸ€”

#

i guess i have to pull with git/lfs

safe lintel
#

isnt it git lfs that doesnt work with download?

robust scaffold
#

No announcement, huh

safe lintel
rotund token
#

Audio seems to just use a pool of audio sources

safe lintel
#

its really underwhelming(the audio), just got it to play now

robust scaffold
misty wedge
#

I thought graphics with HDRP already supported all light types?

robust scaffold
#

As hybrid components.

misty wedge
#

Ah, I thought they were converted to some kind of ECS format

robust scaffold
misty wedge
#

I wish all of the rendering components were at least available as hybrid components

robust scaffold
#

Tilemap renderer when?

rotund token
#

2033

misty wedge
#

SortingGroup is also missing

robust scaffold
#

I mean, theoretically it's simple enough to remake. It's all the in-editor tooling and rule tile functionality that's difficult to replicate. Although those are open source.

#

And physics integration. I need the ability to pull a tilemap collider into a mesh for DOTS physics and coding that seems like pain

misty wedge
#

Yep, I use entities for object collision atm

#

(and also since they need to be synced by the server)

robust scaffold
#

Although theoredically I can do so using a 2 pass cube/rectangular length set process but that's just pain.

viral sonnet
#

unityhub3 is a POS: Unable to refresh license. Please try again.

#

anyone has downloaded the full megacity demo?

safe lintel
#

yeah

viral sonnet
#

tortoisegit is stuck on Resolving deltas: 100% (2401/2401), done. and the project keep growing

#

how large is it?

#

just the assets folder

safe lintel
#

17.9 gb

viral sonnet
#

whoa ok πŸ˜„

safe lintel
#

I took the dog for a walk while fork downloaded it πŸ™‚

viral sonnet
#

they still didn't bother to add 2022.2.0f1 to unity hub ...

robust scaffold
viral sonnet
#

i see

#

great f1 release πŸ˜„

#

lol

#

or i dunno, maybe it's supposed to be that way

rotund token
#

i don't think that is meant to be a user facing page? (or maybe its just broken =D)

robust scaffold
#

Heh, yea. Just use the unityhub link below it in edge

#

It should open up unity hub that will prompt the download

safe lintel
#

github page for megacity has a link for the hub editor

robust scaffold
viral sonnet
rotund token
#

unityhub://2022.2.0f1/1c1f8590be28

#

works for me just tested

safe lintel
#

unityhub://2022.2.0f1/1c1f8590be28 this one? i did set my url association with the hub

rotund token
#

if it doesn't work you blocked permissions or something at some point

viral sonnet
#

hm, i already have it installed now. link works now for some reason πŸ€·β€β™‚οΈ

rotund token
#

SystemAPI.Query still doesn't work with structural changes right?

misty wedge
#

I don't think so, didn't see anything in the patch notes

rotund token
#

shame but whatever, ToEntityArray from query it is

#

(cant use ecb, this is for setting up managed components)

robust scaffold
rotund token
#

i just want to add a managed component

#

which i don't think is allowed as it affects the existing chunk

robust scaffold
#

On a side note, I finally gotten around to testing havok vs unity physics for circle on box and box on box sliding. Surprisingly, unity physics without contact stabilization is superior to havok in sliding across edges with minimal jumping / repulsing artifacts. Havok is really bad at sliding boxes.

warped fog
misty wedge
#

It's still pretty fast with the batch set methods, but actual support would be nice

robust scaffold
#

Havok has extremely sharp jumps when sliding across edges between colliders at all box bevel radii whereas unity physics without contact stabilization has near un-noticable jumps at 0.075 (each static box being 1x1x1 unit cubes).

warped fog
robust scaffold
#

Unity physics with contact stabilization had the same sharp jumps as havok so I think it's something to do with stacking stability.

#

As my game is 2d top down with no stacking, disabling it is free.

rotund token
#

ooo this megacity

#

has an updated? custom entities HLOD package
I found it interesting that it was removed from entities graphics

robust scaffold
#

I say sharp jumps as in 2 or 3 pixels whereas unity physics without CS has 0 or 1 pixel of jumping.

robust scaffold
warped fog
safe lintel
robust scaffold
safe lintel
#

think the havok physics settings

#

add a havok component last time i used it should be there?

robust scaffold
#

Ah, lets see if this changes anything

robust scaffold
#

No difference. Still 2-3 pixels of jumping.

robust scaffold
rotund token
#

did you mark your meshes

#

with the tag?

#

hmm

robust scaffold
#

This is the wall setup. Slide up and down.

#

It's worse if the wall bevel radii are 0.

#

Sliding across a lot of edges is something very specific to my use case but it's rather interesting that unity's free solution is superior to microsoft's paid version. Although their version is intended for stacking stability.

rotund token
#

@safe lintel just out of interest, how long did it take you to import all the megacity subscenes?

#

i am quickly realizing 32GB of memory is not enough for Unity development anymore 😰

rotund token
rotund token
#

progress update: 163 seconds to do 18 of 96

robust scaffold
#

They shouldnt have autoload toggled on. Wow

rotund token
#

slowly popping in

rotund token
#

none of my subscenes have autoload enabled (i have a script to force disable to go through my subscene loading) and they always bake on domain reload

robust scaffold
#

Wow. I did read last night you had a talk with one of the unity peps on baking performance. Anything come about that?

rotund token
#

pretty sure my workflow is going to have to be keep all game subscenes in a separate scene and just keep a basic development scene in the main

#

wont be able to play the actual game without a few minute wait

#

progress update: 357 seconds to do 33 of 96

#

estimating 17min to import the subscenes for this

#

glad i finally have something large enough to test this

robust scaffold
rotund token
#

going to painfully do a bunch of workflow testing on this subscene

#

probalby going to legit buy the fastest AMD and fastest intel cpus on market early next year

#

just to compare which can import faster

misty wedge
#

I upgraded recently, it made a huge difference

rotund token
#

my cpu is /good/ though

#

it's still the 2nd fastest at work even though it's 2 years old

robust scaffold
#

I got some empty timeslots on my uni's supercomputing cluster. I wonder if I can chuck unity onto it...

misty wedge
#

My CPU was really old thats probably why it made such a big difference

rotund token
#

(just in case anyone is interested, i'm doing like pre-pre production work for a decent budget project that intends to be quite open world which is why i'm so focused on editor workflow on subscenes atm)

robust scaffold
#

Makes sense, and faster subscene loading in general helps everyone

rotund token
#

i don't want to be committing to a workflow that is going to cause us problems 2 years in

#

obviously unreal 5.1 is extremely tempting for this type of project now that it supports skinned renderers

#

but i'd rather not suggest pivoting the company...

misty wedge
#

You could probably write something similar to unreal's map chunk system using subscenes

rotund token
#

oh i already have something similar

misty wedge
#

I assume that'd be useful for a large open world

rotund token
#

progress update: 829 seconds to do 78 of 96

robust scaffold
#

Hopefully you dont need to rebake every domain reload

rotund token
#

i totally have to rebake every domain reload, and that's my issue

robust scaffold
#

Even closed subscenes?

rotund token
#

from my testing yes

robust scaffold
#

oh god

misty wedge
#

Why do they need to rebake?

rotund token
#

well if you made a data change to a script that was baked

#

there's no way around it

#

but if I'm not changing the runtime data (and authoring I guess though this feels optional) then I really think they need to find a way not to rebake it

misty wedge
#

Well yeah, but you aren't doing that each recompile

rotund token
#

at least this is using 45% of my CPU

#

1137

#

just under 19min

#

let's just hit play before i test a domain reload ^_^'

#

i suspect the next import won't be as slow - i've realized this is on my slowest drive by far because my normal drive had no space

#

so i'm going to move it

#

and try again

#

hilarious good start, menu didnt support ultrawide πŸ˜„

#

they've put some effort into this menu, i like

robust scaffold
rotund token
#

it's running impressively well

#

mostly just editor overhead

robust scaffold
#

21 fps, very chunky editor

rotund token
#

it's mostly phyiscs

#

the actual render part here is great

robust scaffold
#

the coreeees

rotund token
#

i have 20M tris on screen

#

3521 batches

misty wedge
#

took roughly 500 seconds for me

#

but I was playing rimworld at the same time so maybe it wouldve been a bit faster

rotund token
#

so i'm running it again ^_^'

safe lintel
rotund token
#

i suspect i'll be about 500 as well

rotund token
#

so that was good

#

very happy with this performance from rendering side

#

in a build i shouldn't get those double physic updates

safe lintel
#

@robust scaffold i did have my ground set to the tag used for contact welding

robust scaffold
#

It's not amazing visually but it's amazing technically. Especially as someone with some experience with rendering

rotund token
#

i want to test this in a build

robust scaffold
rotund token
#

that 2ms for cpu rendering beating expectations

#

if i can get past baking import workflow issues this seems promising for project

#

physics next concern ^_^'

#

so much wasted cpu time in Initialization as well

safe lintel
#

the player car sound is really obnoxious now πŸ™‚

robust scaffold
#

looping generic car mp4. If unity couldnt be bothered to find a good audio source, just dont have any.

safe lintel
#

@rotund token have you tried moving any subscene gameobjects around? i just tried moving some wall section and its a slideshow

rotund token
#

interesting

#

incremental baking is the thing that has worked pretty well for me

#

but no i haven't, i'm making a build which requires another bake

#

my poor memory though

#

legit need 128GB next machine i'm not falling for the 64g trap! (i would like it to last a little while)

#

oh that said, ram is expensive atm not sure i can afford that

viral sonnet
#

i can't get out of the hit play-> crash loop

safe lintel
#

live conversion is a bit heavy

#

can that even be disabled now? didnt see the option in preferences, switching to non runtime authoring mode has the same result performance wise

rotund token
#

you can

#

but you need to go into internal

#

and it resets on domain reload

safe lintel
#

and crash, internal where?

rotund token
#

open the about window

#

type internal

#

you will see duplicates in your scene view though

viral sonnet
#

hm, i didn't turn off safety checks now and first time play worked

rotund token
#

because it wont update the old baked version

viral sonnet
#

rendering is pretty good. mostly around 1ms

#

aaand crash again. wow

rotund token
#

suckers i have not crashed at all

#

(i am tempting fate)

safe lintel
#

with live baking off performance is still kind of bad, like 5fps stutter but better than like 0.2fps before. and crash!

viral sonnet
#

so overall, it's no nanite but still allright πŸ˜…

rotund token
safe lintel
#

just 1

rotund token
#

i don't think in this scale of project you will be editing it as a subscene

#

just open it as a regular scene

viral sonnet
#

yeah

safe lintel
#

it was actually decent performance all those years(!) ago when they first released it

#

like nowhere near the crashes and slowdowns

viral sonnet
#

then baking happened

rotund token
#

really? megacity wrecked me originally

#

i still have the project here

viral sonnet
#

try it. I don't trust my memory 😜

safe lintel
#

yeah still got it somewhere too though I think some dependencies got messed up as it complains about certain packages not being available

rotund token
#

make a build

safe lintel
#

so you gotta upgrade some stuff and newer versions arent compatible with the old code(afaik dspgraph package is one)

rotund token
#

hope it works (it did)

#

ok

#

so

#

i can domain reload in megacity without importing scenes again

#

even restarting unity does not require this

#

it's caching fine

#

which is great

#

but what the hell is going on

rotund token
#

all this complaining and it works as expected

robust scaffold
#

I saw the gif on the forums and it had building blinking in and out. Distant sure but still pretty obvious

rotund token
#

oh yeah i saw at least 3 cases of this

#

just seems like some lod settings not setup well

robust scaffold
#

The async loading of subscenes was smooth but the LOS/D needs work.

#

Or crank up the distance fog setting if they had any

viral sonnet
#

i saw something on twitter that has really cool, nearly invisible lod fading

#

don't quote me on it but it looked official

robust scaffold
#

That looks so odd.

rotund token
#

thats because you're seeing it up close

misty wedge
#

Crashes instantly in the editor for me too

robust scaffold
#

An entity with only a static physics shape and ghost authoring (i.e. no custom components) is capped out at 58 entities per chunk. So sad.

safe lintel
#

y'all getting your questions ready for the dots dev day q&a?

robust scaffold
#

I just want to know what is being or will be done on the hybrid components side. That's the largest pressing question

safe lintel
#

i wanted to ask that question too but i think the answer is nothing

robust scaffold
#

yea, and the unity peps who pop in here occasionally largely echo that

#

Maybe if the dots rendering folks stop by, if one of them can provide an example where they used compute buffer begin write() and somehow synchronized CPU writing with GPU reading.

rotund token
#

"look at megacity to see how you can do it!"

#

only question I have which i doubt would be answered

#

is what new features are coming to animation? is it just a big rewrite using existing statemachine approach or will we get modern animation features, for example motion matching?

robust scaffold
rotund token
#

they kind of left animation off one of the topics to ask about

#

but yeah i'm pretty sure any feature answer would be vague

#

generally you'd want to show those off in some big push!

robust scaffold
#

topics concerning ECS, Entities, Entities Graphics, Burst, Jobs, Netcode, Character Controller, Unity & Havok Physics, and Samples & Documentation
hrm

rotund token
#

^

safe lintel
#

gonna ask about animation cos they teased it in the blog

#

cant mention animation and not expect followup questions!

balmy thistle
#

…

robust scaffold
#

Maybe what's the status of world specific baking. Like client and server worlds. There's clearly method hooks inside the baker right now but they dont work.

rotund token
#

then loaded it on server (in play mode)

#

and it seemed to bake again before loading

#

i was confused because i didnt think this was hooked up yet

robust scaffold
#

Using the multiplayer tools?

rotund token
#

no

#

i do have concerns about this client/server baking doubling bake times ^_^'

#

but i am feeling a bit more confident about this scaling after testing megacity

#

giant first bake, seems reasonable stable reloading

rotund token
#

removing components or adding extra things

robust scaffold
#

netcode does a lot of structural changes...

rotund token
#

yes

rotund token
#

I:\Documents\BovineLabs\com.bovinelabs.game\Library\PackageCache\com.unity.netcode@1.0.0-pre.15\Runtime\Connection\NetworkStreamDriver.cs(197,13): Burst error BC1016: The managed function `Unity.NetCode.NetworkStreamDriver.<>c__DisplayClass20_0.<Listen>b__0(Unity.NetCode.NetworkStreamDriver.<>c__DisplayClass20_0* this, ref Unity.NetCode.NetworkDriverStore.NetworkDriverInstance instance, int driverId) -> void_aef4d46f9ec6d18a03913cfa3cd76414 from Unity.NetCode, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null` is not supported

#

why is this not an error for other people

#

oh wait

#

i guess issue is i'm calling it from burst

#

and it's not supported

#

that'd be why, just stack is useless

dense oriole
#

hey -- can you somehow limit the number of workers working on an IJobEntity? I'd like to set a max number so I can preallocate less memory :p

rotund token
#

there's 128 max workers

#

which can be retrieved from

#

JobsUtility.MaxJobThreadCount

#

0-127 thread index

#

there's also
JobsUtility.JobWorkerMaximumCount
and
JobsUtility.JobWorkerCount

#

if you want to limit total number of workers

dense oriole
#

thanks! ❀️

viral sonnet
#

my crashes from megacity πŸ™‚

robust scaffold
rotund token
#

these are mostly crashes i see in my normal project

#

i have a feeling if you turn off burst they go away

robust scaffold
#

turning burst off megacity though

rotund token
#

well i accidently baked it without burst

#

then turned it on

#

and never crashes

#

i mostly see this in my own project with burst on and some weirdness

#

turning burst off

#

clearing cache

#

and restarting editor usually seems to make things better

#

that said, this is anecdotal i have no actual hard evidence for this

viral sonnet
#

the stacktrace is always a bit different.

rotund token
#

o_O

robust scaffold
#

enzi here with those infectious crashes. gonna make tertle's megacity crash as well

viral sonnet
#

haha, what. it's just .dmp files

#

has tertle scanned a virus in my memory dump?

robust scaffold
#

They're all segmentation faults on deallocation. I had this problem plenty of times when I mistakenly overran my pointers. They might have a ptr[++i] instead of ptr[i++] somewhere.

rotund token
viral sonnet
robust scaffold
#

my windows defender said the files were perfectly fine

rotund token
viral sonnet
#

good old windows defender

rotund token
#

this is like first time in 2 years windows defender has actually scanned something for me

#

very odd

robust scaffold
#

just scanned my downloads folder

robust scaffold
viral sonnet
#

i rather rely on malwarebytes πŸ™‚

#

windows defender has too much false positives and the realtime protection slows the system down way too much

rotund token
#

1 false positive in 2 years

#

isn't that bad

#

(or is at false positive 🧐 )

viral sonnet
#

even if, how would a .dmp file hurt you? πŸ˜„

robust scaffold
#

I've never had any false positives with WD. In fact, I dont think it even runs

viral sonnet
#

best of both worlds! but seriously, turning off realtime protection speeds up your system

rotund token
#

not much point in running it at all then πŸ˜„

#

i really don't find any performance issues (at least not since i ditched mechanical drives years ago)

viral sonnet
#

the slowdowns are huge with creating large files

#

if you don't do that you are mostly good

rotund token
#

hmm let me test

#

how big is large?

#

a 3GB didn't even register on a profiler from windows defender

#

was near instant

#

i would have thought lots of small files would be more problematic tbh though

viral sonnet
#

you sure you profiled the right exe? yeah, a large amount of small files is also problematic

#

and watch for hdd reads

rotund token
#

yeah i had 0 hard drive reads

#

thats the primary thing i was watching

viral sonnet
#

well then it wasn't scanned i'd say. you would see at least some read

rotund token
#

11GB file in 7s 1.5GB/s

#

well yeah it's obviously not being scanned

#

so it's not slowing me down πŸ€”

#

anyway i know this used to be a problem

#

we had an old guide in some doc that was like, exclude unity project from windows defender to speed up workflow

#

i think it was related to building project speeds

#

made like a huge difference

viral sonnet
#

i turned it off several years ago. maybe it got better. are you running w11?

rotund token
#

no

#

until they give me my vertical task bar back without 3rd party software

#

they will not get me on W11

viral sonnet
#

same brother

#

haha i feel so petty about this but what can i say.

rotund token
#

i lose 223,600-93,600=130,000 pixels with a horizontal task bar

#

i will have none of it

viral sonnet
#

preach it!

#

i don't know what they were thinking with this change. i'm annoyed by the lack of a vertical task bar and i don't even have a ultrawide monitor

rotund token
#
Obtained 20 stack frames
0x00007ff64a3b36fe (Unity) DynamicHeapAllocator::Deallocate
0x00007ff64a3b3f72 (Unity) MemoryManager::Deallocate
0x00007ff64a3bc90a (Unity) free_alloc_internal
0x00007ff649c919a1 (Unity) dynamic_array<void * __ptr64 [38],0>::~dynamic_array<void * __ptr64 [38],0>
0x00007ff64a63f73f (Unity) SharedMeshData::~SharedMeshData
0x00007ff64c1f02ca (Unity) Mesh::ReleaseAndAssignMeshData
0x00007ff64c1e79e4 (Unity) Mesh::`vector deleting destructor'```
#

you know what, that's enough unity for today

#

too many crashes, i'm doing something else

#
  at (wrapper managed-to-native) Unity.Collections.LowLevel.Unsafe.UnsafeUtility.MemCpy(void*,void*,long)
  at Unity.Entities.Editor.UnmanagedSharedComponentDataDiffer+UpdateShadowChunksJob.Execute (System.Int32 index) [0x000ff] in I:\Documents\BovineLabs\com.bovinelabs.shattered\Library\PackageCache\com.unity.entities@1.0.0-pre.15\Unity.Entities.Editor\Hierarchy\Model\ChangeTracking\UnmanagedSharedComponentDataDiffer.cs:870 ```
robust scaffold
viral sonnet
#

KornFlaks is laughing while he doesn't realize I've him infected for years

rotund token
#

i've barely been using unity today

#

whenever i do it's just crash after crash

#

cbf

viral sonnet
#

are you running f1?

rotund token
#

?

#

oh yes

robust scaffold
#

He's on 2022.2F1

viral sonnet
#

i think that release is cursed