@@ -44,6 +44,13 @@ Test basic render pass resolve behavior for combinations of:
4444 . combine ( 'slotsToResolve' , kSlotsToResolve )
4545 . combine ( 'resolveTargetBaseMipLevel' , [ 0 , 1 ] as const )
4646 . combine ( 'resolveTargetBaseArrayLayer' , [ 0 , 1 ] as const )
47+ . combine ( 'createColorAttachmentView' , [ false , true ] as const )
48+ . combine ( 'createResolveTargetTextureView' , [ false , true ] as const )
49+ . unless (
50+ p =>
51+ ! p . createResolveTargetTextureView &&
52+ ( p . resolveTargetBaseMipLevel !== 0 || p . resolveTargetBaseArrayLayer !== 0 )
53+ )
4754 )
4855 . fn ( t => {
4956 const targets : GPUColorTargetState [ ] = [ ] ;
@@ -108,18 +115,23 @@ Test basic render pass resolve behavior for combinations of:
108115 const kResolveTargetSize = kSize << t . params . resolveTargetBaseMipLevel ;
109116
110117 for ( let i = 0 ; i < t . params . numColorAttachments ; i ++ ) {
111- const colorAttachment = t
112- . createTextureTracked ( {
113- format : kFormat ,
114- size : [ kSize , kSize , 1 ] ,
115- sampleCount : 4 ,
116- mipLevelCount : 1 ,
117- usage :
118- GPUTextureUsage . COPY_DST | GPUTextureUsage . COPY_SRC | GPUTextureUsage . RENDER_ATTACHMENT ,
119- } )
120- . createView ( ) ;
121-
122- let resolveTarget : GPUTextureView | undefined ;
118+ const colorAttachmentTexture = t . createTextureTracked ( {
119+ format : kFormat ,
120+ size : [ kSize , kSize , 1 ] ,
121+ sampleCount : 4 ,
122+ mipLevelCount : 1 ,
123+ usage :
124+ GPUTextureUsage . COPY_DST | GPUTextureUsage . COPY_SRC | GPUTextureUsage . RENDER_ATTACHMENT ,
125+ } ) ;
126+
127+ let colorAttachment : GPUTexture | GPUTextureView ;
128+ if ( t . params . createResolveTargetTextureView ) {
129+ colorAttachment = colorAttachmentTexture . createView ( ) ;
130+ } else {
131+ colorAttachment = colorAttachmentTexture ;
132+ }
133+
134+ let resolveTarget : GPUTexture | GPUTextureView | undefined ;
123135 if ( t . params . slotsToResolve . includes ( i ) ) {
124136 const resolveTargetTexture = t . createTextureTracked ( {
125137 format : kFormat ,
@@ -130,10 +142,14 @@ Test basic render pass resolve behavior for combinations of:
130142 } ) ;
131143 resolveTargets . push ( resolveTargetTexture ) ;
132144
133- resolveTarget = resolveTargetTexture . createView ( {
134- baseMipLevel : t . params . resolveTargetBaseMipLevel ,
135- baseArrayLayer : t . params . resolveTargetBaseArrayLayer ,
136- } ) ;
145+ if ( t . params . createResolveTargetTextureView ) {
146+ resolveTarget = resolveTargetTexture . createView ( {
147+ baseMipLevel : t . params . resolveTargetBaseMipLevel ,
148+ baseArrayLayer : t . params . resolveTargetBaseArrayLayer ,
149+ } ) ;
150+ } else {
151+ resolveTarget = resolveTargetTexture ;
152+ }
137153 }
138154
139155 // Clear to black for the load operation. After the draw, the top left half of the attachment
0 commit comments