25 return supports_offscreen_msaa_;
36 return supports_texture_to_texture_blits_;
41 return supports_framebuffer_fetch_;
49 return supports_compute_subgroups_;
54 return supports_read_from_resolve_;
59 return supports_decal_sampler_address_mode_;
67 return default_color_format_;
72 return default_stencil_format_;
77 return default_depth_stencil_format_;
82 return supports_device_transient_textures_;
87 return default_glyph_atlas_format_;
92 return default_maximum_render_pass_attachment_size_;
103 return supports_extended_range_formats_;
108 return minimum_uniform_alignment_;
113 return needs_partitioned_host_buffer_;
119 bool supports_texture_to_texture_blits,
120 bool supports_framebuffer_fetch,
121 bool supports_compute,
122 bool supports_compute_subgroups,
123 bool supports_read_from_resolve,
124 bool supports_decal_sampler_address_mode,
125 bool supports_device_transient_textures,
126 bool supports_triangle_fan,
127 bool supports_extended_range_formats,
132 ISize default_maximum_render_pass_attachment_size,
133 size_t minimum_uniform_alignment,
134 bool needs_partitioned_host_buffer)
135 : supports_offscreen_msaa_(supports_offscreen_msaa),
136 supports_ssbo_(supports_ssbo),
137 supports_texture_to_texture_blits_(supports_texture_to_texture_blits),
138 supports_framebuffer_fetch_(supports_framebuffer_fetch),
139 supports_compute_(supports_compute),
140 supports_compute_subgroups_(supports_compute_subgroups),
141 supports_read_from_resolve_(supports_read_from_resolve),
142 supports_decal_sampler_address_mode_(
143 supports_decal_sampler_address_mode),
144 supports_device_transient_textures_(supports_device_transient_textures),
145 supports_triangle_fan_(supports_triangle_fan),
146 supports_extended_range_formats_(supports_extended_range_formats),
147 needs_partitioned_host_buffer_(needs_partitioned_host_buffer),
148 default_color_format_(default_color_format),
149 default_stencil_format_(default_stencil_format),
150 default_depth_stencil_format_(default_depth_stencil_format),
151 default_glyph_atlas_format_(default_glyph_atlas_format),
152 default_maximum_render_pass_attachment_size_(
153 default_maximum_render_pass_attachment_size),
154 minimum_uniform_alignment_(minimum_uniform_alignment) {}
158 bool supports_offscreen_msaa_ =
false;
159 bool supports_ssbo_ =
false;
160 bool supports_texture_to_texture_blits_ =
false;
161 bool supports_framebuffer_fetch_ =
false;
162 bool supports_compute_ =
false;
163 bool supports_compute_subgroups_ =
false;
164 bool supports_read_from_resolve_ =
false;
165 bool supports_decal_sampler_address_mode_ =
false;
166 bool supports_device_transient_textures_ =
false;
167 bool supports_triangle_fan_ =
false;
168 bool supports_extended_range_formats_ =
false;
169 bool needs_partitioned_host_buffer_ =
false;
174 ISize default_maximum_render_pass_attachment_size_ =
ISize(1, 1);
175 size_t minimum_uniform_alignment_ = 256;
293 supports_offscreen_msaa_,
295 supports_texture_to_texture_blits_,
296 supports_framebuffer_fetch_,
298 supports_compute_subgroups_,
299 supports_read_from_resolve_,
300 supports_decal_sampler_address_mode_,
301 supports_device_transient_textures_,
302 supports_triangle_fan_,
303 supports_extended_range_formats_,
308 default_maximum_render_pass_attachment_size_.value_or(
ISize{1, 1}),
309 minimum_uniform_alignment_,
310 needs_partitioned_host_buffer_