Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:25
    Travis gfx-rs/gfx#3024 passed (7528)
  • 13:51
  • 13:51
    Frizi synchronize #3024
  • 13:51
    Frizi opened #3024
  • Sep 20 17:16
    kvark commented #2503
  • Sep 19 17:16
    Travis gfx-rs/gfx (master) passed (7526)
  • Sep 19 16:37
    bors[bot] closed #3022
  • Sep 19 16:37
    bors[bot] closed #3021
  • Sep 19 16:37
    bors[bot] closed #3021
  • Sep 19 16:37

    bors[bot] on master

    Take the push constant range as… Merge #3022 3022: Take the pus… (compare)

  • Sep 19 16:37
    bors[bot] commented #3022
  • Sep 19 16:37
    Travis gfx-rs/gfx (staging) passed (7525)
  • Sep 19 16:36
    kvark assigned #2877
  • Sep 19 16:12

    bors[bot] on staging.tmp

    (compare)

  • Sep 19 16:12

    bors[bot] on staging

    Take the push constant range as… Merge #3022 3022: Take the pus… (compare)

  • Sep 19 16:12

    bors[bot] on staging.tmp

    Take the push constant range as… [ci skip][skip ci][skip netlify… (compare)

  • Sep 19 16:12

    bors[bot] on staging.tmp

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

  • Sep 19 16:12
    kvark commented #3022
  • Sep 19 14:58
    kvark review_requested #3022
  • Sep 19 14:55
    kvark labeled #3023
Aleksi Juvani
@aleksijuvani
yes
to clarify, regarding the offsets specifically
Dzmitry Malyshau
@kvark
What about the pipeline layout?
Aleksi Juvani
@aleksijuvani
vulkan uses units of bytes everywhere
as do we
the inconsistency is that in create_pipeline_layout we multiply the offset by 4
which is weird
Dzmitry Malyshau
@kvark
Please file an issue, we'll continue there
Aleksi Juvani
@aleksijuvani
filed #3021
Dzmitry Malyshau
@kvark
side note: the new swapchain model testing is going well so far. Looks like we can proceed with it.
list of blockers before 0.4 - https://github.com/gfx-rs/gfx/milestone/12
Aleksi Juvani
@aleksijuvani
i'm really happy with how the new swapchain model turned out
it's been working well
related to that—i think gfx-portability is still using the old model, right?
because when running with gfx-portability i'm seeing the same fullscreen lock-ups as i did before
Dzmitry Malyshau
@kvark
Correct. It's going to be super tricky to port it to the new model, if possible at all.
At the same time, if we do manage to port, I'd be happy to remove the old model entirely, so it's an important research direction.
Dzmitry Malyshau
@kvark
that milestone has a few simple issues, btw, for anybody wanted to get involved!
There are also some backends (looking at you, dx12 and dx11) that haven't been converted to Rust2018 yet. Doing this is simple, and would be a good quality of life improvement.
^^^ request for help from first timers ^^^
Aleksi Juvani
@aleksijuvani
it's unfortunate that we have to re-upload the entire push constant range on metal even when a single byte in the push constants is changed
this does not seem ideal when i have an integer in the push constants that is changed prior to each draw call, because i end up setting like 80 bytes instead of 1
i wonder what metal does here internally
setVertexBytes:length:atIndex: does not have an offset parameter and you must set the entire range every time you call it
i wonder if it would be more efficient to manually create and manage a MTLBuffer for the push constants so we can only update a subrange of the push constants
but then again that would be a really weird oversight if that was the case
Aleksi Juvani
@aleksijuvani
perhaps they expect you to have a separate argument in the shader for each thing that would be a push constant field in vulkan, but that doesn't sound right
then again that is what the atIndex parameter seems to imply?
Dzmitry Malyshau
@kvark
We could have a coherent buffer containing all the constants. Problem is that we'd need to create and manage one per command buffer per pipeline layout
Dzmitry Malyshau
@kvark
@msiglreith did you see msiglreith/gfx_ocean#15 ?
Dzmitry Malyshau
@kvark
@grovesNL did you see https://github.com/servo/sparkle ? :)
although, this one isn't interesting
Josh Groves
@grovesNL
looks neat! maybe there are some ideas in there for native GL/ES that we can use for glow
Tyler Slabinski
@Slabity
Why can a memory heap have multiple MemoryTypes associated with it? Why doesn't each heap have a single MemoryType that covers all of its abilities?
To be specific, I have 2 heaps. But my MemoryProperties has 11 memory types. Many of which are just empty or duplicates: https://gist.github.com/Slabity/794eb166f95dbdadac331ed65ee0235d
Dzmitry Malyshau
@kvark
memory types are defining sort of a mode of HW operation, memory heaps are just... raw memory (unlinked from the way it's operated)
Tyler Slabinski
@Slabity
But why have multiple MemoryTypes with identical properties? I have 7 that have no properties set. I also have two with DEVICE_LOCAL
Do they really identify different modes of operation? Is there more information to to discover the difference?
Dzmitry Malyshau
@kvark
Yes, they do. You are on nvidia? They internally have to store textures separately from buffers separately from render targets, regardless of properties.
You'll different memory type masks returned by getxxxmemoryproperties
*you'll see
Tyler Slabinski
@Slabity
getxxxmemoryproperties? I don't see any function like that in gfx-hal
Dzmitry Malyshau
@kvark
Get_buffer_memory_requirements and same for images
Tyler Slabinski
@Slabity
Thanks, I think that's all the information I've been looking for
Dzmitry Malyshau
@kvark
(Typing on the go is hard)
Dzmitry Malyshau
@kvark
@msiglreith want to peek at gfx-rs/gfx#3022 before we go?
msiglreith
@msiglreith
Done, will look at the ocean changes later
Dzmitry Malyshau
@kvark
thanks!
Dzmitry Malyshau
@kvark
anybody used Rocket.Chat?
Dzmitry Malyshau
@kvark
@msiglreith btw, I looked at the dx12 pipeline caching, and it appears to be blocked on d3d12-rs deriving Clone, Debug, PartialEq, and Hash on a bunch of structures
Dzmitry Malyshau
@kvark
@msiglreith (sorry for the inflow of requests...) - please also check out https://github.com/gfx-rs/gfx/issues/2503#issuecomment-533638935