2
0
Эх сурвалжийг харах

sokol_gfx.h wgpu: clear storage attachments binding if not used

Andre Weissflog 4 сар өмнө
parent
commit
b44a975bb6
1 өөрчлөгдсөн 4 нэмэгдсэн , 0 устгасан
  1. 4 0
      sokol_gfx.h

+ 4 - 0
sokol_gfx.h

@@ -16868,6 +16868,7 @@ _SOKOL_PRIVATE void _sg_wgpu_begin_compute_pass(const sg_pass* pass) {
     // clear initial bindings
     // clear initial bindings
     wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_UB_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0);
     wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_UB_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0);
     wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0);
     wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_IMG_SMP_SBUF_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0);
+    wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_SIMG_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0);
     _sg_stats_add(wgpu.bindings.num_set_bindgroup, 1);
     _sg_stats_add(wgpu.bindings.num_set_bindgroup, 1);
 }
 }
 
 
@@ -17068,6 +17069,9 @@ _SOKOL_PRIVATE void _sg_wgpu_apply_pipeline(_sg_pipeline_t* pip) {
             } else {
             } else {
                 _SG_ERROR(WGPU_CREATEBINDGROUP_FAILED);
                 _SG_ERROR(WGPU_CREATEBINDGROUP_FAILED);
             }
             }
+        } else {
+            // no storage attachment bindings, clear bindgroup slot
+            wgpuComputePassEncoderSetBindGroup(_sg.wgpu.cpass_enc, _SG_WGPU_SIMG_BINDGROUP_INDEX, _sg.wgpu.empty_bind_group, 0, 0);
         }
         }
     } else {
     } else {
         SOKOL_ASSERT(!_sg.cur_pass.is_compute);
         SOKOL_ASSERT(!_sg.cur_pass.is_compute);