@@ -528,32 +528,38 @@ impl crate::CommandEncoder for super::CommandEncoder {
528528 | wgt:: TextureUses :: STENCIL_READ
529529 | wgt:: TextureUses :: STENCIL_WRITE ,
530530 ) {
531- let mut barrier_stencil = crate :: TextureBarrier {
532- texture : barrier. texture ,
533- range : barrier. range ,
534- usage : barrier. usage . clone ( ) ,
535- } ;
536- let mut barrier_depth = barrier;
537-
538- barrier_depth. range . aspect = wgt:: TextureAspect :: DepthOnly ;
539- barrier_depth
540- . usage
541- . from
542- . remove ( wgt:: TextureUses :: STENCIL_READ | wgt:: TextureUses :: STENCIL_WRITE ) ;
543- barrier_depth
544- . usage
545- . to
546- . remove ( wgt:: TextureUses :: STENCIL_READ | wgt:: TextureUses :: STENCIL_WRITE ) ;
547-
548- barrier_stencil. range . aspect = wgt:: TextureAspect :: StencilOnly ;
549- barrier_stencil
550- . usage
551- . from
552- . remove ( wgt:: TextureUses :: DEPTH_READ | wgt:: TextureUses :: DEPTH_WRITE ) ;
553- barrier_stencil
554- . usage
555- . to
556- . remove ( wgt:: TextureUses :: DEPTH_READ | wgt:: TextureUses :: DEPTH_WRITE ) ;
531+ if barrier. texture . format . has_stencil_aspect ( ) {
532+ let mut barrier_stencil = crate :: TextureBarrier {
533+ texture : barrier. texture ,
534+ range : barrier. range ,
535+ usage : barrier. usage . clone ( ) ,
536+ } ;
537+ barrier_stencil. range . aspect = wgt:: TextureAspect :: StencilOnly ;
538+ barrier_stencil
539+ . usage
540+ . from
541+ . remove ( wgt:: TextureUses :: DEPTH_READ | wgt:: TextureUses :: DEPTH_WRITE ) ;
542+ barrier_stencil
543+ . usage
544+ . to
545+ . remove ( wgt:: TextureUses :: DEPTH_READ | wgt:: TextureUses :: DEPTH_WRITE ) ;
546+ barriers_ds_split. push ( barrier_stencil) ;
547+ }
548+
549+ if barrier. texture . format . has_depth_aspect ( ) {
550+ let mut barrier_depth = barrier;
551+
552+ barrier_depth. range . aspect = wgt:: TextureAspect :: DepthOnly ;
553+ barrier_depth
554+ . usage
555+ . from
556+ . remove ( wgt:: TextureUses :: STENCIL_READ | wgt:: TextureUses :: STENCIL_WRITE ) ;
557+ barrier_depth
558+ . usage
559+ . to
560+ . remove ( wgt:: TextureUses :: STENCIL_READ | wgt:: TextureUses :: STENCIL_WRITE ) ;
561+ barriers_ds_split. push ( barrier_depth) ;
562+ }
557563 } else {
558564 barriers_ds_split. push ( barrier) ;
559565 }
0 commit comments