yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
f65d756bf
master
1// d3d12-submitter.h 2#pragma once 3 4#include "d3d12-base.h" 5 6namespace gfx 7{ 8namespace d3d12 9{ 10 11using namespace Slang ; 12 13struct Submitter 14{ 15virtual void setRootConstantBufferView ( 16int index , 17D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation )= 0 ; 18virtual void setRootUAV (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation )= 0 ; 19virtual void setRootSRV (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation )= 0 ; 20virtual void setRootDescriptorTable (int index ,D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor )= 0 ; 21virtual void setRootSignature (ID3D12RootSignature * rootSignature )= 0 ; 22virtual void setRootConstants ( 23Index rootParamIndex , 24Index dstOffsetIn32BitValues , 25Index countOf32BitValues , 26void const * srcData )= 0 ; 27virtual void setPipelineState (PipelineStateBase * pipelineState )= 0 ; 28}; 29 30struct GraphicsSubmitter :public Submitter 31{ 32virtual void setRootConstantBufferView (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation ) 33override ; 34virtual void setRootUAV (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation )override ; 35virtual void setRootSRV (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation )override ; 36virtual void setRootDescriptorTable (int index ,D3D12_GPU_DESCRIPTOR_HANDLE baseDescriptor ) 37override ; 38virtual void setRootSignature (ID3D12RootSignature * rootSignature )override ; 39virtual void setRootConstants ( 40Index rootParamIndex , 41Index dstOffsetIn32BitValues , 42Index countOf32BitValues , 43void const * srcData )override ; 44virtual void setPipelineState (PipelineStateBase * pipeline )override ; 45 46GraphicsSubmitter (ID3D12GraphicsCommandList * commandList ) 47 :m_commandList (commandList ) 48 { 49 } 50 51ID3D12GraphicsCommandList * m_commandList ; 52}; 53 54struct ComputeSubmitter :public Submitter 55{ 56virtual void setRootConstantBufferView (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation ) 57override ; 58virtual void setRootUAV (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation )override ; 59virtual void setRootSRV (int index ,D3D12_GPU_VIRTUAL_ADDRESS gpuBufferLocation )override ; 60virtual void setRootDescriptorTable (int index ,D3D12_GPU_DESCRIPTOR_HANDLE baseDescriptor ) 61override ; 62virtual void setRootSignature (ID3D12RootSignature * rootSignature )override ; 63virtual void setRootConstants ( 64Index rootParamIndex , 65Index dstOffsetIn32BitValues , 66Index countOf32BitValues , 67void const * srcData )override ; 68virtual void setPipelineState (PipelineStateBase * pipeline )override ; 69ComputeSubmitter (ID3D12GraphicsCommandList * commandList ) 70 :m_commandList (commandList ) 71 { 72 } 73 74ID3D12GraphicsCommandList * m_commandList ; 75}; 76 77}// namespace d3d12 78}// namespace gfx