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