Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 24 18:35
    bors[bot] closed #3484
  • Nov 24 18:35
    bors[bot] closed #3483
  • Nov 24 18:35

    bors[bot] on master

    Refactor bind_index_buffer API Merge #3484 3484: Refactor bin… (compare)

  • Nov 24 18:35
    bors[bot] commented #3484
  • Nov 24 17:35

    bors[bot] on staging.tmp

    (compare)

  • Nov 24 17:35

    bors[bot] on staging

    Refactor bind_index_buffer API Merge #3484 3484: Refactor bin… (compare)

  • Nov 24 17:35

    bors[bot] on staging.tmp

    Refactor bind_index_buffer API [ci skip][skip ci][skip netlify… (compare)

  • Nov 24 17:35

    bors[bot] on staging.tmp

    [ci skip][skip ci][skip netlify] (compare)

  • Nov 24 17:35
    kvark commented #3484
  • Nov 24 17:22
    kvark assigned #3483
  • Nov 24 17:22
    kvark opened #3484
  • Nov 24 17:21
    kvark commented #3483
  • Nov 24 17:08
    kvark labeled #3483
  • Nov 24 17:08
    kvark labeled #3483
  • Nov 24 17:08
    kvark labeled #3483
  • Nov 24 17:08
    kvark opened #3483
  • Nov 23 19:08
    kvark commented #3482
  • Nov 23 19:03
    fintelia commented #3482
  • Nov 23 14:53
    kvark commented #2418
  • Nov 23 14:46
    kvark commented #2418
Brendan Zabarauskas
@brendanzab
hgl
Dzmitry Malyshau
@kvark
was @cmr there too?
Coraline Sherratt
@removed~csherratt
bjz, did you see common traps people were falling into?
Dzmitry Malyshau
@kvark
@csherratt @bjz has anyone looked at #24 ?
Brendan Zabarauskas
@brendanzab
What about a lookup table?
Dzmitry Malyshau
@kvark
@bjz lookup table of strings? will suffer from the same data cache miss
Coraline Sherratt
@removed~csherratt
I was going to suggest std::str::MaybeOwned, but that is 32 bytes...
Brendan Zabarauskas
@brendanzab
@kvark yeah :(
Coraline Sherratt
@removed~csherratt
How often do we actually need the uniform name? Can we 'link' the pipeline and avoid the names all togather?
Brendan Zabarauskas
@brendanzab
@csherratt you mean build up a pipeline once, then reuse it?
@csherratt like Metal?
@kvark what does storage+2-gl::FLOAT_VEC2 do?
Dzmitry Malyshau
@kvark
@csherratt sure, we can match the input-outputs and store just indices, but this caching spawns more questions than it solves
@bjz it's the number at the end of the definition: FLOAT_VEC? (2,3,4)
which is the number of components that we extract from it
Brendan Zabarauskas
@brendanzab
why do you need the formula?
Dzmitry Malyshau
@kvark
to do it in one case instead of 3
Brendan Zabarauskas
@brendanzab
I think in this case it might be clearer to do multiple cases
Dzmitry Malyshau
@kvark
gonna be bulky
ok, bbl
Brendan Zabarauskas
@brendanzab
o/
Coraline Sherratt
@removed~csherratt
bjz, I think your symbol table is actually a great idea.
If every string in the pipeline that is the same always points to the same memory address, we can avoid the cache miss in the case for a string compare. Pointer A == Pointer B, no point in comparing their content.
This is also 8 bytes, vs 24 that @kvark has proposed.
Brendan Zabarauskas
@brendanzab
these cached pipelines would be immutable?
like, once you commit to building them, you can't alter them?
Coraline Sherratt
@removed~csherratt
I meant gfx-rs as a pipeline, not any one object in the pipeline.
Brendan Zabarauskas
@brendanzab
ah ok
Coraline Sherratt
@removed~csherratt
I think this might be preemptive, but if we place everything behind a type that looks feels and acts like a String. We can play with optimizing it via inline strings like @kvark has proposed or some other mechanism.
Brendan Zabarauskas
@brendanzab
@csherratt what would be your transition plan in terms of moving snowmew to gfx-rs?
oh, btw - tried an oculus rift today - not with Rust, just the bundled demo.... <3 <3 awesome
Coraline Sherratt
@removed~csherratt
Snowmew is broken up into half a dozen crates, the render sits in it's own crate. So I just need to add a new crate and write a render for gfx-rs separately of the old one.
Brendan Zabarauskas
@brendanzab
nice!
it was interesting watching people use cgmath today -_-
:P
Coraline Sherratt
@removed~csherratt
I had plans on adding an OpenGL ES render at some point, so I had the feeling I would needs some flexibility.
Good, bad, reactions?
Brendan Zabarauskas
@brendanzab
yeah that would be cool
Coraline Sherratt
@removed~csherratt
I mean, reactions to cgmath :P
Brendan Zabarauskas
@brendanzab
ohh
yeah, just some confusion
traits and stuff
I think it might be better to re-export things at the top level
Coraline Sherratt
@removed~csherratt
matrix::Matrix is a bit noisy, I can see that
Dzmitry Malyshau
@kvark
@csherratt the experience itself that you may get through porting to gfx-rs is going to be extremely valuable for us
Dzmitry Malyshau
@kvark

@csherratt sure, we can match the input-outputs and store just indices, but this caching spawns more questions than it solves

That's half-truth. In fact, we don't want (of course) to match these strings at runtime, even if the comparison cost is low, because we'd still need to walk those mesh attributes for each shader attribute. instead, we just need to have that target index baked in somewhere. Perhaps, a single HashMap<(ProgramHandle,MeshHandle), IndexSequence> will suffice.

Coraline Sherratt
@removed~csherratt
@kvark for sure.
Brendan Zabarauskas
@brendanzab
@kvark fixed #25!
Dzmitry Malyshau
@kvark
@bjz awesome! next one is the real issue - binding that at runtime
kvark @kvark is off for today