@@ -454,50 +454,29 @@ HRESULT Model::UploadGpuResources(ID3D12Device* device, ID3D12CommandQueue* cmdQ
454454 cmdList->CopyResource (m.VertexResources [j].Get (), vertexUploads[j].Get ());
455455 const auto barrier = CD3DX12_RESOURCE_BARRIER::Transition (m.VertexResources [j].Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
456456 cmdList->ResourceBarrier (1 , &barrier);
457- // cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m.VertexResources[j].Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE));
458457 }
459458
459+ D3D12_RESOURCE_BARRIER postCopyBarriers[6 ];
460+
460461 cmdList->CopyResource (m.IndexResource .Get (), indexUpload.Get ());
461- {
462- const auto barrier = CD3DX12_RESOURCE_BARRIER::Transition (m.IndexResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
463- cmdList->ResourceBarrier (1 , &barrier);
464- }
465- // cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m.IndexResource.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE));
462+ postCopyBarriers[0 ] = CD3DX12_RESOURCE_BARRIER::Transition (m.IndexResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
466463
467464 cmdList->CopyResource (m.MeshletResource .Get (), meshletUpload.Get ());
468- {
469- const auto barrier = CD3DX12_RESOURCE_BARRIER::Transition (m.MeshletResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
470- cmdList->ResourceBarrier (1 , &barrier);
471- }
472- // cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m.MeshletResource.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE));
465+ postCopyBarriers[1 ] = CD3DX12_RESOURCE_BARRIER::Transition (m.MeshletResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
473466
474467 cmdList->CopyResource (m.CullDataResource .Get (), cullDataUpload.Get ());
475- {
476- const auto barrier = CD3DX12_RESOURCE_BARRIER::Transition (m.CullDataResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
477- cmdList->ResourceBarrier (1 , &barrier);
478- }
479- // cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m.CullDataResource.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE));
468+ postCopyBarriers[2 ] = CD3DX12_RESOURCE_BARRIER::Transition (m.CullDataResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
480469
481470 cmdList->CopyResource (m.UniqueVertexIndexResource .Get (), uniqueVertexIndexUpload.Get ());
482- {
483- const auto barrier = CD3DX12_RESOURCE_BARRIER::Transition (m.UniqueVertexIndexResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
484- cmdList->ResourceBarrier (1 , &barrier);
485- }
486- // cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m.UniqueVertexIndexResource.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE));
471+ postCopyBarriers[3 ] = CD3DX12_RESOURCE_BARRIER::Transition (m.UniqueVertexIndexResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
487472
488473 cmdList->CopyResource (m.PrimitiveIndexResource .Get (), primitiveIndexUpload.Get ());
489- {
490- const auto barrier = CD3DX12_RESOURCE_BARRIER::Transition (m.PrimitiveIndexResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
491- cmdList->ResourceBarrier (1 , &barrier);
492- }
493- // cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m.PrimitiveIndexResource.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE));
474+ postCopyBarriers[4 ] = CD3DX12_RESOURCE_BARRIER::Transition (m.PrimitiveIndexResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
494475
495476 cmdList->CopyResource (m.MeshInfoResource .Get (), meshInfoUpload.Get ());
496- {
497- const auto barrier = CD3DX12_RESOURCE_BARRIER::Transition (m.MeshInfoResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);
498- cmdList->ResourceBarrier (1 , &barrier);
499- }
500- // cmdList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m.MeshInfoResource.Get(), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER));
477+ postCopyBarriers[5 ] = CD3DX12_RESOURCE_BARRIER::Transition (m.MeshInfoResource .Get (), D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER);
478+
479+ cmdList->ResourceBarrier (ARRAYSIZE (postCopyBarriers), postCopyBarriers);
501480
502481 ThrowIfFailed (cmdList->Close ());
503482
0 commit comments