Commit Graph

7999 Commits

Author SHA1 Message Date
teoxoy
39a268c624 remove FutureId.assign_existing 2024-07-03 15:01:41 +02:00
teoxoy
cd9f003477 move Device.set_queue call in create_device_and_queue_from_hal 2024-07-03 15:01:41 +02:00
teoxoy
96255d484f change FutureId.assign to not return a clone of the resource passed to it 2024-07-03 15:01:41 +02:00
teoxoy
7f3e1bba14 move code after calls to FutureId.assign inside Device fns 2024-07-03 15:01:41 +02:00
teoxoy
40022c1584 remove duplicate check, it's already present in Device.create_texture_view 2024-07-03 15:01:41 +02:00
teoxoy
dc55cb436c add Texture::new fn 2024-07-03 15:01:41 +02:00
teoxoy
53c79bdf7a move buffer creation logic in a new Device method 2024-07-03 15:01:41 +02:00
teoxoy
029168f14a remove no-op, calling schedule_resource_destruction with last_submit_index: !0 does nothing 2024-07-03 15:01:41 +02:00
teoxoy
a971e7f7d4 remove duplicate check, it's already present in Device.create_buffer 2024-07-03 15:01:41 +02:00
teoxoy
7b387007a8 make Device.create_buffer return an Arc<Buffer> 2024-07-03 15:01:41 +02:00
teoxoy
b8c5b2275e don't clone resources for ResourceMetadataProvider::Direct 2024-07-03 15:01:41 +02:00
teoxoy
69b44c6a32 gate fns behind either serde or replay since Firefox needs those 2024-07-02 18:06:19 +02:00
teoxoy
b61be30e53 move out ID to resource mapping code from Device.create_bind_group 2024-07-02 18:06:19 +02:00
teoxoy
1be51946e3 move out ID to resource mapping code from pipeline creation methods 2024-07-02 18:06:19 +02:00
teoxoy
d8b0b5975d assign resources/errors in the Global's pipeline creation functions 2024-07-02 18:06:19 +02:00
teoxoy
79b15b8de8 move out ID to BGL mapping from Device.create_pipeline_layout() 2024-07-02 18:06:19 +02:00
teoxoy
1f6ac35e83 change Storage.force_replace to take an Arc<T> 2024-07-02 18:06:19 +02:00
teoxoy
896418c740 Panic on non-existent entry in Storage.get, this is consistent with Element::Vacant 2024-07-02 18:06:19 +02:00
teoxoy
16c7d84d63 remove Registry.try_get() 2024-07-02 18:06:19 +02:00
teoxoy
b904e2c759 use Registry.get() for device_set_device_lost_closure 2024-07-02 18:06:19 +02:00
teoxoy
c4d71d9af5 use Registry.get() instead of Registry.read().get_owned() 2024-07-02 18:06:19 +02:00
teoxoy
3547138716 remove PrettyError 2024-07-02 18:06:19 +02:00
teoxoy
08b8e96c40 move ContextError's fmt logic in its Display impl 2024-07-02 18:06:19 +02:00
teoxoy
df7a6defa8 don't print the scope twice
The scope is already printed by the Display impl of those errors.
2024-07-02 18:06:19 +02:00
teoxoy
ed1e8ecf4b remove label getters from Global
Also removes label from `Element::Error` and slightly refactors ContextError.
2024-07-02 18:06:19 +02:00
teoxoy
9d3d4ee297 implement exclusive pipeline validation
This gets the bind_group_layout_dedup test passing again.
2024-07-02 18:06:19 +02:00
teoxoy
4a19ac279c introduce MultiError and use it for BGL incompatibility errors 2024-07-02 18:06:19 +02:00
teoxoy
42e16c7e7d simplify logic of Entry.is_valid 2024-07-02 18:06:19 +02:00
teoxoy
0d539874ed simplify the BGL compatibility check 2024-07-02 18:06:19 +02:00
teoxoy
9ec0f45efd move the BGL compatibility check in the binder 2024-07-02 18:06:19 +02:00
teoxoy
ca0027d12b use ResourceErrorIdent in a few buffer error variants 2024-07-02 18:06:19 +02:00
teoxoy
2fe761f7e3 remove MissingCopySrcUsageFlag error variant 2024-07-02 18:06:19 +02:00
teoxoy
1841857fea use .check_usage() for QUERY_RESOLVE 2024-07-02 18:06:19 +02:00
teoxoy
4df5474c9c remove MissingCopyDstUsageFlag error variants 2024-07-02 18:06:19 +02:00
teoxoy
a4bb5dff2b rename error variants that contain IDs 2024-07-02 18:06:19 +02:00
teoxoy
6fe041d544 make Queue.device non-optional 2024-07-02 18:06:19 +02:00
teoxoy
f34f7eb658 impl ParentDevice via macro 2024-07-02 18:06:19 +02:00
teoxoy
c3ebfde302 remove Resource trait 2024-07-02 18:06:19 +02:00
teoxoy
c63f0a02f2 introduce Trackable trait 2024-07-02 18:06:19 +02:00
teoxoy
ae7da8f669 introduce Labeled trait 2024-07-02 18:06:19 +02:00
teoxoy
985968fd38 remove unused Resource bound 2024-07-02 18:06:19 +02:00
teoxoy
727956fcde introduce StorageItem trait 2024-07-02 18:06:19 +02:00
teoxoy
90f7377cc9 introduce ResourceType trait 2024-07-02 18:06:19 +02:00
teoxoy
a422d1cba2 remove ResourceInfo.id 2024-07-02 18:06:19 +02:00
teoxoy
66777cc80d remove PassErrorScope::PassEncoder and id arg of PassErrorScope::Pass 2024-07-02 18:06:19 +02:00
teoxoy
d26aef554e use .error_ident() for log::trace! in render_pass_end 2024-07-02 18:06:19 +02:00
teoxoy
fc6fe76fce trace only render_pass_end_with_unresolved_commands 2024-07-02 18:06:19 +02:00
teoxoy
981db9be33 trace only compute_pass_end_with_unresolved_commands 2024-07-02 18:06:19 +02:00
Nicolas Silva
f25e07b984 Fix soundness issue with Snatchable
The code was written with the incorrect assumption that if no lifetime is specified in a method definition, then all lifetimes are elided to the lifetime of self. In fact only lifetimes in the returned value are elided to the lifetime of self, and other parameters get their own lifetimes.

Kudos to @teoxoy for catching the issue!
2024-07-01 18:41:12 +02:00
Andreas Reich
0a76c0fa84
Renderpass take resource ownership (#5884)
* share timestamp write struct

* Make name of set_push_constants methods consistently plural

* remove lifetime bounds of resources passed into render pass

* first render pass resource ownership test

* introduce dynrenderpass & immediately create ArcCommands and take ownership of resources passed on pass creation

* Use of dynrenderpass in deno

* Separate active occlusion & pipeline statitics query

* resolve render/compute command is now behind `replay` feature

* add vertex & index buffer to ownership test

* test for pipeline statistics query

* add occlusion query set to pass resource test

* add tests for resource ownership of render pass query timestamps

* RenderPass can now be made 'static just like ComputePass. Add respective test

* Extend encoder_operations_fail_while_pass_alive test to also check encoder locking errors with render passes

* improve changelog entry on lifetime bounds
2024-07-01 18:36:24 +02:00