@@ -3,11 +3,10 @@ use rafx::render_feature_prepare_job_predule::*;
3
3
use super :: * ;
4
4
use crate :: phases:: OpaqueRenderPhase ;
5
5
use rafx:: api:: { RafxBufferDef , RafxDeviceContext , RafxMemoryUsage , RafxResourceType } ;
6
- use rafx:: framework:: { DescriptorSetAllocatorRef , DynResourceAllocatorSet } ;
6
+ use rafx:: framework:: ResourceContext ;
7
7
8
8
pub struct Debug3DPrepareJob {
9
- descriptor_set_allocator : Mutex < DescriptorSetAllocatorRef > ,
10
- dyn_resource_allocator_set : DynResourceAllocatorSet ,
9
+ resource_context : ResourceContext ,
11
10
device_context : RafxDeviceContext ,
12
11
}
13
12
@@ -19,18 +18,7 @@ impl Debug3DPrepareJob {
19
18
) -> Arc < dyn RenderFeaturePrepareJob < ' prepare > + ' prepare > {
20
19
Arc :: new ( PrepareJob :: new (
21
20
Self {
22
- descriptor_set_allocator : {
23
- Mutex :: new (
24
- prepare_context
25
- . resource_context
26
- . create_descriptor_set_allocator ( ) ,
27
- )
28
- } ,
29
- dyn_resource_allocator_set : {
30
- prepare_context
31
- . resource_context
32
- . create_dyn_resource_allocator_set ( )
33
- } ,
21
+ resource_context : prepare_context. resource_context . clone ( ) ,
34
22
device_context : prepare_context. device_context . clone ( ) ,
35
23
} ,
36
24
frame_packet,
@@ -42,7 +30,6 @@ impl Debug3DPrepareJob {
42
30
impl < ' prepare > PrepareJobEntryPoints < ' prepare > for Debug3DPrepareJob {
43
31
fn begin_per_frame_prepare (
44
32
& self ,
45
- _render_objects : & RenderObjectsMap < Debug3DRenderObjectStaticData > ,
46
33
context : & PreparePerFrameContext < ' prepare , ' _ , Self > ,
47
34
) {
48
35
let mut per_frame_submit_data = Debug3DPerFrameSubmitData :: default ( ) ;
@@ -69,6 +56,7 @@ impl<'prepare> PrepareJobEntryPoints<'prepare> for Debug3DPrepareJob {
69
56
70
57
// We would probably want to support multiple buffers at some point
71
58
59
+ let dyn_resource_allocator_set = self . resource_context . create_dyn_resource_allocator_set ( ) ;
72
60
per_frame_submit_data. vertex_buffer = if !per_frame_submit_data. draw_calls . is_empty ( ) {
73
61
let vertex_buffer_size = per_frame_submit_data. vertex_list . len ( ) as u64
74
62
* std:: mem:: size_of :: < Debug3DVertex > ( ) as u64 ;
@@ -87,7 +75,7 @@ impl<'prepare> PrepareJobEntryPoints<'prepare> for Debug3DPrepareJob {
87
75
. copy_to_host_visible_buffer ( per_frame_submit_data. vertex_list . as_slice ( ) )
88
76
. unwrap ( ) ;
89
77
90
- Some ( self . dyn_resource_allocator_set . insert_buffer ( vertex_buffer) )
78
+ Some ( dyn_resource_allocator_set. insert_buffer ( vertex_buffer) )
91
79
} else {
92
80
None
93
81
} ;
@@ -100,7 +88,6 @@ impl<'prepare> PrepareJobEntryPoints<'prepare> for Debug3DPrepareJob {
100
88
101
89
fn end_per_view_prepare (
102
90
& self ,
103
- _render_objects : & RenderObjectsMap < Debug3DRenderObjectStaticData > ,
104
91
context : & PreparePerViewContext < ' prepare , ' _ , Self > ,
105
92
) {
106
93
let per_frame_data = context. per_frame_data ( ) ;
@@ -118,14 +105,13 @@ impl<'prepare> PrepareJobEntryPoints<'prepare> for Debug3DPrepareJob {
118
105
view_proj : ( view. projection_matrix ( ) * view. view_matrix ( ) ) . to_cols_array_2d ( ) ,
119
106
} ;
120
107
108
+ let mut descriptor_set_allocator = self . resource_context . create_descriptor_set_allocator ( ) ;
121
109
context
122
110
. view_submit_packet ( )
123
111
. per_view_submit_data ( )
124
112
. set ( Debug3DPerViewSubmitData {
125
- descriptor_set_arc : self
126
- . descriptor_set_allocator
127
- . lock ( )
128
- . create_descriptor_set (
113
+ descriptor_set_arc : descriptor_set_allocator
114
+ . create_descriptor_set_with_writer (
129
115
per_view_descriptor_set_layout,
130
116
shaders:: debug_vert:: DescriptorSet0Args {
131
117
per_frame_data : & debug3d_view,
@@ -147,7 +133,9 @@ impl<'prepare> PrepareJobEntryPoints<'prepare> for Debug3DPrepareJob {
147
133
super :: render_feature_index ( )
148
134
}
149
135
150
- type RenderObjectStaticDataT = Debug3DRenderObjectStaticData ;
136
+ type RenderObjectInstanceJobContextT = DefaultJobContext ;
137
+ type RenderObjectInstancePerViewJobContextT = DefaultJobContext ;
138
+
151
139
type FramePacketDataT = Debug3DRenderFeatureTypes ;
152
140
type SubmitPacketDataT = Debug3DRenderFeatureTypes ;
153
141
}
0 commit comments