Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Dec 03 21:17
    bors[bot] closed #3102
  • Dec 03 21:17
    bors[bot] closed #3055
  • Dec 03 21:17
    bors[bot] closed #3055
  • Dec 03 21:17

    bors[bot] on master

    Add RichDescriptorType, subtype… Enable serde for new types Update all backends, examples, … and 3 more (compare)

  • Dec 03 21:17
    bors[bot] commented #3102
  • Dec 03 20:54

    bors[bot] on staging.tmp

    (compare)

  • Dec 03 20:54

    bors[bot] on staging

    Add RichDescriptorType, subtype… Enable serde for new types Update all backends, examples, … and 3 more (compare)

  • Dec 03 20:54

    bors[bot] on staging.tmp

    Add RichDescriptorType, subtype… Enable serde for new types Update all backends, examples, … and 3 more (compare)

  • Dec 03 20:54

    bors[bot] on staging.tmp

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

  • Dec 03 20:54
    kvark commented #3102
  • Dec 03 06:44
    cormac-obrien synchronize #3102
  • Dec 03 03:29
    kvark commented #3102
  • Dec 03 02:35
    cormac-obrien synchronize #3102
  • Dec 03 01:47
    cormac-obrien synchronize #3102
  • Dec 03 01:29
    cormac-obrien synchronize #3102
  • Dec 03 01:08
    cormac-obrien synchronize #3102
  • Nov 29 16:22
    kvark commented #3103
  • Nov 29 12:57
    KuSpa commented #3103
  • Nov 29 12:57
    KuSpa commented #3103
  • Nov 29 12:55
    KuSpa edited #3103
Dzmitry Malyshau
@kvark
@photex @csherratt Awesome, at least we are one step closer to the consensus. The potential problem will arise if the user needs some data derived from the resource (mesh name?..). It could be solved, of course, by introducing another method like client.really_give_me_the_mesh_info_now(). So far I'm trying to imagine the possible use-cases for that, if any...
Coraline Sherratt
@removed~csherratt
A concrete example would be good.
Dzmitry Malyshau
@kvark
@csherratt I recall one example from my experience. Had a number of different skinning shaders: one for quaternion-provided geometry, one for tangent/bitangent, one for the geometry that only got normals. Was choosing the proper shader based on what mesh carried.
Brendan Zabarauskas
@brendanzab
Ok, if you guys are convinced an async error handling strategy is best, lets do it! Probably makes more sense in a game dev context.
Dzmitry Malyshau
@kvark
@bjz I figured that since all creation routines will return the handle immediately, the reverse channel (from renderthread to user) will be free to use for the errors, i.e. no need for an additional channel, we just need to change the policy of using the the client and add a function to iterate current errors. All more or less trivial but blocked by the fact we don't have the proper handles yet. I'll create an issue shortly....
Dzmitry Malyshau
@kvark
Created #22. @photex Please feel free to grab and assign it on yourself. I didn't do it in case you had other stuff to do.
Dzmitry Malyshau
@kvark
@bjz are you alright there?
Dzmitry Malyshau
@kvark
@photex @cmr @csherratt A sneak peak into my vision of our low-level shader information is at #23
Coraline Sherratt
@removed~csherratt
@kvark this looks promising.
what will the active_value be used for?
Dzmitry Malyshau
@kvark
@csherratt Thanks! the idea is to fully verify compatibility of the program with inputs/outputs (partially described here). This is not expensive by itself. The biggest question for me is what data structure to use for the shader parameters so that the program can query them quickly...
@csherratt active_value is the current value of the parameter that GL program holds. It will be checked against the given value and updated accordingly if different.
The logic of binding is supposed to be the following: renderthread walks through all ProgramMeta, and for each thing searches it among the given data (be it a mesh attribute or a shader parameter). Not sure if we can cache the match results, or if that's even needed... In my previous project I used to search by name (a boxed string), but we need something cheaper here.
@csherratt I'm kinda surprised (in a very positive way) to see you helping us out here, considering how big your snowmew is... Thanks!
Coraline Sherratt
@removed~csherratt
My hope is that that is gfx-rs might offer a more portable backend for snowmew. The current render is not very flexible and needs to be reworked for OpenGL 3 hardware, which might be a rewrite of half the logic. So if gfx-rs can satisfy that goal I will be happy.
Plus snowmew goals are more research ordinated with the fringe benefit being a potential product.
Dzmitry Malyshau
@kvark
@csherratt Ok, thanks for clarification! Let us know about your vision and requirements for the back-end so that we can work towards it. Perhaps, you want the device stuff to be separated into its own crate? Or change the direction we are heading now slightly?
kvark @kvark goal of working on gfx-rs is to have that sacred piece of code he can open up (when depressed, for example) with a cup of tee and enjoy reading it again and again...
Dzmitry Malyshau
@kvark
@csherratt I liked your construction of the command buffers (from the presentation) with an idea to call DrawIndirectMultiSomething for multiple objects at once. Not sure that all these workers benefit this much from walking the scene graph in parallel though... But fortunately, this is all very high-level from the gfx-rs perspective so could be done on top of it.
Coraline Sherratt
@removed~csherratt
It has some benefits when the object count is in the hundreds of thousands. But in those cases you are normally gpu bound.
@kvark gfx-rs is your dream graphics pipeline that you one day hope OpenGL / DirectX will aspire to live up to?
Dzmitry Malyshau
@kvark
@csherratt haha, dunno if GL/DX will still exist by that moment
Coraline Sherratt
@removed~csherratt
Do you mean that in the way that gfx-rs is going to take decades to make perfect? or in the way that you think OpenGL/DirectX are going the way of the dodo?
Dzmitry Malyshau
@kvark
Might be both, but frankly I don't want to look that far... I had a habit of imagining the future of my projects in past, and in most of the cases it didn't do me any good. Now I'm trying to look just in front of my nose: "ok, what needs to be done here? Ah, shaders meta is missing, resource management is missing, etc".
I don't believe GL/DX will ever aspire to gfx-rs, I'd rather have them go as low-level as possible so that gfx-rs can do stuff with less overhead.
Coraline Sherratt
@removed~csherratt
Have you looked at Mantel at all? It looked like a promising start, but then DX12 cannibalized most of the features.
of course DX12 does not exist, but the promise of said features is probably enough to spell the death of Mantle.
Dzmitry Malyshau
@kvark
@csherratt OpenGL also promised something low-level, IIRC. Problem with DX12 is that it's the least portable among those. I haven't had a chance to look at either Mantle or Metal (reading slowly...), but I got some solid experience with Gnm, and I expect it to be very similar.
@csherratt Have you looked at Mantle? Care to share what you think about it?
Coraline Sherratt
@removed~csherratt
Nothing beyond the presentations. By the time they offered a 'public' api the OpenGL AZDO path seemed more promising.
that being said, I think the path of having dozens of queues to feed the hardware pipeline is a good idea. At a high level there is quite a bit that can be done parallel.
Dzmitry Malyshau
@kvark
Ok, I believe #23 is ready to merge now. There is no actual binding of the program resources yet, but at least I guarantee that everything we need is collected properly in ProgramMeta.
Brendan Zabarauskas
@brendanzab
o/
At mozilla ready for the spinning trianglethon
I wonder if we can get gfx-rs working with cargo
sorry for being silent for a few days
@csherratt thanks for clarifying!
@csherratt I was curious as to what your intentions were - I was worried about duplicating some of your efforts
@kvark reading your patch now
Dzmitry Malyshau
@kvark
@bjz care to share a bit on what's happened first?
Brendan Zabarauskas
@brendanzab
oh yeah I basically just stressed myself out into a nervous wreck :P
Dzmitry Malyshau
@kvark
@bjz Thought so... Glad you are back with us!
Brendan Zabarauskas
@brendanzab
haha
Dzmitry Malyshau
@kvark
Was it a panic attack? My wife once got it.
Brendan Zabarauskas
@brendanzab
not really - I have had plenty of panic attacks before - mainly just anxiety
but yeah - will be super excited to get some stuff done today
I wonder if we can get you on video call, haha
Dzmitry Malyshau
@kvark
has the hackaton started already?
Brendan Zabarauskas
@brendanzab
no, I am early
Dzmitry Malyshau
@kvark
dunno if my cam works, and if child allows, but we can try ;)
Brendan Zabarauskas
@brendanzab
11:22 - starts at 12:00