这是indexloc提供的服务,不要输入任何密码
Skip to content

Multiqueue topics asides from synchronization #1298

@Kangz

Description

@Kangz

As part of the discussions around #1169 and planning for MVP and v1 I took an action item to list the other multi-queue topics that we need to agree on before multi-queue is complete. These are mostly taken from #1073 that already lists a lot of them.

  • (huge) How do we handle concurrent access to resources? How does it interact with implicit or explicit synchronization we have for queue ownership transfers.
  • (small) Which resources are allowed to be used concurrently? (likely textures with a special flag and all buffers)
  • (big) How are the queues in the system discovered and queried? Can the developer request as many queues as they want? Is there a concept of queue family (that interacts with other items below)? When are queues given (device creation, query)?
  • (medium) Can resources start as owned exclusively on a queue? What about concurrent access on creation? (is that even useful?)
  • (medium) What is the interaction between buffer mapping and queue ownership given that mapping is an ownership operation? Is the buffer made visible concurrently to all queues and not transferable for MAP_WRITE with no other writable usage? What about MAP_READ?
  • (easy) What are the constraints on the [command | render bundle] [encoder | buffer] with respect to queues / queue families? (addressed by @kvark in Associate command encoding with a queue #1278)
  • (easy) What are the constraints on compute and render pipelines with respect to queues / queue families?
  • (?) Are there constraints on some "external" resource like the swapchain texture or imported textures as to what queue / queue family they can be used on?
  • (medium) Are there devices on which the defaultQueue is a compute-only queue? What about a copy-only?
  • (medium) What about queue priorities?
  • (medium) What about Vulkan's queue transfer granularity?

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiWebGPU APIlargemulti-queuePart of the multi-queue feature

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions