#GrubStomper29's OpenGL Sandbox

1 messages · Page 5 of 1

plain mantle
#

Did they not blur out your username?

gilded shell
#

no

plain mantle
#

I can't watch it rn

gilded shell
#

he pretty much showed one of demon’s reddit comments

plain mantle
#

But yeah if I was showing discord messages I would blur it out

gilded shell
#

actually everything he said was in the comment. Out of context or not, it was all factually correct i suppose

#

I’ll chalk it up to a research error; anything to defend the guy calling his game “AgarthaCraft”

kind sparrow
#

It's not insulting it was just part of a discussion about Vulkan being a bad first graphics API, I didn't mean to imply that Vulkan was impossible in general

#

The context was about learning graphics programming via Vulkan

plain mantle
#

I'm slowly becoming the joker and moving towards the opinion that actually directx 9 is the one true graphics api

kind sparrow
#

Hahah

night shoal
#

these kind of videos are absolutely stupid

#

i just watched 5mins of it

#

but so are all the things he mentioned in the first 5mins

#

people need to get out of tutorial/youtube/reddit hell

gilded shell
#

i see

gilded shell
#

have you guys seen Code Gain’s devblog

#

im much more fond of it

plain mantle
#

After having watched it, you should have known better than to post on reddit KEKW

kind sparrow
#

Very true lol

gilded shell
#

tmrw, Godwilling, ill spend ~3 hours searching for oob or ub

#

quick question though, wouldnt the error message mention oob if the error was oob?

kind sparrow
#

It's probably not OOB access

#

I mentioned that option because the secondary thing it does is clear buffers to a weird value

#

Which you can just clear to that value manually with glClearNamedBufferSubData or whatever it's called

gilded shell
#

what do you think it is? I really have no clue where to start looking

#

other than going thru the trouble of getting rd to work

kind sparrow
#

The idea is to try and get your system to ingest bad values so that you can repro the bug on your machine

#

RD doesn't really help with sync issues

gilded shell
#

okay

#

im not convinced this is sync though

kind sparrow
#

I missed the issue, what actually happens

gilded shell
#

.

#

the error doesnt happen for me

#

thats pretty much the full extent of what we know

plain mantle
#

Are you running debug or release?

#

I was running in debug

#

I never tested release

gilded shell
#

debug

plain mantle
#

Ignore it for now I guess until more people report it

gilded shell
#

if you have no clue then i must truly be in trouble

plain mantle
#

I may not be the super genius you take me for KEKW

gilded shell
#

still

plain mantle
#

I'm just really persistent

gilded shell
#

@kind sparrow if youre on windows you could try this out if you want

#

Jake and I worked it into a compilable state a few days ago

plain mantle
#

You might want to just make a precompiled version to make it easier for people

gilded shell
#

i dont have an exe signing cert

plain mantle
#

Why do you need one?

#

I never signed my exes

gilded shell
#

i thought windows stops you if the exe isnt signed

kind sparrow
#

No

plain mantle
#

It might warn you

night shoal
#

you could check if you download the exe if its blocked, by rightclicking it -> properties -> "Blocked" -> Unblock, if its blocked it may or may not run properly

plain mantle
#

but outright stopping you would be insane

gilded shell
#

perchance

#

just ship me your pc jake

plain mantle
#

I kinda need it for ASO lol

gilded shell
#

alright

night shoal
#

move in with jake, grubbi

plain mantle
#

Come to Canada yeah

night shoal
#

Canada will also soon join the EU

gilded shell
#

i dont think id like it there

plain mantle
#

Why not?

gilded shell
#

from what ive seen and heard, its about 5 cities and then uninhabitable wasteland

#

most geographically literate american highschooler

plain mantle
#

Nah its quite nice actually, we have nice nature

gilded shell
#

natures always a plus

#

but we cant be talking about this

#

we gotta talk about this bug

kind sparrow
#

Do you have integrated graphics on your computer

gilded shell
#

nah

kind sparrow
#

You could try running on Intel drivers

#

Hm

#

And no other machine to test on

gilded shell
#

nah

#

i do have another cpu that does have igpu

#

but cpu swap for this would be insane

plain mantle
#

Maybe not worth repasting yeah

#

I have extra machines that I cobble together for cheap, really handy for this kind of stuff

gilded shell
#

what about a different driver?

plain mantle
#

Yeah you could try that

kind sparrow
#

Yeah I have my main win10 desktop with an Nvidia card and then my Linux laptop on mesa integrated graphics, gives me a lot of coverage for this kind of thing

#

Stupid question but you do have your debug callback set up right

plain mantle
#

It looked correct to me

gilded shell
#

yeah

kind sparrow
#

Crashing on mapping a buffer is the kind of thing that the debug should tell you about

gilded shell
#

iirc synchronous is enabled

kind sparrow
#

Do you have a memory sanitizer

#

You could be corrupting the heap and smashing the user mode driver

plain mantle
#

yeah synchronous was definetly enabled

gilded shell
#

i couldnt tell you what that even is

plain mantle
#

Oh one more thing to check

#

the compiler version

#

This is one more reason to ship binaries

gilded shell
#

i see

gilded shell
#

i think mines mostly up to date

plain mantle
#

Well if they are different

#

there could be UB that shows up in one and not the other

gilded shell
#

okay

#

im not on my computer rn

kind sparrow
#

I don't think that's an issue here

gilded shell
#

i could check tmrw morning

kind sparrow
#

An API call is a foreign function call regardless of compiler and the driver is already compiled

gilded shell
#

thats true

kind sparrow
#

Are you using visual studio

gilded shell
#

yes

kind sparrow
#

Turn on asan

#

It might be tough to get through the memory errors that your libraries have like glfw but if you can then it'll tell you if you're doing anything abhorrent with memory

#

This is why I like Linux for this since it has valgrind

gilded shell
#

alright

#

i cant wrap my head around why theres no gl error

kind sparrow
#

Basically you are writing off the end of a buffer somewhere far enough that you're corrupting memory allocated by the driver

#

The checks on validating the API usage can't catch that

gilded shell
#

you said oob was unlikely

#

mind changed?

kind sparrow
#

Yeah

gilded shell
#

or am i misinterpreting the meaning of oob froge_bleak

kind sparrow
#

Well

#

The OOB that RD catches is out of bounds access of mapped pointers specifically

#

This could be anywhere though not just in GL usage

#

One thing you can do is go change every std::vector [] access to .at()

#

That will bounds check everything

gilded shell
#

perhaps

#

i wonder if this could be on the gpu side?

kind sparrow
#

Nah

#

I can't think of any mechanism

gilded shell
#

i see

#

i believe i already use .at for my maps because i couldnt type to save my life

kind sparrow
#

It's not a risk for maps

gilded shell
#

ah yeah they zero init everything i think

kind sparrow
#

It's for std::vector because its operator[] is a raw unchecked array access

#

map will never let you access oob

gilded shell
#

i wonder if i couldve passed a wrong size to a gl function?

kind sparrow
#

Possible

gilded shell
#

imo thats more likely

#

i dont think i use vectors very often in the main loop

#

@plain mantle could you do me a huge favor and try disabling the “update view frustum” setting on the imgui window and see if that helps

plain mantle
#

Yeah I'll do it in a little bit

gilded shell
#

alright, thank you very much

#

thatll disable hzb writes which could narrow it down

gilded shell
gilded shell
#

I just tried that older sponza on the oldest gpu driver I could find and didn't experience the issue

gilded shell
#

Address sanitizer doesn't report anything

gilded shell
#

i also skimmed thru most of my code and didnt find any glaring issues

night shoal
#

didnotread what is the current problem?

gilded shell
#

Jake is running it on his machine and this happens

#

we think its oob stuff but address sanitizer isn't reporting anything wrong

night shoal
#

is your github repo up2date so that i could just clone and run?

gilded shell
#

on windows, yeah

#

besides some minor changes

#

see if you can run it with address sanitizer on

#

that hasnt been ennabled on the repo yet

night shoal
#

latest commit is 4 days ago though

#

hmm and i have to copy some model in or something?

#

ah dreaded working dir nonsense

gilded shell
#

nah you do have to copy in some model

#

working dir is correct iirc

night shoal
#

cubes.glb works fine

gilded shell
#

just drop this in the assets folder @night shoal

night shoal
gilded shell
#

is mem sanitizer on

night shoal
#

idk

#

how do i check that

gilded shell
#

not by default

#

Properties->C/C++->General->Enable Address Sanitizer

night shoal
#

works too

#

im on latest win11 23H2 (not 24H2) btw

#

and nvidia dribers 566.14

gilded shell
#

interesting

night shoal
#

im also on a RTX 4070 if thats relevant

#

and an AMD 5950X with rebar enabled

gilded shell
#

okay

plain mantle
#

Without the view frustum update I get the crash slightly before

#

turning on asan

#

Ok same place with asan

night shoal
#

the ckechbox isnt doing anything for me

#

i dont see any difference at least

plain mantle
#

@gilded shell How many monitors you have?

gilded shell
#

1

plain mantle
#

I think I've figured out how to trigger the crash

gilded shell
#

genius

#

how

night shoal
#

im also on 1 monitor only

plain mantle
#

If I click into discord on the other monitor then go back it crashes

gilded shell
#

thats kinda funny

#

maybe my sdl2 is maladjusted

plain mantle
#

Here is my hypothesis, based on where the crash is

#

One of your indirect draw commands is reading past the end of the vertex or index buffer

#

Like why are you uploading a default initialized draw command in there cpp SceneObject::IndirectDraw indirectDraw{}; void* map{ glMapNamedBuffer(sceneObject.mIndirectDrawBuffer, GL_WRITE_ONLY) }; std::memcpy(map, &indirectDraw, sizeof(SceneObject::IndirectDraw)); glUnmapNamedBuffer(sceneObject.mIndirectDrawBuffer);

gilded shell
night shoal
#

ah i can provide the compiler versions too if that helps

#

VS 2022 Professional Preview 17.13.0 Preview 2.1

gilded shell
#

thanks guys i’ll see what i can do

plain mantle
#

I'm on 17.12.4

gilded shell
#

@plain mantle have you tried turning sanitization on

plain mantle
#

I did

#

no change

#

Here's what I suggest, ignore the problem for now, sooner or later the UB will manifest on your machine, you can tackle it then

night shoal
#

have you tried clean removing the gpu driver and just install 566.xx (or the studio driver)

gilded shell
#

nah i just went to the oldest driver on the nv website

plain mantle
#

Then you do nothing

#

If someone else's thing crashes then you can look at it again

#

but so far its just me

night shoal
#

ah, lol

#

for the whole time i thought its crashing on grubbi's pc

plain mantle
#

Nah only me

night shoal
#

@gilded shell if you have a 2nd monitor or if you can grab a 2nd one, to see if you can trigger that beehaviour then you might be able to do something about it

gilded shell
#

i dont have the right cable for that, so that’s also a wild option

night shoal
#

maybe one of your friends has the right cable and could help you out

gilded shell
#

we’ll just say jake’s pcie has a lane that malfunctions but only for this project

night shoal
#

: )

gilded shell
#

I just watched jurassic park and lost world again

#

masterpieces

kind sparrow
#

haven't seen lost world

#

steven spielberg movies are cool though

#

have you seen Close Encounters

gilded shell
#

nah

gilded shell
#

give it a watch

kind sparrow
gilded shell
#

Jurassic World is also pretty good

#

park iii and all the jurassic world sequels can be skipped though, theyre pretty lame

#

iii has spinosaurus though, greatest dinosaur to ever live

gilded shell
#

Adding a view id to my clusters—I've conviniently left these paddings here, so sizing shouldn't be an issue like last time

#

I really should not have 5 copies of the same struct across several cpp files

#

per view, I need:

Frustum viewFrustum
mat4 view
mat4 proj
vec4 cameraPos
sampler2D hbz (goodness I need an hbz per view)
float zNear
#

where frustum is currently 6 vec4s but could be 5

#

I wonder how gl will pad that

west trail
#

why camera pos is vec4

gilded shell
#

trying to get vec3s working in a glsl struct is pain

west trail
#

not really, just alignas(16) and it works most of the time

#

you can pad that depending on your frustum struct

gilded shell
#

still I have been advised by both the opengl wiki and iirc demongod to avoid vec3s

#

since all of the time is a lot better than most of the time

#

anyways I've never dealt with struct padding. I wonder if I need to pad that like 6 vec4s or if them being in a struct makes it different

#

LOL I forgot I did this

#

I'm thinking about sticking to in-code credits for smaller portions of code, e.g. that single debug output function being written by fendevel. Is this kosher?

west trail
#

why dependencies are marked as todo

night shoal
#

ye perhaps a typo 🙂

gilded shell
#

dependencies?

#

the credits? because i’m still not done writing those

night shoal
gilded shell
#

yeah

night shoal
#

thats totally up to you

#

you are free to do anything you like

#

ive seen people giving credit in code with a comment to some algo they found on stackoverflow or on some blog of someone

gilded shell
#

lol

#

I need to credit some of yall too

#

lvrsri and jasmine for nanitisms

#

lukasino a bit too

#

and probably deccer and demon for helpful guidance

#

“This project was made possible using code from:

and mentorship from:
…”

haughty shoal
junior sparrow
#

having transform index and material index is cursed also

night shoal
#

i have this

junior sparrow
#

I should give some credits too KEKW

gilded shell
#

but i figured the vice versa would be less memory intensive

junior sparrow
#

should go to mesh struct?

gilded shell
#

all jokes aside it works and its simple

#

memory usage isnt much of a concern in this project so far

junior sparrow
#

it works but I cry in VRAM usage. In my test scene I have 1.2GB VRAM usage KEKW

gilded shell
#

me too I think

#

but your test is what, 100 bistros?

junior sparrow
#

7**3

gilded shell
#

mine is one 🫠

#

i can always optimize for memory later

#

(never)

#

but in reality i want lightmaps so i probably have to at some point

junior sparrow
#

the textures is using 90% of your VRAM there

#

I remember them being 923MB something like that

#

got it down to 160MB and then texture streaming which cut it 10MB

gilded shell
#

oh yeah for sure

#

i dont even compress them

gilded shell
night shoal
#

im not sure, the funny moments all happen accidentally

kind sparrow
#

You certainly can just use vec3 with alignas or manual padding btw it's just my personal preference to not

gilded shell
#

yeah i think vec4 will just be easier

plain mantle
#

I prefer to use the vec4 for buffers (over alignment) because you can pack something in the w component

kind sparrow
#

Yeah I do that often too

#

Resulting in delightful names like vec4 positionRadius;

plain mantle
#

I have names like position_wfalloff

#

or direction_wrange

night shoal
#

i put them into vecs as well

#

CameraPositionAndAspectRatio
CameraDirectionAndFov

night shoal
haughty shoal
#

I don't like the gl types because they start propagating elsewhere in the app, where do you draw the line

night shoal
#

but if that cluster type lives in that part where everything glThisAndThat lives then its also fine

haughty shoal
#

yeah when I didn't know anything I was using gl types all over my app

#

it was gross

night shoal
#

it doesnt really matter in the end anyway

haughty shoal
#

I just had to import gl everywhere, where it made no sense to

night shoal
#

hehe

haughty shoal
#

it's all uint32_t and float now

west trail
#

I use std::uint bleakekw

kind sparrow
#

If you use my superior code architecture strategy then you don't leak anything

haughty shoal
#

everytime I see your code I'm jealous

#

it's always great code

#

you're not even a software engineer for a living right

kind sparrow
#

There are tradeoffs that aren't always visible in small snippers

#

No I'm not although my programming background is extensive

#

I was a CS major for my first 1.5 years in school and I took a computer engineering minor

haughty shoal
#

maybe having a job writing code ruins us

#

because we're always being forced to write shit code to meet deadlines our standards drop

kind sparrow
#

I think the bigger factor is just that I take maximum advantage of not being beholden to any other contributors

haughty shoal
#

there's that too

kind sparrow
#

I think if you work a pro software job your instinct is always to have things be more structured

#

Whereas I just literally write what is most immediately convenient for myself without really worrying about extensibility or maintainability

haughty shoal
#

seems like extensible and maintainable code to me idk

kind sparrow
#

It is at a more macro scale of like "I could just throw away these 5k lines of code and rewrite it without touching anything else" but not as much on the micro scale maybe

#

Idk

#

It's certainly good enough for my purposes on the micro scale

#

The other thing is my projects are all driven by very specific technical obsessions that drive my design decisions so I'm always on a bright straight line path towards some deep feature

kind sparrow
#

I was referring to my strategy of basically doing encapsulation at the translation unit level

#

So my header file contains purely the interface rather than the traditional strategy of the header containing the private implementation details too

gilded shell
#

oh interesting

kind sparrow
#

Normally if you want to write some graphics system in class form you'd need to either store pointers to incomplete types C-style or you'd need to include OpenGL stuff into what should be a public header

#

Instead I just have some black box free functions and a public component type that acts as an interface

#

And then behind the scenes in the source file I do arbitrary GL stuff and it stays nicely contained

gilded shell
#

i think im picking up what youre putting down

#

basically your header file abstracts the actual content of whatever its implementing?

kind sparrow
#

Here's the interface for my ground clutter system

#

The component is in another header

#

This is just the header that tells the engine what to call, the "user" (the game) provides the actual implementation in the game renderer folder

#

The implementation is just like 2000 lines of random stuff and raw GL code

#

In this case what I do is I have the game apply the game-visible Clutter component and then the system adds its own component in addition to that one which contains all the private GL BS

gilded shell
#

And this is a huge help to development?

kind sparrow
#

For me personally yes

#

Because I'm always implementing super specialized systems that have the potential to get entangled with other stuff

#

This basically gives me the maximum leeway to write those systems without too much cross coupling

#

The cross coupling that does exist is basically purely data-oriented

#

Or perhaps implicit coupling in terms of update order

#

So you quite literally can just throw away like thousands of lines of code at once without affecting anything else

#

The tradeoff I guess is that it doesn't offer any particular structure internal to those units, those have the potential to get get arbitrarily ugly although for my purposes that hasn't happened too much

#

Often they're small, the really complex ones that would hurt to have to drastically refactor internally are the tree system I just worked on, and the multiplayer server system

gilded shell
#

this is a very appealing design method

kind sparrow
#

So all my programming methodologies are sort of centered around it

#

Data oriented is the name of the game

#

One thing I want to do is figure out how I'd apply this strategy if I weren't using EnTT, since currently it relies heavily on EnTT's magical ability to just slap components onto entities completely dynamically

#

Not that I'm not going to continue using EnTT but I feel like it would cement the strategy more generally if I knew how I'd tackle it without

haughty shoal
#

nice

gilded shell
#

@plain mantle i think id rather learn piano quite honestly

kind sparrow
#

Vs guitar?

plain mantle
#

Guitar is real fun

haughty shoal
#

duolingo sells a learning piano

kind sparrow
#

Guitar depends on your genre of choice

gilded shell
#

or keyboard i guess

#

it seems more fun than piano

kind sparrow
#

I knew a little guitar that my guitarist had taught me when I was in metal bands but I never really took off with it until I started listening to classic country stuff which is way easier to play, and then it was much easier to make progress

gilded shell
#

only issue is i have no room for a keyboard since my room is occupied by my huge drumset

kind sparrow
#

They don't take much space

plain mantle
#

Guitar is kinda nice because you don't need electricity

#

Although its nice with electricity too

gilded shell
#

i see

plain mantle
#

DMB stuff is mostly acoustic no?

gilded shell
#

yeah but the amount of years theyve had a keyboard player is probably greater than the amount they havent

#

between Butch Taylor, Buddy Strong, and Peter Griesar

#

stuff like this and chick corea make me sway towards keys

plain mantle
#

Yeah chick corea is sick

#

Have you ever listened to Emerson, Lake & Palmer?

#

Provided to YouTube by BMG Rights Management (UK) Limited

Tarkus (i. Eruption / ii. Stones of Years / iii. Iconoclast / iv. Mass / v. Manticore / vi. Battlefield / vii. Aquatarkus) (2012 - Remaster) · Emerson, Lake & Palmer

Tarkus

℗ 2012 Leadclass Limited under exclusive license to BMG Rights Management (UK) Limited

Released on: 1971-06-14

...

▶ Play video
gilded shell
#

dont think i hve

plain mantle
#

Sick keyboards

gilded shell
#

I recognize this

#

but from where 🤔

#

oh we were talking about canada earlier? i saw this thing

plain mantle
#

It's more like 80/20 english

#

but yeah we were discussing my proud country

gilded shell
kind sparrow
#

Don't know, don't really care

#

Probably just a sparse list of some sort

gilded shell
#

if it works it works

#

something i dont understand is people wanting their ecs components in continuous arrays for better cache hits

#

i imagine any task you perform on a single component would already be consuming the tiny amount of cache space?

plain mantle
#

What you wanna do is process a bunch of ents at once with the same type of component

haughty shoal
plain mantle
#

Actually the main one is character_input_handler

#

but technically I suppose I could have that on multiple ents, if they sourced from different controllers

haughty shoal
#

does the leviathan have components that only go on it?

plain mantle
#

Leviathan is multiple ents lol

#

It has the "boss" component, but that will go on others eventually

kind sparrow
#

So contiguity is definitely good for performance

haughty shoal
#

I don't have a multi component rule, I'm using flecs to be the one place all my game play goes, I am fine to just have components that are just on one entity personally, I don't want to divide up gameplay code between flecs and non-flecs

#

that's the plan anyway idk

plain mantle
#

such as transform, mesh, collider, etc

haughty shoal
#

right

kind sparrow
#

Yeah it's not a rule I have a number that are only attached to one

#

20% of your components will be on a large number of entities and the rest will only be on a few

#

But the big perf threats and wins happen on the numerous ones

gilded shell
#

@night shoal can you explain the grubbi nickname to me

#

is it like grubby but with an i for some reason? why?

kind sparrow
#

Because German

night shoal
#

i guess you could write it as grubby too but that is not as cool as grubbi

gilded shell
#

true

#

i like grubbi more

gilded shell
#

Let us begin

#

I need batch the cluster buffers per view

#

I realize I can do this really easily by duplicating each cluster sequentially for each view

#

so,

cluster0_view0, cluster0_view1, cluster1_view0, cluster1_view0
#

then the draw batcher will write those out to the various view indirect draw buffers

#

im not fully sure how to explain it but I think this interleaved layout could help performance too

#

each view will have its own indirect draw buffer

#

so the variance in atomic write targets could mean less locked threads in my theory

#

@spring kelp How do you determine the size of the meshlet batch output index buffers? I just statically set mine to however many indices the entire scene contains, but I imagine this scales very poorly

spring kelp
#

But also just hardcode the buffer size at startup.

#

Users of my bevy plugin have to specify the buffer size when adding the plugin

gilded shell
#

I see

gilded shell
#

I must now traverse the deepest depths of hell that is model.cpp

spring kelp
# gilded shell is that not what you do?

I don't do it anymore. Culling outputs a list of clusters to rasterize, and then:

  • For hardware raster, I do a single indirect draw with 128 triangles * cluster count
  • For software raster, it's an indirect dispatch with cluster count workgroups, 1 WG per cluster
gilded shell
#

I see

gilded shell
#

my laziness is a trait i must cull

haughty shoal
#

get to work froge_evil

gilded shell
#

@plain mantle @kind sparrow i want what this guys having https://youtu.be/CTvlczJodrc?si=OeIFMahale7omuvL

S3RL - Feel the Melody

02-03-2025 (Lundi) 4h44h00 Pm,

http://jimmylessard.com/

0:00 Intro

0:28 Mother Soco Dance 12-27-2007

0:49 S3RL Feel the Melody

5:19 23 L-Sit Pull Ups

7:51 Practice Pad 11-18-2007

8:47 Practice Pad MC Mario Get Away

12:00 Mother Soco Tea Time

12:27 Training 02-03-2025 Rings - Dance Jump - Pull Ups

13:09 rings tra...

▶ Play video
kind sparrow
#

Lmao

haughty shoal
#

I want those energy levels

#

maybe I need to switch up my exercise routine to include headstands

#

on a bare floor?

#

idk about this

#

oh he's using rings nm

#

I have rings

gilded shell
#

each view needs its own output IndirectDrawBuffer + ibo for opaque and blended

#

i dont think some array of arrays magic is the solution

#

or maybe it is :think:

#

theres no pointers and i dont see how i could dynamically point to an arbitrary ibo

#

so ig ill just have a single ibo with length numIndices * viewCount

#

wow I just mixed numFoo and fooCount in the same sentence

night shoal
#

better than fooFoo and numCount

haughty shoal
#

why does each view need its own buffer, what is a "view " in your engine?

kind sparrow
#

Probably talking about culling

#

You basically need a separate draw buffer for each

#

Since two people looking in opposite directions are basically seeing different scenes

haughty shoal
#

oh is this like a split screen coop?

night shoal
#

per shadow cascade

kind sparrow
#

I don't think so but e.g. shadow rendering or picture-in-picture or reflections have different viewpoints

gilded shell
#

yeah this approach is probably very bad for memory

#

but I have enough

haughty shoal
#

I see, I think I would have one indirect buffer and use offsets per view I guess, I am already using a lot of offsets

#

but it's different in vk as we do have pointers

night shoal
#

vulkan or not doesnt really matter methinks

night shoal
#

you just fill your indirect buffer per whatever is visible in the cascade, and cull it accordingly as if you render your world wiothout shadows

gilded shell
#

i forget if glDrawElementsIndirect has a buffer offset

haughty shoal
#

pointers are really nice, renderdoc doesn't know what an index means, but it knows what a pointer is, so just even the better debugging experience is really nice

night shoal
#

this is just implementation detail but you use it the same way

kind sparrow
#

It's not bad for memory it's inevitable

#

You'd do it the same in Vulkan

haughty shoal
#

it's the difference between a number you don't know if it is right or not, vs you have direct knowledge in renderdoc that the connection is correct

gilded shell
#

wow 5 views (all identical to the camera) performs really badly

#

25ms frame

night shoal
#

there is probably some gl_Layer thing you can do as an optimization

haughty shoal
#

is that less work for the gpu, I am not sure

#

it has to do the same work still

kind sparrow
#

Indirect buffers are cheap memory wise, they should be able to mostly refer to the same scene data

#

So it should be low overhead

gilded shell
#

lets all hold our horses here

#

I havent actually implemented the different output buffers, so all 5 views are attempting to atomicAdd to the same buffer which I imagine is the main bottleneck

kind sparrow
#

Why do you need to atomicadd

#

Oh this is the culling step

gilded shell
#

yeah

#

adds to the element count in the indirect draw buffer

kind sparrow
#

Give each one a separate count

gilded shell
#

that is the plan

kind sparrow
#

Don't you need to identify the segments of the buffer for different cameras anyways

gilded shell
#

yeah

#

i think writing classes is the most annoying thing

kind sparrow
#

That's why I don't write any

gilded shell
#

that might be the method

#

i avoid it as much as i can

gilded shell
kind sparrow
#

No I just don't have any classes in my project

gilded shell
#

not a single one!?

#

that might be the method

kind sparrow
#

No

#

Actually wait no I needed to make 3 or 4 because the Jolt engine uses interfaces, and I think I have one or two small container types that basically just wrap std::vector but beyond that no

#

Not in my engine or game code apart from physics

gilded shell
#

thats cool

#

and I imagine you dont put functions inside your structs?

haughty shoal
#

I call this C+ and it is what I do too

#

no classes

#

not a single one

#

I do put functions in my struct

#

they are basically all public member objects with no builtin raii or constructors/destructors/move/copy stuff

#

no inheritance, vtables all that stuff, you can still use templates

#

I think don't actually do this though, use classes

#

unless you have a good reason for not, which I am not sure there is one

#

it is working for me though for now

#

I think it is silly and the more I use C++ libraries with RAII the more I think I am missing out tbh

#

feels silly to constrain my C++ to like 10% of it what it offers

night shoal
#

c pipi is just humunculus

haughty shoal
#

I'm fully dedicated to C++ long term I have written so much code I am probably C++ for life now

#

so I need to get with the program

night shoal
#

and you never use all the features of a language all at the same time at all times, you also dont have to use everything a language has to offer

haughty shoal
#

yeah but like classes are foundational

night shoal
#

classes are fine if you want to use them, they just come with a bit of glue you have to rember

haughty shoal
#

I don't want to

#

but maybe I do

#

I am always so glad to have a type with RAII these days where I am like, oh that will just go out of scope

#

fml

#

sorry to spam your thread

night shoal
#

its wild how frequent discord is spitting out updates over the past weeks

west trail
#

Just don't update, it's probably another silly UI update that offsets something for the exact amount of pixels needed for the eye to notice, but not for the brain to recognize

haughty shoal
#

it's a rather nice new feature they added actually

#

click on a user and click the three dots

west trail
#

Ignoring, we don't need these half-measures.I just ban everybodyKEKW

kind sparrow
#

But I do put STL types and stuff in them

#

So they're not completely C-style pod they're just rule of 0

#

If I didn't have the STL I'd wrote classes for containers, they're useful there

#

I just don't write containers myself in most cases

gilded shell
west trail
kind sparrow
#

The disappointment will be immeasurable

west trail
#

Imagine my disappointment when I found only one public sepples repo on your github

#

At least then I will have something to look at

#

and steal

kind sparrow
#

Nothing I've written in recent years

#

My innovative shit architecture is nowhere public

haughty shoal
kind sparrow
#

Hehe

west trail
#

So are you planning to make srs public any time soon?

#

Or anything

haughty shoal
#

I wouldn't make srs public

west trail
#

I doubt he will make it commercial with that amount of bikeshedding

haughty shoal
#

on the contrary there may be opportunities for licensing to the DoD maybe someday imo with the goals and vision

kind sparrow
#

Nah not gonna make it open source but dunno if it'll ever be commercial either

haughty shoal
#

it's definitely valuable enough where I would opt not to

#

whereas Rosy is just a silly robot thingy

kind sparrow
#

Those that hang out in these threads will occasionally see snippets of the codebase

kind sparrow
haughty shoal
#

fence.gif

west trail
kind sparrow
#

Ok maybe we do a measured amount of bikeshedding

kind sparrow
#

But nah most of that is just me thinking about the game while going for a walk at work at lunchtime or something

#

My "bikeshedding" is mostly allowing myself to develop certain game features deeper than they're needed at the present moment it's not stuff that I won't be using

haughty shoal
#

this isn't really a bikeshed, which is when people spend a disproportinate amount of time focusing on trivial changes to a bikeshed because having an opinion on the nuclear reactor is too difficult, you're working on the reactor

kind sparrow
#

Yeah good point

night shoal
#

we actually like to talk about reactors

haughty shoal
#

on this server we conflate it a little too much with decision paralysis

#

which is different

kind sparrow
#

Me: overengineering the reactor to be insanely efficient and powerful
My boss: that's very cool, but you're a software engineer and I need you to make the website have this picture on it now

haughty shoal
#

I refuse to have decision paralysis, I hate it. I will rather commit to the wrong choice than not make progress, and I think that has worked out for me. I hate it at work when decisions are revisited. No new information means we do not revisit the decision

kind sparrow
#

Yeah I don't like it either

haughty shoal
#

I just steam roll it

#

I let people have their last minute doubts, I just stick with the plan, we'll figure it out as we go

kind sparrow
#

My architecture is pretty good in that regard too because there isn't like a structure to fit stuff into really you just add a new function call to main and then implement everything under the hood

haughty shoal
#

my main is like 4 lines of code

kind sparrow
#

In my limited experience of working on big codebases the hard part comes when the details are difficult to trace back to the core loop or other systems

haughty shoal
#

I have a core loop, it's just not in main

kind sparrow
#

If your main loop is just a sequence of system function calls it's pretty easy

#

Yeah I was sort of using main to refer to the core loop

haughty shoal
#

in SDL main gets turned into a macro I think too, so it's not the real main

#

you don't get a main

kind sparrow
#

Maybe I will make minimal_game public at some point

#

Or just add anyone who asks to read perms

#

Honestly that would probably be better anyway

#

Since it's more to the point and illustrative of the architecture

#

Rather than having to wade through 50,000 lines of SRS planetary foliage and procedural player controller and firearm crap

#

The hardest part will be being able to resist adding accurate parallax motion to the stars

night shoal
#

SDL3 is using macros to cater for more weirderer platforms

#

but you dont have to go that way and still use the usual way of using sdl

kind sparrow
#

Why not to which

gilded shell
#

not making it open source

kind sparrow
#

Idk I'd just rather not

#

It's my precious IP

#

By not releasing it freely I can cope and say that it's worth $300,000 worth of my labor

#

And it contains a number of things that are only made possible from my irl expertise and domain knowledge that I'm hesitant to just make publicly available for free

haughty shoal
#

Open source software is still licensed and its intention is not to reduce the value of your work. But I think the question “why not open source?” is inverted. You should have a compelling reason to.

gilded shell
#

so i should close source my projects so no one can know how bad the code is

gilded shell
kind sparrow
#

Pretty accurate, I don't track the exact hours I've spent on the project anymore since it's gotten too long and irregular but it's been like 4 years probably 20-30h/wk so somewhere around there

gilded shell
#

20 hours a week on a personal project is insane

#

i cant wait to not have both school and work

#

truly an abomination

kind sparrow
#

I do nothing else besides go to work and work on my projects

gilded shell
#

why

kind sparrow
#

Why not

#

I have terminal GP syndrome

gilded shell
#

i see

#

I still want to play minecraft and metal gear

#

so maybe not

junior sparrow
#

You have to make sacrifices bleakekw

kind sparrow
#

When you get older your desire to play video games wanes a bit ime and you may find projects winning out as the activity of choice more

#

Savor the games while they last

echo token
#

ime it crashes hard

gilded shell
#

i hope so tbh

echo token
#

I don't even think it's a time preference thing, even if I could neet it up 24/7 I'd naturally just wanna do something else

gilded shell
#

except for Cave Story

junior sparrow
gilded shell
#

everyone can always make time for Cave Story

echo token
#

yeah I just waste time more broadly

gilded shell
#

especially you, @kind sparrow

kind sparrow
#

Lmao

#

For me personally games are still quite compelling but I just generally don't feel like playing them over projects or yeah sometimes just screwing around aimlessly

#

When I do burn out on projects sometimes games rise to the top of my priorities again and then I'll take full advantage of it and binge them for a week or two

#

I never squander the urge to play games it's just not that common

#

These days I've been playing guitar as my screwing around filler

gilded shell
#

just accept the Cave Story plug; drop everything and get it (free!)

kind sparrow
#

Someday lol

#

The game I was playing most recently was Noita since my brother got it for me for Christmas

gilded shell
#

I see

#

anyways I wonder if scientists can take quantum computers and make them develop dna sequences that create organisms with 1:1 dinosaur skeletons and other traits we know about them

kind sparrow
#

Also for the last month I was binging BG3 at my friend's house so that fulfilled my gaming itch

west trail
#

Pick up sekiro next time it starts itching

gilded shell
#

nope cave story

kind sparrow
#

I could also just play another 2000 hours of Arma

gilded shell
#

nahhh

gilded shell
#

@kind sparrow

#

do you still use a prefix for your class/struct data members?

#

like m_ or _

#

or is it useless if you don't have member functions

kind sparrow
#

I used to although I've been not doing it recently

gilded shell
#

cool beans

haughty shoal
#

structs don't have public/private distinction

#

so I don't see the value personally

haughty shoal
#

I use a private namespace in cpp files for encapsulation

gilded shell
#

i should definitely use namespaces more

#

but im not sure what exactly warrants one

#

a namespace per subsystem?

kind sparrow
#

I don't personally

#

Make them as broad as possible

#

Actually nvm I do use them like that

#

Because if each system has a function called "update" that takes the same args they need to be disambiguated

haughty shoal
#

I just have these massive thousands of lines long anonymous namespaces one per each cpp file

#

where most of the code lives

#

and then anything outside of it is how anything else interfaces with the thing and is exposed in a tiny header

#

and that's how I get like a 5 second compile time with a 12K loc project

#

for a full build

#

13K now KEKW

kind sparrow
#

What does the anonymous namespace do

#

Make the contents static?

haughty shoal
#

yeah

kind sparrow
#

Hm

haughty shoal
#

better than spamming "static" everywhere

kind sparrow
#

Yeah

haughty shoal
#

etc

#

oh I guess the class view would have been better

gilded shell
#

wow i forgot what static does for global/namespace vars

gilded shell
gilded shell
#

I hate my mentality of “dang I have no freetime” even though I played Minecraft for ~4 hours yesterday

echo token
#

I feel that, though I feel like you could call the real problem a lack of "high quality" time when you can actually force your brain to do thinky type stuff

gilded shell
#

i suppose

#

but i dont know why i would be low on that

#

school is easy and work is thoughtless

echo token
#

it still burns your energy and focus

gilded shell
#

i suppose

#

and i doubt the solution to that is to consume more and more short form content

#

this is also affecting my drum practice though, which imo is a lot worse because i need higher frequency to preserve progress

gilded shell
kind sparrow
#

Lmao

gilded shell
kind sparrow
#

You got me

#

It is funny though although I'm not sure if I interpreted it correctly, is it about people that play the game rust

#

Not about the programming language right

gilded shell
#

yeah its about the game

#

i completely forgot about the language

gilded shell
#

honestly the rust shirt was just a throwaway inside joke and i never even thought of the creature being a rust player

kind sparrow
#

Ah I see

gilded shell
#

i dont think walmart carries screen protectors for my phone anymore 😦

gilded shell
#

@plain mantle keyboard has been purchased

plain mantle
#

what did you get?

gilded shell
#

korg liano

#

i watched a few reviews and it seemed best for what i was willing to pay

#

and Butch Taylor used korg keys with dmb 😅

plain mantle
#

Looks pretty solid

gilded shell
#

yeah

#

i’m only disappointed in the lack of extra sounds

#

it has all the important stuff but i wont be able to make sax or fiddle noises

kind sparrow
#

Seems like you could put more midi instruments onto it

plain mantle
gilded shell
#

yeah I could

gilded shell
#

good vsts are like $100 tho

plain mantle
#

There are good free ones too, most of the VSTs I use are free

gilded shell
#

id also like to learn some latin timbale playing

#

just to help creativity

gilded shell
#

lost

echo token
#

lost ||the game?||

gilded shell
#

some of the best rice ive had was from a chinese takeout place

#

fried rices tend to be yellow but this was more brown and had a porky flavor

#

and it seemed to not have as many ingredients as most fried rice would

#

there were little bits of bacon-like pork, i forgot what thats called

#

i think the entire rice is called lap yuk rice

#

ah but i dont think any stores near me carry chinese bacon and it looks like a pain to make

night shoal
#

the yellow is curcuma 🙂

#

fried rice is ❤️

#

small chunks of pork belly perhaps?

kind sparrow
#

红烧肉 froge_love

night shoal
#

hehe

#

pork belly

kind sparrow
#

In my 4th year of uni we lived right next to a Sichuan restaurant and my roommate and I would go there like every day whenever school was out and we didn't have dining commons food

night shoal
#

that must have been like paradise, food wise

kind sparrow
#

Well I went to a farm school so all the dining commons food was grown/raised on campus so it was pretty lit

plain mantle
gilded shell
#

all we have are major chains and an amish market 30 minutes away

kind sparrow
#

Sounds like rural midwest alright

plain mantle
#

Maybe hes not far from me lol, @gilded shell which state?

gilded shell
#

@plain mantle

#

im a little while away from canada lol

plain mantle
#

Oh I thought it was gonna be like ohio or michigan

gilded shell
#

i have family there

#

niagara falls is beautiful in the winter

kind sparrow
#

Oh I thought you were from Ohio

gilded shell
#

lol why

kind sparrow
#

Idk I thought you said so for some reason

gilded shell
#

i think weve had this exact conversation before

kind sparrow
#

Lol

#

Maybe it's someone else then idk

gilded shell
#

maybe

#

this picture was taken in Baltimore and is unedited

plain mantle
#

actual photos of Toronto, ON

gilded shell
#

@kind sparrow you probably live in apalachia

plain mantle
#

He lives in the bay area, he's stated it multiple times lmao

#

Actual photo of demon's house

echo token
gilded shell
#

if its the chesapeake then ill drive to his house

gilded shell
#

@kind sparrow

kind sparrow
#

California bay area lol

gilded shell
#

ew out of my chat

#

somehow dug a lower trench than jake

plain mantle
#

I'm surprised I haven't been kicked out for my fervent Canadian nationalism KEKW

plain mantle
#

Can we not violate rule 8 here?

kind sparrow
night shoal
#

(i didnt find any good .eu adding .ca to the family jiff yet)

gilded shell
gilded shell
#

OBVIOUSLY canada couldnt be annexed as the 51st state

#

it would probably need to be annexed as 6 states KEKW

plain mantle
kind sparrow
# gilded shell i do not know what this means

Surely you've heard me talking about California in the context of talking to other server members in our threads that live nearby and/or in discussing local flora and/or discussing time zones and/or talking about the local economy and job market and/or travel times to various places etc

gilded shell
#

word, fair enough (to jake)

gilded shell
kind sparrow
#

Not least to mention that the current SRS terrain is in my backyard

gilded shell
#

yeah but admittedly i know absolutely nothing about flora

#

grass? must be on earth

kind sparrow
#

I'm just talking about us constantly talking about where we respectively live lol

#

But maybe you just haven't been around in those moments

gilded shell
#

yeah I severely dount

#

hey didnt you think i live in ohio KEKW

kind sparrow
#

Yes at first I thought you were making a joke about me not knowing where you live lol

#

Who tf here lives in Ohio then

gilded shell
#

language!

#

probably no one idk

kind sparrow
#

Perhaps

gilded shell
#

I am writing a short comic series

#

UPS vs China Post

#

They’re fighting a battle over an ancient cardboard factory that would help them smuggle things past customs

#

i was originally trying to show the battle in a neutral stance but I think I’m going to make the UPS soldiers the heroes by having them defy orders and try to instead destroy the factory

gilded shell
#

in other news I’m very good at calculus

#

if cs fails im not opposed to something like engineering

kind sparrow
#

Engineering is harder than CS tbh although I guess it may be true that they're in more limited supply than programmers

#

It's harder to skate through and be good enough without trying than it is with programming

gilded shell
#

for sure

#

but all is possible

kind sparrow
#

Yeah for sure

#

I just wouldn't consider it a backup plan haha it's like considering graphics programming a backup plan to web development

#

But yeah it's an alternative

gilded shell
#

well yeah obviously ill need another 2-6 years of college if i go down that line

#

are there other well paying calculus jobs?

plain mantle
#

Finance?

gilded shell
#

yeah i imagined something related to that

#

but arent those the jobs you use excel all day?

plain mantle
#

Nah I don't think so neccesarily

#

But I'm not an expert

gilded shell
#

yeah i know absolutely nothing about finance

#

i hope its neither corporate hell or immoral

gilded shell
night shoal
#

neither or vs either nor, no? 🙂

kind sparrow
#

You use excel all day as an engineer too lol

#

Well ok that's an exaggeration but very few jobs have you doing calculus manually

plain mantle
#

I use excel every once in while as a programmer too

echo token
#

yeah finance is literally
expectation: fancy statistical calculus, phd level 27d thinking
reality: make sure the excel report is correct enough that the government isn't mad

#

that being said I work at a bank not a hedge fund or anything so I assume quants have a little more fun

#

for them it's jupyter notebooks and playing with graphs, I guess

echo token
#

if you want immoral, get a job where you actually sell people auto loans

kind sparrow
#

If you have high standards for morality your job options go way way down

#

Just in general

#

Most big tech type jobs that employ most of the programmers are pretty immoral

echo token
#

and if you want your job to be fulfilling and useful

#

finance certainly ain't it

#

that being said I would certainly want more people to struggle through finance with me because it's pretty much the antithesis of what's easy for programmer nerds like us to learn, at least people like me

#

it's a dry, formless, boring blob of questionably useful and questionably true factoids and formulas

plain mantle
gilded shell
#

thanks for the advice guys

#

in further news my left elbow has a pinching feeling when i twist it certain ways and aches when i push my hand hard against something

#

i think ill take a week off from lifting

#

especially since i turn 18 next week 🙂

#

joint pain before 18 is bonkers

gilded shell
#

I'm so glad it's called drawIndirect and not indirectDraw

#

drawIndirect sounds a lot cooler for some reason

#

anyways I'm now using an drawBuffer per view and I'm still not impressed with performance

#

what an inconvinient time for NSight to stop working 😦

#

something about asan .dll missing

#

yeah no performance improvement at all actually so i need to get nsight working and see whats wrong

#

either its bugged and im still somehow atomicAdding to the same var or theres another perf bottleneck somewhere

night shoal
#

possible that you also dont put an actual load on the gpu

#

try rendering bistro 100 times or something, with lights and shadows

#

and your meshlet thing

plain mantle
#

You can set that in nsight

gilded shell
gilded shell
#

I suddenly have $30 in my steam account

#

I don't remember why

#

any recommendations

echo token
#

3000 trading cards

gilded shell
#

im never buying celeste

gilded shell
#

alright I set the correct wd for nsight and now my app seems to crash immediately before nsight can attach

#

its very convinient that the console closes within a ms of opening, to save me the trouble of having to read any useful debug output

#

it seems like that address sanitizer .dll can't be found

#

this also happens when i launch the exe outside of visual studio

#

i think ill add a custom step to output it to the exe folder

#

I just have to figure out where its source is

#

this might be useful but im not sure what it means

night shoal
#

thats part of MSBuild

#

Microsoft.CppCommon.targets

#

thats a custom target you can execute before/after just like you set there

#
  <Target Name="AddAsanBinariesToCopy"
          Condition="'$(EnableASAN)' == 'true' and '$(CopyAsanBinariesToOutDir)' == 'true'">
    <PropertyGroup>
      <ASANExecutablePath Condition="'$(PlatformTarget)' == 'x86'">$(VC_ExecutablePath_x86_x86)</ASANExecutablePath>
      <ASANExecutablePath Condition="'$(PlatformTarget)' == 'x64'">$(VC_ExecutablePath_x86_x64)</ASANExecutablePath>
      <ASANExecutableFileName Condition="'$(UseDebugLibraries)' == 'true'">clang_rt.asan_dbg_dynamic-$(LlvmPlatformName).dll</ASANExecutableFileName>
      <ASANExecutableFileName Condition="'$(UseDebugLibraries)' != 'true'">clang_rt.asan_dynamic-$(LlvmPlatformName).dll</ASANExecutableFileName>
    </PropertyGroup>

    <ItemGroup>
      <CopyFileToFolders Include="$(ASANExecutablePath)\$(ASANExecutableFileName)" />
    </ItemGroup>
  </Target>
#
  <PropertyGroup Condition="'$(EnableASAN)' == 'true' and '$(CopyAsanBinariesToOutDir)' == 'true'">
    <PrepareForBuildDependsOn>AddAsanBinariesToCopy;$(PrepareForBuildDependsOn)</PrepareForBuildDependsOn>
  </PropertyGroup>
night shoal
#

@gilded shell do you see this?

gilded shell
#

no lol

gilded shell
#

I see

#

CopyAsanBinariesToOutDir looks like the setting I need

night shoal
#

and EnableASAN

#

this/both might be implicitly set by some other flag

gilded shell
#

asan is on

#

didnt the visual studio properties page have a search bar? why cant i find it

night shoal
#

yeah then you can set it in the project file

#
  <PropertyGroup>
...
    <EnableAsan>true</EnableAsan>
    <CopyAsanBinariesToOutDir>true</CopyAsanBinariesToOutDir>
...
  </PropertyGroup>
#

inside your vcxproj

gilded shell
#

microsoft once again demonstrates their ability to create useless gui

night shoal
#

yeah i agree

#

but i also suppose many old c++ people just use props files

gilded shell
#

or wait I can probably do it for all debug builds

night shoal
#

yes and you can add Condition="..."

gilded shell
#

yeah

gilded shell
#

heres the keyboard stand i just bought

#

we might be going desktop lol

#

or bedtop or what have you

gilded shell
#

@plain mantle you see this horror

plain mantle
#

It wobbles?

gilded shell
#

it completely falls over under any load

plain mantle
#

oof

gilded shell
#

ill see if i can fix it

night shoal
#

does it maybe just need some screws to be tightened?

gilded shell
#

this is the garbage inside that you need to tighten it to

#

it just comes out whenever i tighten it

echo token
#

does the thread even bite?

gilded shell
gilded shell
# gilded shell .

this piece not staying in causes the wobbling and eventual falling over

night shoal
#

maybe you can drill a bigger hole and thread it with a bigger diameter

#

M3 or M4

#

with a proper screw

gilded shell
#

my father said we’ll figure something out

#

problems pretty much already solved 👍

night shoal
#

and how was it solved?

gilded shell
night shoal
#

hmm

#

dont turn this into a random stackoverflow thing where a response, made by an account solely created for that purpose, is saying "i fixed it" 😄

gilded shell
#

well technically its not fixed yet

gilded shell
#

the keys arrived

gilded shell
#

id rather turn asan off than deal with this

#

anyways heres what my indirect draw buffers look like

#

i think this is expected

#

but those counts look rediculously high

#

heres the scene ill try next

#

11 cubes (one is inside the solid green one)

#

12 triangles each

#

thats 132 triangles or 396 indices

#

thats a bit low

#

im not doing any backface culling

#

ohhh these are opaque indices

#

5 cubes is 180 indices checks out

night shoal
#

alignment issue perhaps

gilded shell
#

nah everything seems in working order

fervent lantern
#

how come they all start at index 0?

gilded shell
#

they all have their own big index buffer

#

next I need to give each view its own hzb

fervent lantern
#

oh so those are the indirect calls without "expanding" to see the individual draws

#

what are the 5 buffers for ?

gilded shell
#

theyll be different once I get per-view culling

fervent lantern
#

i see

#

what is each view for

night shoal
#

shadow cascade/point light shadow

gilded shell
#

alright @plain mantle @night shoal the piano stand solution is that im getting refunded and then buying a better one

#

a Z shaped one

#

i also got a double pedal for my kick drum

#

thats a big learning curve

gilded shell
#

yeah

#

@kind sparrow im also figuring out double pedal kick drum playing

#

something thats going to be challenging to me will be controlling the hi hat and kick at the same time

#

im think i can keep a heel on the hats and use my toes on the kick

#

or i can use bridging if im using the hats to mark time while im on the ride

kind sparrow
#

You don't control both at the same time usually

gilded shell
#

carter beauford does somehow

kind sparrow
#

Hmm idk

#

I just set the hat slightly open so that I don't need to touch its pedal

gilded shell
#

okay hes not controlling them at the same time but he is controlling them real close together

#

for that short lick

kind sparrow
#

You definitely want them side by side so that you can switch back and forth if necessary

gilded shell
#

yeah for sure

kind sparrow
#

But the switch is probably just a question of practice

gilded shell
#

yeah that switch is so smooth here

#

i also gotta somehow keep the hats closed while double pedaling

kind sparrow
#

You can get a latch for it

gilded shell
#

like a clutch?

#

cheating

kind sparrow
#

I forget how I set it up

#

I never really played with it open

#

Here's a picture of it I can't really tell if it's set or not though

#

It looks like it's not

#

It's possible I had it set so that when the clutch was open the hat didn't close all the way (just by setting the spacers inside)

#

although that seems like then it wouldn't close even with the pedal down

#

I forget tbh

#

But generally I never touched the pedal since I just wanted it slightly open so that it sounded good when hit without touching the pedal

gilded shell
kind sparrow
#

Old video of a show

gilded shell
#

oh okay

kind sparrow
#

I should have recorded myself more when playing at my prime I have very little footage of it

gilded shell
#

man piano posture is complicated

#

im just now learning how raise my arms to the keyboard

kind sparrow
#

I never really learned that stuff lol just press the keys

echo token
#

I learned how to hold my hands but other than that it's just back straight and keep your chair adjusted right

#

back when I took piano lessons I heard all kinds of claims that pianists didn't get carpal tunnel supposedly because of their perfect form

gilded shell
#

lo and behold it ended up being much more complex and i had to relearn a lot of stuff

gilded shell
#

i think on saturday im gonna force myself to code for many hours

#

progress must be made on this project

kind sparrow
#

oh you should have asked

#

yeah I always turn that off

gilded shell
#

i genuinely thought for years that you couldnt

#

i wonder if i should do that with parenthesis and brakets too

kind sparrow
#

You can configure most everything you could ever want in VS

gilded shell
kind sparrow
#

custom build step

#

or pre/post-build events

night shoal
#

didnt we go through that a week ago?

gilded shell
#

yeah i was too lazy to do it so i just turn it off and complain

gilded shell
#

i think i wanna do another sandbox type project before hoa

#

i want to experiment with curves and tessellation as a lod solution

gilded shell
#

or 2d