Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 15:11
    kvark commented #3097
  • 05:15
    bors[bot] closed #3097
  • 05:15
    bors[bot] commented #3097
  • 05:15

    bors[bot] on hal-0.4

    Backport of #3096 to hal-0.4 br… Bump gfx-backend-dx11 to 0.4.3 Merge #3097 3097: Backport of … (compare)

  • 04:56

    bors[bot] on staging.tmp

    (compare)

  • 04:56

    bors[bot] on staging

    Merge #3097 3097: Backport of … (compare)

  • 04:56

    bors[bot] on staging.tmp

    Backport of #3096 to hal-0.4 br… Bump gfx-backend-dx11 to 0.4.3 [ci skip][skip ci][skip netlify… (compare)

  • 04:56

    bors[bot] on staging.tmp

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

  • 04:56
    kvark commented #3097
  • 04:12
    moxian edited #3097
  • 04:11
    moxian opened #3097
  • 01:54
    bors[bot] closed #3095
  • 01:54

    bors[bot] on master

    Upgrade to smallvec 1.0 Merge #3095 3095: Upgrade to s… (compare)

  • 01:54
    bors[bot] commented #3095
  • 01:14

    bors[bot] on staging.tmp

    (compare)

  • 01:14

    bors[bot] on staging

    Upgrade to smallvec 1.0 Merge #3095 3095: Upgrade to s… (compare)

  • 01:14

    bors[bot] on staging.tmp

    Upgrade to smallvec 1.0 [ci skip][skip ci][skip netlify… (compare)

  • 01:14

    bors[bot] on staging.tmp

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

  • 00:56
    bors[bot] closed #3096
  • 00:56
    bors[bot] closed #3092
Brendan Zabarauskas
@brendanzab
So do you think it would be too costly to return a Result<> for each fallible message?
Dzmitry Malyshau
@kvark
@bjz if you want to return Result<>and still load resources asynchronously, then you'd need a function to get the loaded result back. In @csherratt proposal, as I got it, there is no such function. Instead, the pipeline just avoids the use of the resource, and optionally (my proposal) reports the error back to the user via the designated channel.
Chip Collier
@photex
I'm feeling positive about the designated channel for errors, and simply ignoring requests for "invalid" resources.
And I think the Client struct can neatly manage the relevant channels
Coraline Sherratt
@removed~csherratt
I like the idea of an async error channel.
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