aboutsummaryrefslogtreecommitdiff
path: root/demo/DemoAppD3D12/computeContextD3D12.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'demo/DemoAppD3D12/computeContextD3D12.cpp')
-rw-r--r--demo/DemoAppD3D12/computeContextD3D12.cpp272
1 files changed, 177 insertions, 95 deletions
diff --git a/demo/DemoAppD3D12/computeContextD3D12.cpp b/demo/DemoAppD3D12/computeContextD3D12.cpp
index f6cf26e..9e54325 100644
--- a/demo/DemoAppD3D12/computeContextD3D12.cpp
+++ b/demo/DemoAppD3D12/computeContextD3D12.cpp
@@ -250,9 +250,9 @@ struct ComputeContextUserData
virtual void Release() = 0;
};
-struct ComputeContext
+struct ComputeContextD3D12
{
- ComputeContextDesc m_desc = {};
+ ComputeContextDescD3D12 m_desc = {};
ID3D12RootSignature* m_rootSignatureCompute = nullptr;
ID3D12DescriptorHeap* m_nullHeap = nullptr;
@@ -261,8 +261,10 @@ struct ComputeContext
ComputeContextUserData* m_computeUserdata = nullptr;
- ComputeContext(const ComputeContextDesc* desc)
+ ComputeContextD3D12(const ComputeContextDesc* descIn)
{
+ auto desc = cast_to_ComputeContextDescD3D12(descIn);
+
m_desc = *desc;
auto createRootSignature = [&](D3D12_ROOT_SIGNATURE_DESC* desc, ID3D12RootSignature** root)
@@ -323,7 +325,7 @@ struct ComputeContext
m_desc.device->CreateShaderResourceView(nullptr, &srvDesc, m_nullSRV);
}
}
- ~ComputeContext()
+ ~ComputeContextD3D12()
{
COMRelease(m_rootSignatureCompute);
COMRelease(m_nullHeap);
@@ -331,20 +333,40 @@ struct ComputeContext
}
};
-struct ComputeShader
+inline ComputeContextD3D12* cast_to_ComputeContextD3D12(ComputeContext* ctx)
+{
+ return (ComputeContextD3D12*)(ctx);
+}
+
+inline ComputeContext* cast_from_ComputeContextD3D12(ComputeContextD3D12* ctx)
+{
+ return (ComputeContext*)(ctx);
+}
+
+struct ComputeShaderD3D12
{
ID3D12PipelineState* m_shader = nullptr;
- ComputeShader(ID3D12PipelineState* shader)
+ ComputeShaderD3D12(ID3D12PipelineState* shader)
{
m_shader = shader;
}
- ~ComputeShader()
+ ~ComputeShaderD3D12()
{
COMRelease(m_shader);
}
};
-struct ComputeConstantBuffer
+inline ComputeShaderD3D12* cast_to_ComputeShaderD3D12(ComputeShader* ctx)
+{
+ return (ComputeShaderD3D12*)(ctx);
+}
+
+inline ComputeShader* cast_from_ComputeShaderD3D12(ComputeShaderD3D12* ctx)
+{
+ return (ComputeShader*)(ctx);
+}
+
+struct ComputeConstantBufferD3D12
{
ComputeConstantBufferDesc m_desc = {};
@@ -357,38 +379,54 @@ struct ComputeConstantBuffer
};
VersionedBuffer<BufferData> m_buffers;
- ComputeConstantBuffer(ComputeContext* context, const ComputeConstantBufferDesc* desc)
- {
- m_desc = *desc;
+ ComputeConstantBufferD3D12(ComputeContext* context, const ComputeConstantBufferDesc* desc);
+ ~ComputeConstantBufferD3D12();
+};
- // map and unmap to trigger initial allocation
- ComputeConstantBufferMap(context, this);
- ComputeConstantBufferUnmap(context, this);
- }
- ~ComputeConstantBuffer()
+inline ComputeConstantBufferD3D12* cast_to_ComputeConstantBufferD3D12(ComputeConstantBuffer* ctx)
+{
+ return (ComputeConstantBufferD3D12*)(ctx);
+}
+
+inline ComputeConstantBuffer* cast_from_ComputeConstantBufferD3D12(ComputeConstantBufferD3D12* ctx)
+{
+ return (ComputeConstantBuffer*)(ctx);
+}
+
+ComputeConstantBufferD3D12::ComputeConstantBufferD3D12(ComputeContext* context, const ComputeConstantBufferDesc* desc)
+{
+ m_desc = *desc;
+
+ // map and unmap to trigger initial allocation
+ ComputeConstantBufferMapD3D12(context, cast_from_ComputeConstantBufferD3D12(this));
+ ComputeConstantBufferUnmapD3D12(context, cast_from_ComputeConstantBufferD3D12(this));
+}
+
+ComputeConstantBufferD3D12::~ComputeConstantBufferD3D12()
+{
+ for (ComputeUint i = 0; i < m_buffers.m_buffers.m_size; i++)
{
- for (ComputeUint i = 0; i < m_buffers.m_buffers.m_size; i++)
- {
- COMRelease(m_buffers.m_buffers[i].bufferData.m_buffer);
- }
+ COMRelease(m_buffers.m_buffers[i].bufferData.m_buffer);
}
-};
+}
-struct ComputeResource
+struct ComputeResourceD3D12
{
protected:
D3D12_CPU_DESCRIPTOR_HANDLE m_srv;
ID3D12Resource* m_resource;
D3D12_RESOURCE_STATES* m_currentState;
public:
- void update(const ComputeResourceDesc* desc)
+ void update(const ComputeResourceDesc* descIn)
{
+ auto desc = cast_to_ComputeResourceDescD3D12(descIn);
+
m_srv = desc->srv;
m_resource = desc->resource;
m_currentState = desc->currentState;
}
- ComputeResource(const ComputeResourceDesc* desc)
+ ComputeResourceD3D12(const ComputeResourceDesc* desc)
{
update(desc);
}
@@ -409,21 +447,36 @@ public:
}
};
-struct ComputeResourceRW : public ComputeResource
+inline ComputeResourceD3D12* cast_to_ComputeResourceD3D12(ComputeResource* ctx)
+{
+ return (ComputeResourceD3D12*)(ctx);
+}
+
+inline ComputeResource* cast_from_ComputeResourceD3D12(ComputeResourceD3D12* ctx)
+{
+ return (ComputeResource*)(ctx);
+}
+
+struct ComputeResourceRWD3D12 : public ComputeResourceD3D12
{
protected:
D3D12_CPU_DESCRIPTOR_HANDLE m_uav;
public:
+ static const ComputeResourceRWDescD3D12* cast(const ComputeResourceRWDesc* descRW)
+ {
+ return cast_to_ComputeResourceRWDescD3D12(descRW);
+ }
+
void update(const ComputeResourceRWDesc* descRW)
{
- m_uav = descRW->uav;
- ComputeResource::update(&descRW->resource);
+ m_uav = cast(descRW)->uav;
+ ComputeResourceD3D12::update(cast_from_ComputeResourceDescD3D12(&cast(descRW)->resource));
}
- ComputeResourceRW(const ComputeResourceRWDesc* descRW) :
- ComputeResource(&descRW->resource)
+ ComputeResourceRWD3D12(const ComputeResourceRWDesc* descRW) :
+ ComputeResourceD3D12(cast_from_ComputeResourceDescD3D12(&cast(descRW)->resource))
{
- m_uav = descRW->uav;
+ m_uav = cast(descRW)->uav;
}
D3D12_CPU_DESCRIPTOR_HANDLE UAV()
@@ -432,25 +485,41 @@ public:
}
};
+inline ComputeResourceRWD3D12* cast_to_ComputeResourceRWD3D12(ComputeResourceRW* ctx)
+{
+ return (ComputeResourceRWD3D12*)(ctx);
+}
+
+inline ComputeResourceRW* cast_from_ComputeResourceRWD3D12(ComputeResourceRWD3D12* ctx)
+{
+ return (ComputeResourceRW*)(ctx);
+}
+
+
// ************* API functions ****************
-ComputeContext* ComputeContextCreate(ComputeContextDesc* desc)
+ComputeContext* ComputeContextCreateD3D12(ComputeContextDesc* desc)
{
- return new ComputeContext(desc);
+ return cast_from_ComputeContextD3D12(new ComputeContextD3D12(desc));
}
-void ComputeContextUpdate(ComputeContext* context, ComputeContextDesc* desc)
+void ComputeContextUpdateD3D12(ComputeContext* contextIn, ComputeContextDesc* descIn)
{
+ auto context = cast_to_ComputeContextD3D12(contextIn);
+ auto desc = cast_to_ComputeContextDescD3D12(descIn);
+
context->m_desc = *desc;
}
-void ComputeContextRelease(ComputeContext* context)
+void ComputeContextReleaseD3D12(ComputeContext* context)
{
- delete context;
+ delete cast_to_ComputeContextD3D12(context);
}
-ComputeShader* ComputeShaderCreate(ComputeContext* context, const ComputeShaderDesc* desc)
+ComputeShader* ComputeShaderCreateD3D12(ComputeContext* contextIn, const ComputeShaderDesc* desc)
{
+ auto context = cast_to_ComputeContextD3D12(contextIn);
+
ID3D12PipelineState* computeShader = nullptr;
D3D12_COMPUTE_PIPELINE_STATE_DESC psoDesc = {};
@@ -460,26 +529,29 @@ ComputeShader* ComputeShaderCreate(ComputeContext* context, const ComputeShaderD
context->m_desc.device->CreateComputePipelineState(&psoDesc, IID_PPV_ARGS(&computeShader));
- return new ComputeShader(computeShader);
+ return cast_from_ComputeShaderD3D12(new ComputeShaderD3D12(computeShader));
}
-void ComputeShaderRelease(ComputeShader* shader)
+void ComputeShaderReleaseD3D12(ComputeShader* shader)
{
- delete shader;
+ delete cast_to_ComputeShaderD3D12(shader);
}
-ComputeConstantBuffer* ComputeConstantBufferCreate(ComputeContext* context, const ComputeConstantBufferDesc* desc)
+ComputeConstantBuffer* ComputeConstantBufferCreateD3D12(ComputeContext* context, const ComputeConstantBufferDesc* desc)
{
- return new ComputeConstantBuffer(context, desc);
+ return cast_from_ComputeConstantBufferD3D12(new ComputeConstantBufferD3D12(context, desc));
}
-void ComputeConstantBufferRelease(ComputeConstantBuffer* constantBuffer)
+void ComputeConstantBufferReleaseD3D12(ComputeConstantBuffer* constantBuffer)
{
- delete constantBuffer;
+ delete cast_to_ComputeConstantBufferD3D12(constantBuffer);
}
-void* ComputeConstantBufferMap(ComputeContext* context, ComputeConstantBuffer* constantBuffer)
+void* ComputeConstantBufferMapD3D12(ComputeContext* contextIn, ComputeConstantBuffer* constantBufferIn)
{
+ auto context = cast_to_ComputeContextD3D12(contextIn);
+ auto constantBuffer = cast_to_ComputeConstantBufferD3D12(constantBufferIn);
+
auto bufferData = constantBuffer->m_buffers.map(context->m_desc.lastFenceCompleted, context->m_desc.nextFenceValue);
if (bufferData->m_buffer == nullptr)
@@ -500,52 +572,60 @@ void* ComputeConstantBufferMap(ComputeContext* context, ComputeConstantBuffer* c
return bufferData->m_mappedData;
}
-void ComputeConstantBufferUnmap(ComputeContext* context, ComputeConstantBuffer* constantBuffer)
+void ComputeConstantBufferUnmapD3D12(ComputeContext* contextIn, ComputeConstantBuffer* constantBufferIn)
{
+ auto context = cast_to_ComputeContextD3D12(contextIn);
+ auto constantBuffer = cast_to_ComputeConstantBufferD3D12(constantBufferIn);
+
constantBuffer->m_buffers.unmap(context->m_desc.lastFenceCompleted, context->m_desc.nextFenceValue);
}
-ComputeResource* ComputeResourceCreate(ComputeContext* context, const ComputeResourceDesc* desc)
+ComputeResource* ComputeResourceCreateD3D12(ComputeContext* context, const ComputeResourceDesc* desc)
{
- return new ComputeResource(desc);
+ return cast_from_ComputeResourceD3D12(new ComputeResourceD3D12(desc));
}
-void ComputeResourceUpdate(ComputeContext* context, ComputeResource* resource, const ComputeResourceDesc* desc)
+void ComputeResourceUpdateD3D12(ComputeContext* context, ComputeResource* resourceIn, const ComputeResourceDesc* desc)
{
+ auto resource = cast_to_ComputeResourceD3D12(resourceIn);
resource->update(desc);
}
-void ComputeResourceRelease(ComputeResource* resource)
+void ComputeResourceReleaseD3D12(ComputeResource* resource)
{
- delete resource;
+ delete cast_to_ComputeResourceD3D12(resource);
}
-ComputeResourceRW* ComputeResourceRWCreate(ComputeContext* context, const ComputeResourceRWDesc* desc)
+ComputeResourceRW* ComputeResourceRWCreateD3D12(ComputeContext* context, const ComputeResourceRWDesc* desc)
{
- return new ComputeResourceRW(desc);
+ return cast_from_ComputeResourceRWD3D12(new ComputeResourceRWD3D12(desc));
}
-void ComputeResourceRWUpdate(ComputeContext* context, ComputeResourceRW* resourceRW, const ComputeResourceRWDesc* desc)
+void ComputeResourceRWUpdateD3D12(ComputeContext* context, ComputeResourceRW* resourceRWIn, const ComputeResourceRWDesc* desc)
{
+ auto resourceRW = cast_to_ComputeResourceRWD3D12(resourceRWIn);
resourceRW->update(desc);
}
-void ComputeResourceRWRelease(ComputeResourceRW* resourceRW)
+void ComputeResourceRWReleaseD3D12(ComputeResourceRW* resourceRW)
{
- delete resourceRW;
+ delete cast_to_ComputeResourceRWD3D12(resourceRW);
}
-ComputeResource* ComputeResourceRWGetResource(ComputeResourceRW* resourceRW)
+ComputeResource* ComputeResourceRWGetResourceD3D12(ComputeResourceRW* resourceRWIn)
{
- return static_cast<ComputeResource*>(resourceRW);
+ auto resourceRW = cast_to_ComputeResourceRWD3D12(resourceRWIn);
+ return cast_from_ComputeResourceD3D12(static_cast<ComputeResourceD3D12*>(resourceRW));
}
-void ComputeContextDispatch(ComputeContext* context, const ComputeDispatchParams* params)
+void ComputeContextDispatchD3D12(ComputeContext* contextIn, const ComputeDispatchParams* params)
{
+ auto context = cast_to_ComputeContextD3D12(contextIn);
+
auto& commandList = context->m_desc.commandList;
commandList->SetComputeRootSignature(context->m_rootSignatureCompute);
- if (params->shader) commandList->SetPipelineState(params->shader->m_shader);
+ if (params->shader) commandList->SetPipelineState(cast_to_ComputeShaderD3D12(params->shader)->m_shader);
auto handles = context->m_desc.dynamicHeapCbvSrvUav.reserveDescriptors(context->m_desc.dynamicHeapCbvSrvUav.userdata,
ComputeDispatchMaxResources + ComputeDispatchMaxResourcesRW,
@@ -557,14 +637,14 @@ void ComputeContextDispatch(ComputeContext* context, const ComputeDispatchParams
for (ComputeUint i = 0u; i < ComputeDispatchMaxResources; i++)
{
auto r = params->resources[i];
- D3D12_CPU_DESCRIPTOR_HANDLE srcHandle = r ? r->SRV() : context->m_nullSRV;
+ D3D12_CPU_DESCRIPTOR_HANDLE srcHandle = r ? cast_to_ComputeResourceD3D12(r)->SRV() : context->m_nullSRV;
context->m_desc.device->CopyDescriptorsSimple(1u, handles.cpuHandle, srcHandle, D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV);
handles.cpuHandle.ptr += handles.descriptorSize;
}
for (ComputeUint i = 0u; i < ComputeDispatchMaxResourcesRW; i++)
{
auto rw = params->resourcesRW[i];
- D3D12_CPU_DESCRIPTOR_HANDLE srcHandle = rw ? rw->UAV() : context->m_nullUAV;
+ D3D12_CPU_DESCRIPTOR_HANDLE srcHandle = rw ? cast_to_ComputeResourceRWD3D12(rw)->UAV() : context->m_nullUAV;
context->m_desc.device->CopyDescriptorsSimple(1u, handles.cpuHandle, srcHandle, D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV);
handles.cpuHandle.ptr += handles.descriptorSize;
}
@@ -575,7 +655,7 @@ void ComputeContextDispatch(ComputeContext* context, const ComputeDispatchParams
if (params->constantBuffer)
{
- auto cbv = params->constantBuffer->m_buffers.front()->m_buffer;
+ auto cbv = cast_to_ComputeConstantBufferD3D12(params->constantBuffer)->m_buffers.front()->m_buffer;
commandList->SetComputeRootConstantBufferView(0u, cbv->GetGPUVirtualAddress());
}
@@ -586,17 +666,17 @@ void ComputeContextDispatch(ComputeContext* context, const ComputeDispatchParams
auto r = params->resources[i];
if (r)
{
- if (!((*r->currentState()) & D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE))
+ if (!((*cast_to_ComputeResourceD3D12(r)->currentState()) & D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE))
{
D3D12_RESOURCE_BARRIER& bar = barrier[barrierIdx++];
bar.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
bar.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE;
- bar.Transition.pResource = r->resource();
+ bar.Transition.pResource = cast_to_ComputeResourceD3D12(r)->resource();
bar.Transition.Subresource = 0u;
- bar.Transition.StateBefore = *r->currentState();
+ bar.Transition.StateBefore = *cast_to_ComputeResourceD3D12(r)->currentState();
bar.Transition.StateAfter = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
- *r->currentState() = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
+ *cast_to_ComputeResourceD3D12(r)->currentState() = D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE;
}
}
}
@@ -605,24 +685,24 @@ void ComputeContextDispatch(ComputeContext* context, const ComputeDispatchParams
auto rw = params->resourcesRW[i];
if (rw)
{
- if ((*rw->currentState()) == D3D12_RESOURCE_STATE_UNORDERED_ACCESS)
+ if ((*cast_to_ComputeResourceRWD3D12(rw)->currentState()) == D3D12_RESOURCE_STATE_UNORDERED_ACCESS)
{
D3D12_RESOURCE_BARRIER& bar = barrier[barrierIdx++];
bar.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV;
bar.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE;
- bar.UAV.pResource = rw->resource();
+ bar.UAV.pResource = cast_to_ComputeResourceRWD3D12(rw)->resource();
}
else
{
D3D12_RESOURCE_BARRIER& bar = barrier[barrierIdx++];
bar.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
bar.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE;
- bar.Transition.pResource = rw->resource();
+ bar.Transition.pResource = cast_to_ComputeResourceRWD3D12(rw)->resource();
bar.Transition.Subresource = 0u;
- bar.Transition.StateBefore = *rw->currentState();
+ bar.Transition.StateBefore = *cast_to_ComputeResourceRWD3D12(rw)->currentState();
bar.Transition.StateAfter = D3D12_RESOURCE_STATE_UNORDERED_ACCESS;
- *rw->currentState() = D3D12_RESOURCE_STATE_UNORDERED_ACCESS;
+ *cast_to_ComputeResourceRWD3D12(rw)->currentState() = D3D12_RESOURCE_STATE_UNORDERED_ACCESS;
}
}
}
@@ -647,7 +727,7 @@ struct ComputeContextUserDataNvFlow : public ComputeContextUserData
}
};
-ComputeDescriptorReserveHandleD3D12 ComputeReserveDescriptors(void* userdata, UINT numDescriptors, UINT64 lastFenceCompleted, UINT64 nextFenceValue)
+ComputeDescriptorReserveHandleD3D12 ComputeReserveDescriptorsD3D12(void* userdata, UINT numDescriptors, UINT64 lastFenceCompleted, UINT64 nextFenceValue)
{
auto data = static_cast<ComputeContextUserDataNvFlow*>(userdata);
auto srcHandle = data->flowHeap.reserveDescriptors(data->flowHeap.userdata, numDescriptors, lastFenceCompleted, nextFenceValue);
@@ -659,9 +739,9 @@ ComputeDescriptorReserveHandleD3D12 ComputeReserveDescriptors(void* userdata, UI
return handle;
}
-ComputeContext* ComputeContextNvFlowContextCreate(NvFlowContext* flowContext)
+ComputeContext* ComputeContextNvFlowContextCreateD3D12(NvFlowContext* flowContext)
{
- ComputeContextDesc desc = {};
+ ComputeContextDescD3D12 desc = {};
NvFlowContextDescD3D12 srcDesc = {};
NvFlowUpdateContextDescD3D12(flowContext, &srcDesc);
@@ -677,18 +757,20 @@ ComputeContext* ComputeContextNvFlowContextCreate(NvFlowContext* flowContext)
computeUserdata->flowHeap.reserveDescriptors = srcDesc.dynamicHeapCbvSrvUav.reserveDescriptors;
desc.dynamicHeapCbvSrvUav.userdata = computeUserdata;
- desc.dynamicHeapCbvSrvUav.reserveDescriptors = ComputeReserveDescriptors;
+ desc.dynamicHeapCbvSrvUav.reserveDescriptors = ComputeReserveDescriptorsD3D12;
- auto computeContext = ComputeContextCreate(&desc);
+ auto computeContext = cast_to_ComputeContextD3D12(ComputeContextCreateD3D12(cast_from_ComputeContextDescD3D12(&desc)));
computeContext->m_computeUserdata = computeUserdata;
- return computeContext;
+ return cast_from_ComputeContextD3D12(computeContext);
}
-void ComputeContextNvFlowContextUpdate(ComputeContext* computeContext, NvFlowContext* flowContext)
+void ComputeContextNvFlowContextUpdateD3D12(ComputeContext* computeContextIn, NvFlowContext* flowContext)
{
- ComputeContextDesc desc = {};
+ auto computeContext = cast_to_ComputeContextD3D12(computeContextIn);
+
+ ComputeContextDescD3D12 desc = {};
NvFlowContextDescD3D12 srcDesc = {};
NvFlowUpdateContextDescD3D12(flowContext, &srcDesc);
@@ -704,56 +786,56 @@ void ComputeContextNvFlowContextUpdate(ComputeContext* computeContext, NvFlowCon
computeUserdata->flowHeap.reserveDescriptors = srcDesc.dynamicHeapCbvSrvUav.reserveDescriptors;
desc.dynamicHeapCbvSrvUav.userdata = computeUserdata;
- desc.dynamicHeapCbvSrvUav.reserveDescriptors = ComputeReserveDescriptors;
+ desc.dynamicHeapCbvSrvUav.reserveDescriptors = ComputeReserveDescriptorsD3D12;
- ComputeContextUpdate(computeContext, &desc);
+ ComputeContextUpdateD3D12(cast_from_ComputeContextD3D12(computeContext), cast_from_ComputeContextDescD3D12(&desc));
}
-inline void updateComputeResourceDesc(NvFlowResourceViewDescD3D12* flowViewDesc, ComputeResourceDesc* desc)
+inline void updateComputeResourceDesc(NvFlowResourceViewDescD3D12* flowViewDesc, ComputeResourceDescD3D12* desc)
{
desc->srv = flowViewDesc->srvHandle;
desc->resource = flowViewDesc->resource;
desc->currentState = flowViewDesc->currentState;
}
-ComputeResource* ComputeResourceNvFlowCreate(ComputeContext* context, NvFlowContext* flowContext, NvFlowResource* flowResource)
+ComputeResource* ComputeResourceNvFlowCreateD3D12(ComputeContext* context, NvFlowContext* flowContext, NvFlowResource* flowResource)
{
NvFlowResourceViewDescD3D12 flowViewDesc = {};
NvFlowUpdateResourceViewDescD3D12(flowContext, flowResource, &flowViewDesc);
- ComputeResourceDesc desc = {};
+ ComputeResourceDescD3D12 desc = {};
updateComputeResourceDesc(&flowViewDesc, &desc);
- return ComputeResourceCreate(context, &desc);
+ return ComputeResourceCreateD3D12(context, cast_from_ComputeResourceDescD3D12(&desc));
}
-void ComputeResourceNvFlowUpdate(ComputeContext* context, ComputeResource* resource, NvFlowContext* flowContext, NvFlowResource* flowResource)
+void ComputeResourceNvFlowUpdateD3D12(ComputeContext* context, ComputeResource* resource, NvFlowContext* flowContext, NvFlowResource* flowResource)
{
NvFlowResourceViewDescD3D12 flowViewDesc = {};
NvFlowUpdateResourceViewDescD3D12(flowContext, flowResource, &flowViewDesc);
- ComputeResourceDesc desc = {};
+ ComputeResourceDescD3D12 desc = {};
updateComputeResourceDesc(&flowViewDesc, &desc);
- ComputeResourceUpdate(context, resource, &desc);
+ ComputeResourceUpdateD3D12(context, resource, cast_from_ComputeResourceDescD3D12(&desc));
}
-inline void updateComputeResourceRWDesc(NvFlowResourceRWViewDescD3D12* flowViewDesc, ComputeResourceRWDesc* desc)
+inline void updateComputeResourceRWDesc(NvFlowResourceRWViewDescD3D12* flowViewDesc, ComputeResourceRWDescD3D12* desc)
{
updateComputeResourceDesc(&flowViewDesc->resourceView, &desc->resource);
desc->uav = flowViewDesc->uavHandle;
}
-ComputeResourceRW* ComputeResourceRWNvFlowCreate(ComputeContext* context, NvFlowContext* flowContext, NvFlowResourceRW* flowResourceRW)
+ComputeResourceRW* ComputeResourceRWNvFlowCreateD3D12(ComputeContext* context, NvFlowContext* flowContext, NvFlowResourceRW* flowResourceRW)
{
NvFlowResourceRWViewDescD3D12 flowViewDesc = {};
NvFlowUpdateResourceRWViewDescD3D12(flowContext, flowResourceRW, &flowViewDesc);
- ComputeResourceRWDesc desc = {};
+ ComputeResourceRWDescD3D12 desc = {};
updateComputeResourceRWDesc(&flowViewDesc, &desc);
- return ComputeResourceRWCreate(context, &desc);
+ return ComputeResourceRWCreateD3D12(context, cast_from_ComputeResourceRWDescD3D12(&desc));
}
-void ComputeResourceRWNvFlowUpdate(ComputeContext* context, ComputeResourceRW* resourceRW, NvFlowContext* flowContext, NvFlowResourceRW* flowResourceRW)
+void ComputeResourceRWNvFlowUpdateD3D12(ComputeContext* context, ComputeResourceRW* resourceRW, NvFlowContext* flowContext, NvFlowResourceRW* flowResourceRW)
{
NvFlowResourceRWViewDescD3D12 flowViewDesc = {};
NvFlowUpdateResourceRWViewDescD3D12(flowContext, flowResourceRW, &flowViewDesc);
- ComputeResourceRWDesc desc = {};
+ ComputeResourceRWDescD3D12 desc = {};
updateComputeResourceRWDesc(&flowViewDesc, &desc);
- ComputeResourceRWUpdate(context, resourceRW, &desc);
+ ComputeResourceRWUpdateD3D12(context, resourceRW, cast_from_ComputeResourceRWDescD3D12(&desc));
} \ No newline at end of file