@@ -127,8 +127,8 @@ pub fn init(unstable: bool) -> Extension {
127127fn deserialize_features ( features : & wgpu_types:: Features ) -> Vec < & ' static str > {
128128 let mut return_features: Vec < & ' static str > = vec ! [ ] ;
129129
130- if features. contains ( wgpu_types:: Features :: DEPTH_CLAMPING ) {
131- return_features. push ( "depth-clamping " ) ;
130+ if features. contains ( wgpu_types:: Features :: DEPTH_CLIP_CONTROL ) {
131+ return_features. push ( "depth-clip-control " ) ;
132132 }
133133 if features. contains ( wgpu_types:: Features :: PIPELINE_STATISTICS_QUERY ) {
134134 return_features. push ( "pipeline-statistics-query" ) ;
@@ -309,105 +309,50 @@ pub struct GpuRequiredFeatures(HashSet<String>);
309309impl From < GpuRequiredFeatures > for wgpu_types:: Features {
310310 fn from ( required_features : GpuRequiredFeatures ) -> wgpu_types:: Features {
311311 let mut features: wgpu_types:: Features = wgpu_types:: Features :: empty ( ) ;
312-
313- if required_features. 0 . contains ( "depth-clamping" ) {
314- features. set ( wgpu_types:: Features :: DEPTH_CLAMPING , true ) ;
315- }
316- if required_features. 0 . contains ( "pipeline-statistics-query" ) {
317- features. set ( wgpu_types:: Features :: PIPELINE_STATISTICS_QUERY , true ) ;
318- }
319- if required_features. 0 . contains ( "texture-compression-bc" ) {
320- features. set ( wgpu_types:: Features :: TEXTURE_COMPRESSION_BC , true ) ;
321- }
322- if required_features. 0 . contains ( "timestamp-query" ) {
323- features. set ( wgpu_types:: Features :: TIMESTAMP_QUERY , true ) ;
324- }
312+ features. set ( wgpu_types:: Features :: DEPTH_CLIP_CONTROL , required_features. 0 . contains ( "depth-clip-control" ) ) ;
313+ features. set ( wgpu_types:: Features :: PIPELINE_STATISTICS_QUERY , required_features. 0 . contains ( "pipeline-statistics-query" ) ) ;
314+ features. set ( wgpu_types:: Features :: TEXTURE_COMPRESSION_BC , required_features. 0 . contains ( "texture-compression-bc" ) ) ;
315+ features. set ( wgpu_types:: Features :: TIMESTAMP_QUERY , required_features. 0 . contains ( "timestamp-query" ) ) ;
325316
326317 // extended from spec
327- if required_features. 0 . contains ( "mappable-primary-buffers" ) {
328- features. set ( wgpu_types:: Features :: MAPPABLE_PRIMARY_BUFFERS , true ) ;
329- }
330- if required_features. 0 . contains ( "texture-binding-array" ) {
331- features. set ( wgpu_types:: Features :: TEXTURE_BINDING_ARRAY , true ) ;
332- }
333- if required_features. 0 . contains ( "buffer-binding-array" ) {
334- features. set ( wgpu_types:: Features :: BUFFER_BINDING_ARRAY , true ) ;
335- }
336- if required_features
318+ features. set ( wgpu_types:: Features :: MAPPABLE_PRIMARY_BUFFERS , required_features. 0 . contains ( "mappable-primary-buffers" ) ) ;
319+ features. set ( wgpu_types:: Features :: TEXTURE_BINDING_ARRAY , required_features. 0 . contains ( "texture-binding-array" ) ) ;
320+ features. set ( wgpu_types:: Features :: BUFFER_BINDING_ARRAY , required_features. 0 . contains ( "buffer-binding-array" ) ) ;
321+ features. set ( wgpu_types:: Features :: STORAGE_RESOURCE_BINDING_ARRAY , required_features
337322 . 0
338- . contains ( "storage-resource-binding-array" )
339- {
340- features. set ( wgpu_types:: Features :: STORAGE_RESOURCE_BINDING_ARRAY , true ) ;
341- }
342- if required_features
343- . 0
344- . contains ( "sampled-texture-and-storage-buffer-array-non-uniform-indexing" )
345- {
323+ . contains ( "storage-resource-binding-array" ) ) ;
346324 features. set (
347325 wgpu_types:: Features :: SAMPLED_TEXTURE_AND_STORAGE_BUFFER_ARRAY_NON_UNIFORM_INDEXING ,
348- true ,
349- ) ;
350- }
351- if required_features
326+ required_features
352327 . 0
353- . contains ( "uniform-buffer -and-storage-buffer-texture -non-uniform-indexing" )
354- {
328+ . contains ( "sampled-texture -and-storage-buffer-array -non-uniform-indexing" ) ,
329+ ) ;
355330 features. set (
356331 wgpu_types:: Features :: UNIFORM_BUFFER_AND_STORAGE_TEXTURE_ARRAY_NON_UNIFORM_INDEXING ,
357- true ,
358- ) ;
359- }
360- if required_features. 0 . contains ( "unsized-binding-array" ) {
361- features. set ( wgpu_types:: Features :: UNSIZED_BINDING_ARRAY , true ) ;
362- }
363- if required_features. 0 . contains ( "multi-draw-indirect" ) {
364- features. set ( wgpu_types:: Features :: MULTI_DRAW_INDIRECT , true ) ;
365- }
366- if required_features. 0 . contains ( "multi-draw-indirect-count" ) {
367- features. set ( wgpu_types:: Features :: MULTI_DRAW_INDIRECT_COUNT , true ) ;
368- }
369- if required_features. 0 . contains ( "push-constants" ) {
370- features. set ( wgpu_types:: Features :: PUSH_CONSTANTS , true ) ;
371- }
372- if required_features. 0 . contains ( "address-mode-clamp-to-border" ) {
373- features. set ( wgpu_types:: Features :: ADDRESS_MODE_CLAMP_TO_BORDER , true ) ;
374- }
375- if required_features. 0 . contains ( "texture-compression-etc2" ) {
376- features. set ( wgpu_types:: Features :: TEXTURE_COMPRESSION_ETC2 , true ) ;
377- }
378- if required_features. 0 . contains ( "texture-compression-astc-ldr" ) {
379- features. set ( wgpu_types:: Features :: TEXTURE_COMPRESSION_ASTC_LDR , true ) ;
380- }
381- if required_features
332+ required_features
382333 . 0
383- . contains ( "texture-adapter-specific-format-features" )
384- {
334+ . contains ( "uniform-buffer-and-storage-buffer-texture-non-uniform-indexing" ) ,
335+ ) ;
336+ features. set ( wgpu_types:: Features :: UNSIZED_BINDING_ARRAY , required_features. 0 . contains ( "unsized-binding-array" ) ) ;
337+ features. set ( wgpu_types:: Features :: MULTI_DRAW_INDIRECT , required_features. 0 . contains ( "multi-draw-indirect" ) ) ;
338+ features. set ( wgpu_types:: Features :: MULTI_DRAW_INDIRECT_COUNT , required_features. 0 . contains ( "multi-draw-indirect-count" ) ) ;
339+ features. set ( wgpu_types:: Features :: PUSH_CONSTANTS , required_features. 0 . contains ( "push-constants" ) ) ;
340+ features. set ( wgpu_types:: Features :: ADDRESS_MODE_CLAMP_TO_BORDER , required_features. 0 . contains ( "address-mode-clamp-to-border" ) ) ;
341+ features. set ( wgpu_types:: Features :: TEXTURE_COMPRESSION_ETC2 , required_features. 0 . contains ( "texture-compression-etc2" ) ) ;
342+ features. set ( wgpu_types:: Features :: TEXTURE_COMPRESSION_ASTC_LDR , required_features. 0 . contains ( "texture-compression-astc-ldr" ) ) ;
385343 features. set (
386344 wgpu_types:: Features :: TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES ,
387- true ,
345+ required_features
346+ . 0
347+ . contains ( "texture-adapter-specific-format-features" ) ,
388348 ) ;
389- }
390- if required_features. 0 . contains ( "shader-float64" ) {
391- features. set ( wgpu_types:: Features :: SHADER_FLOAT64 , true ) ;
392- }
393- if required_features. 0 . contains ( "vertex-attribute-64bit" ) {
394- features. set ( wgpu_types:: Features :: VERTEX_ATTRIBUTE_64BIT , true ) ;
395- }
396- if required_features. 0 . contains ( "conservative-rasterization" ) {
397- features. set ( wgpu_types:: Features :: CONSERVATIVE_RASTERIZATION , true ) ;
398- }
399- if required_features. 0 . contains ( "vertex-writable-storage" ) {
400- features. set ( wgpu_types:: Features :: VERTEX_WRITABLE_STORAGE , true ) ;
401- }
402- if required_features. 0 . contains ( "clear-commands" ) {
403- features. set ( wgpu_types:: Features :: CLEAR_COMMANDS , true ) ;
404- }
405- if required_features. 0 . contains ( "spirv-shader-passthrough" ) {
406- features. set ( wgpu_types:: Features :: SPIRV_SHADER_PASSTHROUGH , true ) ;
407- }
408- if required_features. 0 . contains ( "shader-primitive-index" ) {
409- features. set ( wgpu_types:: Features :: SHADER_PRIMITIVE_INDEX , true ) ;
410- }
349+ features. set ( wgpu_types:: Features :: SHADER_FLOAT64 , required_features. 0 . contains ( "shader-float64" ) ) ;
350+ features. set ( wgpu_types:: Features :: VERTEX_ATTRIBUTE_64BIT , required_features. 0 . contains ( "vertex-attribute-64bit" ) ) ;
351+ features. set ( wgpu_types:: Features :: CONSERVATIVE_RASTERIZATION , required_features. 0 . contains ( "conservative-rasterization" ) ) ;
352+ features. set ( wgpu_types:: Features :: VERTEX_WRITABLE_STORAGE , required_features. 0 . contains ( "vertex-writable-storage" ) ) ;
353+ features. set ( wgpu_types:: Features :: CLEAR_COMMANDS , required_features. 0 . contains ( "clear-commands" ) ) ;
354+ features. set ( wgpu_types:: Features :: SPIRV_SHADER_PASSTHROUGH , required_features. 0 . contains ( "spirv-shader-passthrough" ) ) ;
355+ features. set ( wgpu_types:: Features :: SHADER_PRIMITIVE_INDEX , required_features. 0 . contains ( "shader-primitive-index" ) ) ;
411356
412357 features
413358 }
0 commit comments