Add GPUResourceUsage.Staging for both CPU read/write access
This commit is contained in:
@@ -120,6 +120,7 @@ bool GPUBufferDX12::OnInit()
|
||||
switch (_desc.Usage)
|
||||
{
|
||||
case GPUResourceUsage::StagingUpload:
|
||||
case GPUResourceUsage::Staging:
|
||||
heapProperties.Type = D3D12_HEAP_TYPE_UPLOAD;
|
||||
break;
|
||||
case GPUResourceUsage::StagingReadback:
|
||||
@@ -152,7 +153,7 @@ bool GPUBufferDX12::OnInit()
|
||||
// But if we are doing it during update or from the other thread we have to register resource data upload job.
|
||||
// In both cases options.InitData data have to exist for a few next frames.
|
||||
|
||||
if (_desc.Usage == GPUResourceUsage::StagingUpload)
|
||||
if (_desc.Usage == GPUResourceUsage::StagingUpload || _desc.Usage == GPUResourceUsage::Staging)
|
||||
{
|
||||
// Modify staging resource data now
|
||||
SetData(_desc.InitData, _desc.Size);
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace RenderToolsDX
|
||||
{
|
||||
case GPUResourceUsage::Dynamic:
|
||||
return D3D11_USAGE_DYNAMIC;
|
||||
case GPUResourceUsage::Staging:
|
||||
case GPUResourceUsage::StagingUpload:
|
||||
case GPUResourceUsage::StagingReadback:
|
||||
return D3D11_USAGE_STAGING;
|
||||
@@ -47,6 +48,8 @@ namespace RenderToolsDX
|
||||
{
|
||||
case GPUResourceUsage::Dynamic:
|
||||
return D3D11_CPU_ACCESS_WRITE;
|
||||
case GPUResourceUsage::Staging:
|
||||
return D3D11_CPU_ACCESS_READ | D3D11_CPU_ACCESS_WRITE;
|
||||
case GPUResourceUsage::StagingReadback:
|
||||
return D3D11_CPU_ACCESS_READ;
|
||||
case GPUResourceUsage::StagingUpload:
|
||||
|
||||
@@ -128,6 +128,9 @@ bool GPUBufferVulkan::OnInit()
|
||||
case GPUResourceUsage::StagingReadback:
|
||||
allocInfo.usage = VMA_MEMORY_USAGE_GPU_TO_CPU;
|
||||
break;
|
||||
case GPUResourceUsage::Staging:
|
||||
allocInfo.usage = VMA_MEMORY_USAGE_CPU_COPY;
|
||||
break;
|
||||
default:
|
||||
allocInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user